CN115442875A - 一种应用访问方法、服务停止方法及电子设备 - Google Patents

一种应用访问方法、服务停止方法及电子设备 Download PDF

Info

Publication number
CN115442875A
CN115442875A CN202110610534.6A CN202110610534A CN115442875A CN 115442875 A CN115442875 A CN 115442875A CN 202110610534 A CN202110610534 A CN 202110610534A CN 115442875 A CN115442875 A CN 115442875A
Authority
CN
China
Prior art keywords
application
service
electronic device
background
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110610534.6A
Other languages
English (en)
Inventor
陈明
周帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110610534.6A priority Critical patent/CN115442875A/zh
Publication of CN115442875A publication Critical patent/CN115442875A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0264Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by selectively disabling software applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72463User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions to restrict the functionality of the device

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)

Abstract

本申请提供一种应用访问方法、服务停止方法及电子设备,方法可包括:当第一应用的服务被第二应用访问时,可以在应用满足设定条件时向第二应用发送通知消息,以通知第二应用不允许访问第一应用或者通知第二应用不存在第一应用;或者在应用切换到后台,并且在进行服务检测之前,提前停止应用的服务。通过上述方法,第二应用就不会唤醒第一应用,能够减少应用的唤醒次数,降低电子设备的功耗。

Description

一种应用访问方法、服务停止方法及电子设备
技术领域
本申请涉及终端技术领域,尤其涉及一种应用访问方法、服务停止方法及电子设备。
背景技术
随着智能手机、平板电脑等各种电子设备的普及,例如用户在使用智能手机时,往往会打开多个应用程序,这些应用程序(简称:应用)一般可包括前台应用和后台应用。
当应用从前台应用切换为后台应用后,应用可能会由于不同的原因被唤醒,如果应用处于挂起状态唤醒后台应用可能会使得电子设备的功耗比较高,影响电子设备的性能。
发明内容
本申请提供一种应用访问方法、服务停止方法及电子设备,用以减少电子设备的唤醒次数,降低电子设备的功耗,提升性能。
第一方面,本申请提供一种应用访问方法,该方法包括:在第一应用的服务被第二应用访问时,如果第一应用、第二应用满足设定条件,那么可向第二应用发送第一通知消息,以通知第二应用不允许访问第一应用或者通知第二应用不存在第一应用,否则,允许第二应用访问第一应用的服务。
通过上述技术方案,当第一应用的服务被第二应用访问时,可以在应用满足设定条件时向第二应用发送通知消息,这样第二应用就不会唤醒第一应用,减少了应用的唤醒次数,能够降低电子设备的功耗。
在一种可能的设计中,设定条件可以包括以下任意一项:
条件1:所述第二应用为后台应用;
条件2:所述第二应用为前台应用,且所述第一应用的应用状态为挂起状态;
条件3:所述第二应用的应用标识为用户设置的黑名单中的应用标识,所述黑名单中包括禁止访问所述第一应用的应用标识;
条件4:所述第一应用的应用标识为用户设置的黑名单中的应用标识,所述黑名单中包括禁止被访问的应用的应用标识。
通过上述几个条件,可以判断出第一应用和第二应用是否满足设定条件,从而能够确定出第二应用是否能够访问第一应用的服务。
在一种可能的设计中,向所述第二应用发送第一通知消息,包括:所述电子设备应用框架层的代理中心模块代理所述第一应用的服务,向所述第二应用发送第一通知消息;或者所述电子设备应用框架层的代理中心模块代理所述第一应用的服务,通过第三应用向所述第二应用发送第一通知消息。其中,第三应用为用于与应用框架层的代理中心模块交互消息的应用程序。
本申请实施例中,通过在应用框架层增加代理中心模块,由代理中心模块代理第一应用的服务,向第二应用发送不允许访问第一应用或者不存在第一应用的通知消息,这样第二应用就不会访问第一应用,从而不会唤醒第一应用。
在一种可能的设计中,若确定所述第一应用和/或第二应用满足设定条件,则向所述第二应用发送第一通知消息,包括:
若确定所述第一应用和/或第二应用满足设定条件,则显示第一提示信息,所述第一提示信息用于提示用户确认是否允许所述第二应用访问所述第一应用的服务;响应于第一操作,向所述第二应用发送第一通知消息,所述第一操作为用户对否定按钮的触发操作;或者在所述第一提示信息显示的时间达到预设时长时,向所述第二应用发送第一通知消息。
通过上述技术方案,可以在第一应用和/或第二应用满足设定条件时,显示提示信息以便用户确认,这种方式增加了与用户的交互,在应用访问场景下可以提高安全性,避免用户的隐私被泄露,能够提升用户体验。
在一种可能的设计中,所述第一通知消息中包括伪装值,所述伪装值用于表征所述第一应用的服务不存在。
通过上述技术方案,可以通过伪装值的方式通知发起访问的应用不存在被访问的应用,这样被访问的应用就不会被访问,从而减少被唤醒的次数。
在一种可能的设计中,所述设定接口为开启服务startService接口或者绑定服务bindService接口。
通过上述技术方案,可以根据调用的接口名称来确定第二应用访问第一应用的具体情况,比如在调用开启服务startService接口或者绑定服务bindService接口时,可以确定第二应用访问的是第一应用的服务。
在一种可能的设计中,电子设备在检测到第二应用通过设定接口访问第一应用之后,所述方法还包括:所述电子设备确定所述第一应用存在进程。
通过上述技术方案,当第二应用访问第一应用的服务时,可判断第一应用是否存在进程。若存在进程,那么可采用本申请实施例的方案,即可通过服务代理的方法向第二应用发送通知消息。
第二方面,本申请提供一种服务停止方法,该方法包括:首先,电子设备显示第一应用的界面,用户可将第一应用切换到后台运行,然后在第一应用切换到后台之后,并且在进行后台服务检测之前,停止第一应用的服务。
通过上述技术方案,可以在进行服务检测之前提前停止第一应用的服务,这样可以使得在进行服务检测时检测不到第一应用的服务,从而不会唤醒第一应用,能够降低第一应用的唤醒次数,降低电子设备的功耗。
本申请实施例中,第一应用的服务可以包括多个服务。电子设备停止第一应用的服务可以包括如下几种方式:
方式1:所述电子设备根据所述第一应用的服务类型,停止所述第一应用的第一服务,所述第一服务为所述多个服务中的任意一个服务,且所述第一服务为前台服务。
方式2:所述电子设备响应于第三操作,停止所述第一应用的第一服务,所述第三操作为用户在所述多个服务的选择操作,所述第一服务为所述多个服务中的至少一个服务。
通过上述方式,电子设备可以根据应用的服务类型停止前台服务,或者可以由用户来选择需要停止的服务,这样能够提升用户体验。
在一种可能的设计中,所述电子设备停止所述第一应用的服务之后,所述方法还包括:所述电子设备检测到所述第一应用的应用状态从活跃状态切换为挂起状态。
也就是说,在本申请中当第一应用切换到后台之后,可在第一应用的状态为活跃状态时先停止第一应用的服务,然后第一应用会从活跃状态切换为挂起状态,最后会进行服务检测。换句话说,停止服务是在应用的状态切换为挂起状态之前执行的,这样不需要唤醒第一应用,能够减少唤醒次数。
在一种可能的设计中,所述方法还包括:电子设备向第一应用发送禁止唤醒指令。这样第一应用在接收到禁止唤醒指令之后,就不会唤醒。
第三方面,本申请提供一种电子设备,所述电子设备包括显示屏;一个或多个处理器;一个或多个存储器;一个或多个传感器;多个应用;以及一个或多个计算机程序;其中所述一个或多个计算机程序被存储在所述一个或多个存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器调用执行时,使得所述电子设备执行上述第一方面及其第一方面任一可能设计的方法。
第四方面,本申请提供一种电子设备,所述电子设备包括显示屏;一个或多个处理器;一个或多个存储器;一个或多个传感器;多个应用;以及一个或多个计算机程序;其中所述一个或多个计算机程序被存储在所述一个或多个存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器调用执行时,使得所述电子设备执行上述第二方面及其第二方面任一可能设计的方法。
第五方面,本申请还提供一种电子设备,该电子设备包括执行第一方面或者第一方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第六方面,本申请还提供一种电子设备,该电子设备包括执行第二方面或者第二方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第七方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在电子设备上运行时,使得所述电子设备执行第一方面及其第一方面任一可能设计的应用访问方法。
第八方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在电子设备上运行时,使得所述电子设备执行第二方面及其第二方面任一可能设计的服务停止方法。
第九方面,本申请实施例一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行本申请实施例第一方面及其第一方面任一可能设计的应用访问方法。
第十方面,本申请实施例一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行本申请实施例第二方面及其第二方面任一可能设计的服务停止方法。
上述第三方面至第十方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面、第二方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
图1A为本申请实施例提供的一种服务的生命周期示意图;
图1B为本申请实施例提供的一种应用状态切换示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3A为本申请实施例提供的一种软件结构框图;
图3B为本申请实施例提供的一种软件模块示意图;
图4为本申请实施例提供的一种用户界面示意图;
图5为本申请实施例提供的一种服务停止方法流程图;
图6为一种应用切换到后台的状态切换时间点示意图;
图7为本申请实施例提供的一种应用访问方法流程图;
图8为本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
下面将结合本申请以下实施例中的附图,对本申请实施例中的技术方案进行详尽描述。
为了便于理解,下面先对本申请实施例涉及的相关术语及相关概念进行介绍。
1、前台应用、后台应用
根据应用程序是否可以直接与用户交互,可以将应用程序分为包括:前台应用、后台应用。其中,前台应用为用户放置在前台的、可以直接交互的应用程序,后台应用为用户放置在后台的、不可以直接交互的应用程序。具体来说,可以通过监听***的ProcessObserve接口的前后台事件回调来获取应用为前台应用还是后台应用。示例性的,当用户在电子设备的主界面上打开应用A时,***的ProcessObserve接口可监听到该事件,确定应用A为前台应用,然后当用户返回主界面打开应用B时,***的ProcessObserve接口可监听到该事件,确定应用B为前台应用,应用A为后台应用。在本申请的实施例中,可以根据应用程序是否直接可见,可以确定该应用是前台应用或后台应用。具体的,当应用程序可见时为前台应用,当应用程序不可见时为后台应用。例如,当电子设备的屏幕上显示应用的界面时,该应用为前台应用;当电子设备的屏幕上没有显示应用的界面时,该应用为后台应用。其中,应用的界面不包括操作***的顶部状态栏、通知栏。
值得说明的是,响应于用户的操作,一个应用程序可以在前台应用和后台应用之间进行转换。
2、服务
服务(service)是一种可在后台长时间运行而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信(Inter-ProcessCommunication,IPC)。例如,服务可在后台处理网络事务、播放音乐,执行文件输入/输出(input/ouput,I/O)或与内容提供程序进行交互。
以下介绍不同的服务类型:
(1)、前台服务,执行一些用户能注意到的操作,或者说用户能够感知到的操作。比如,在通知栏显示的服务可以认为是前台服务。例如,音频应用会使用前台服务来播放音频曲目。即使用户停止与应用的交互,前台服务仍会继续运行。
(2)、后台服务,执行用户不会直接注意到的操作,比如,在通知栏没有显示的服务。例如,如果应用使用某个服务来压缩其存储空间,则此服务通常是后台服务。
具体来说,当应用需要某个服务时,可以向***发送消息,告诉***创建该服务,此时***可以为服务标记标识信息。示例性的,假设应用需要播放音乐的前台服务,那么会告诉***为自己创建一个播放音乐的前台服务,然后***会根据应用的需求对该应用创建播放音乐的前台服务,并将播放音乐的服务标记为前台服务。通过这种方式,***侧可保存有带有标识信息的服务。
服务本身具有生命周期,其生命周期(从创建到销毁)可遵循以下任一路径:
(1)、启动服务
该服务在其他组件调用startService()时创建,然后无限期运行,且必须通过调用stopSelf()来自行停止运行。此外,其他组件也可通过调用stopService()来停止此服务。服务停止后,***会将其销毁。
(2)、绑定服务
该服务在其他组件(客户端)调用bindService()时创建。然后,客户端通过IBinder接口与服务进行通信。客户端可通过调用unbindService()关闭连接。多个客户端可以绑定到相同服务,而且当所有绑定全部取消后,***即会销毁该服务(服务不必自行停止运行)。
这两条路径并非完全独立。可以绑定到已使用startService()启动的服务。例如,可以使用Intent(标识要播放的音乐)来调用startService(),从而启动后台音乐服务。随后,当用户需稍加控制播放器或获取有关当前所播放歌曲的信息时,Activity可通过调用bindService()绑定到服务。此类情况下,在所有客户端取消绑定之前,stopService()或stopSelf()实际不会停止服务。
示例性的,如图1A所示,为本申请实施例提供的一种服务的生命周期示意图。在该示意图中,可包括StartService()、onCreat()、onStartCommand()、StopService()、onDestroy()五种方法。其中,服务的生命周期从StartService()开启服务,然后onCreat()创建服务、onStartCommand()开始服务到StopService()关闭服务,最后直到onDestroy()销毁服务。
3、进程
在大多数情况下,每个安卓(Android)应用都在各自的Linux进程中运行。当需要运行应用的一些代码时,***会为应用创建此进程,并使其保持运行,直到不再需要它且***需要回收其内存以供其他应用使用。需要说明的是,一个应用程序可以有多个服务,也可以有多个进程。其中,一个服务对应一个进程,一个进程可以对应一个或多个服务,当然,一个进程上也可以没有服务,本申请对此不做限定。
由于安卓(Android)原生***几乎零管控,应用在后台可以有各种保活手段,在很大程度上影响了电子设备的性能和功耗。因此,国内各手机厂商在Android原生***的基础上提出了一些管控机制,例如后台清理、应用自启动管控、后台活动进程挂起等。而由于Android***开发性和三方应用实现的多样性,使得管控上出现了很多“不能管”、“不敢管”的情况。例如,对于后台应用由服务唤醒的情况无法管控。
下面介绍由服务唤醒应用的方案。
第一种方案:
当应用从前台应用切换为后台应用时,应用可包括活跃(running)状态、挂起(hibernation)状态、关闭(died)状态。其中,running状态下,应用可以正常使用CPU、申请内存等。hibernation状态下,应用仍然占用内存资源,但是无法使用CPU等软件资源和硬件资源,对***功耗几乎无影响。died状态下,应用在后台被清理,包括后台低内存清理、高功耗清理、用户主动清理等原因,此时应用在后台无任何进程,对内存、CPU等零占用。
示例性的,如图1B所示,为本申请实施例提供的一种应用状态切换示意图。当应用从running状态切换到后台T1时长之后,应用可处于hibernation状态,然后当应用切换到后台T2时长之后,可触发服务检测,此时会唤醒应用回调应用服务的生命周期,进行服务停止。即可将应用从hibernation状态唤醒为running状态。如果应用处于hibernation状态或者running状态时被清理,则应用会处于died状态,当应用再次被启动时,应用可从died状态切换为running状态。举个例子,假设T1为10秒,T2为1分钟,比如应用A从前台应用切换为后台应用10秒之后切换为hibernation状态,然后当应用A切换为后台应用1分钟之后触发应用A的服务检测,此时会唤醒应用A。
第二种方案:
不同的应用之间可以通过绑定服务(bind service)/服务开启(start service)的方式,关联唤醒应用。当应用A为前台应用时,可通过关联访问的方式唤醒应用B。举例来说,当应用A从前台应用切换为后台应用T1(比如,10秒)之后,应用A可处于hibernation状态,假设此时前台应用为应用B,那么应用B可访问应用A的服务,唤醒应用A。
也就是说,现有的技术方案中不管是服务检测还是应用关联都会再次唤醒应用,使得电子设备的功耗增加,影响性能。
有鉴于此,本申请实施例提供一种服务停止方法,当应用从前台应用切换为后台应用,并且在应用处于hibernation状态之前,停止应用的服务,这样在进行服务检测的时候就检测不到该后台应用的服务,从而不会唤醒后台应用,这样可减少唤醒应用的次数,降低功耗,提升性能。
本申请实施例涉及的应用程序(简称应用)为能够实现某项或多项特定功能的软件程序。通常,电子设备中可以安装多个应用。比如,相机应用、短信应用、邮箱应用、视频应用、音乐应用等。下文中提到的应用,可以是电子设备出厂时已安装的应用,也可以是用户在使用电子设备的过程中从网络下载或其他电子设备获取的应用。
需要说明的是,本申请实施例提供的方法,可以适用于具有显示屏的任何电子设备,诸如手机、平板电脑、可穿戴设备(例如,手表、手环、智能头盔,智能眼镜等)、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等,本申请实施例不作限定。并且,电子设备的示例性实施例包括但不限于搭载
Figure BDA0003095667740000061
鸿蒙
Figure BDA0003095667740000062
或者其它操作***的电子设备。
下面以手机为例,介绍电子设备的结构。
如图2所示,手机100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是手机100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为手机100充电,也可以用于手机100与***设备之间传输数据。充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
手机100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。手机100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在手机100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在手机100上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。示例性的,在本申请实施例中,不同的电子设备之间可通过BT或WLAN建立通信连接。
在一些实施例中,手机100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得手机100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯***(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),第五代(the fifth generation,5G)移动通信***,未来通信***,如第六代(6th generation,6G)***等,BT,GNSS,WLAN,NFC,FM和/或IR技术等。所述GNSS可以包括全球卫星定位***(global positioning system,GPS),全球导航卫星***(global navigation satellite system,GLONASS),北斗卫星导航***(beidounavigation satellite system,BDS),准天顶卫星***(quasi-zenith satellitesystem,QZSS)和/或星基增强***(satellite based augmentation systems,SBAS)。
显示屏194用于显示应用的显示界面等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlight emitting diodes,QLED)等。在一些实施例中,手机100可以包括1个或N个显示屏194,N为大于1的正整数。在本申请实施例中,显示屏194可用于同时显示多个应用界面。
摄像头193用于捕获静态图像或视频。摄像头193可以包括前置摄像头和后置摄像头。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,以及至少一个应用程序(例如爱奇艺应用,微信应用等)的软件代码等。存储数据区可存储手机100使用过程中所产生的数据(例如图像、视频等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将图片,视频等文件保存在外部存储卡中。
手机100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。手机100可以接收按键输入,产生与手机100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现和手机100的接触和分离。
可以理解的是,图2所示的部件并不构成对手机的具体限定,手机还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。以下的实施例中,以图2所示的手机100为例进行介绍。
上述手机100的软件***可以采用分层架构,包括事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android***为例,示例性说明手机100的软件结构。应理解,本申请实施例中的***也可以为鸿蒙***,本申请对此不作限定。
图3A是本申请实施例的手机100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,Android***从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime,ART)和原生C/C++库,硬件抽象层(Hardware Abstract Layer,HAL)以及内核层。
应用程序层可以包括一系列应用程序包。如图3A所示,应用程序层内可以安装音乐、华为视频等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3A所示,应用程序框架层可以包括窗口管理器,活动管理器,内容提供器,视图***,资源管理器,通知管理器,输入管理器等。
窗口管理器提供窗口管理服务(Window Manager Service,WMS),WMS可以用于窗口管理、窗口动画管理、surface管理以及作为输入***的中转站。
活动管理器可以提供活动管理服务(Activity Manager Service,AMS),AMS可以用于***组件(例如活动、服务、内容提供者、广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。
其中,AMS可包括服务(Service)模块以及代理中心模块。服务(Service)模块用于提供应用程序层的应用程序对应的服务。
代理中心模块用于在应用从前台切换为后台,并且应用的状态切换为hibernation状态之前,将应用的服务停止。或者还可以针对应用间的关联访问的情况,如果发起访问的应用为后台应用,则代理被访问的应用向发起访问的应用回复通知消息,以通知发起访问的应用不要唤醒被访问的应用。或者还可以在应用间的关联访问时,如果发起访问的应用为前台应用,且被访问的应用的应用状态为hibernation状态时,代理被访问的应用向发起访问的应用回复通知消息。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
输入管理器可以提供输入管理服务(Input Manager Service,IMS),IMS可以用于管理***的输入,例如触摸屏输入、按键输入、传感器输入等。IMS从输入设备节点取出事件,通过和WMS的交互,将事件分配至合适的窗口。
安卓运行时包括核心库和安卓运行时。安卓运行时负责将源代码转换为机器码。安卓运行时主要包括采用提前(ahead or time,AOT)编译技术和及时(just in time,JIT)编译技术。
核心库主要用于提供基本的Java类库的功能,例如基础数据结构、数学、IO、工具、数据库、网络等库。核心库为用户进行安卓应用开发提供了API。
原生C/C++库可以包括多个功能模块。例如:表面管理器(surface manager),媒体框架(Media Framework),libc,OpenGL ES、SQLite、Webkit等。
其中,表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体框架支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。OpenGL ES提供应用程序中2D图形和3D图形的绘制和操作。SQLite为电子设备100的应用程序提供轻量级关系型数据库。
硬件抽象层HAL运行于用户空间(user space),对内核层驱动进行封装,向上层提供调用接口。其中,HAL可包括显示模块、音频模块、蓝牙模块等。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
如图3B所示,为本申请实施例提供的一种软件模块示意图。参阅图3B所示,具体可包括应用状态模块、代理执行模块、决策模块。在一些实施例中,当应用A从前台应用切换为后台应用之后,可首先通过代理中心模块执行应用服务停止操作,回调应用服务的生命周期,然后应用进入hibernation状态,从而在应用A切换到后台之后的T2时长(比如,1分钟)后进行服务检测时检测不到应用的服务,这样就不会唤醒应用A。
在另一些实施例中,当应用B访问应用A的服务时,可判断应用A是否存在进程,若应用A不存在进程,则应用可以通过自启动/关联启动管控;若应用A存在进程,则决策模块根据应用A的状态来确定是否允许应用B访问。若应用A的状态为hibernation状态,则代理中心模块代理应用A的服务向应用B返回通知消息。
应理解,当应用无进程时,可以理解为应用处于died状态,当应用有进程时,则可以理解为应用处于running状态或hibernation状态。图3B所示示意图中的代理执行模块和决策模块可以理解为图3A中的代理中心模块的两部分。
以下实施例以应用在图2所示的手机100所示的架构中为例进行描述。
此外,下述实施例涉及的至少一个,包括一个或者多个;其中,多个是指大于或者等于两个。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的。
应用唤醒的原因可包括多种,比如服务唤醒、广播唤醒、数据访问唤醒、用户主动行为唤醒等。其中,服务唤醒的占比最高,即应用大多数情况下是被服务唤醒。比如,当应用从前台切换到后台运行一段时间后的服务停止也会唤醒应用,这会影响电子设备的功能和性能。基于此,本申请以下实施例主要解决应用被服务唤醒的问题。
示例性的,电子设备以手机为例,如图4所示,假设手机上显示华为视频的应用界面400,此时华为视频应用为前台应用。假设用户在界面400上沿着手机显示屏的下方向上滑动,手机可响应用户的滑动操作,退出华为视频的应用界面400,返回主界面410。此时用户可在主界面410上点击备忘录应用图标411,手机可响应用户对备忘录应用图标411的点击操作,显示备忘录的应用界面420,此时备忘录应用为前台应用,华为视频应用为后台应用。那么在此情况下,如果要停止华为视频应用的服务,并且在停止服务的同时不唤醒应用,则需要在应用状态处于running状态期间执行,这样不但可以停止应用的服务,并且可以不用唤醒应用。
而基于图1B的介绍可知,当华为视频应用刚从前台切换到后台时,应用的状态为running状态,因此,可以有效利用华为视频应用的应用状态为running状态的这一时间段,在此时间段内回调服务的生命周期,执行停止华为视频应用的服务操作,这样无需唤醒应用,能够减少应用被唤醒的次数,降低功耗,提升电子设备的性能。
如图5所示,为本申请实施例提供的一种服务停止方法流程图。参阅图5所示,该方法可包括如下步骤:
S501:电子设备响应于第一操作,将第一应用切换为后台应用。
在一些实施例中,电子设备可响应于用户的操作,启动第一应用,此时第一应用为前台应用。其中,启动第一应用的操作可以为用户对第一应用的应用图标的点击操作,或者还可以为用户通过语音触发的方式开启第一应用的操作等,本申请对此不做限定。
当第一应用为前台应用,即第一应用运行于前台时,用户可通过第一操作将第一应用切换到后台运行,即将第一应用切换为后台应用。示例性的,第一操作可以为打开第二应用的操作,或者第一操作还可以为将当前界面切换回主界面的操作等。以图4为例,假设第一应用为华为视频应用,那么第一操作可以为用户在界面400上沿着手机显示屏的下方向上滑动的滑动操作。
应理解,当第一应用为前台应用时,用户可响应第二操作,打开第二应用,此时第二应用可以为前台应用,第一应用切换为后台应用。
S502:电子设备在检测到第一应用切换为后台应用的时长达到第一时长时,停止第一应用的服务。
在本申请实施例中,为了避免应用切换到后台后由于停止服务被唤醒,可以在第一应用切换为后台应用之后,并且应用的状态为running状态期间停止第一应用的服务。也就是说,可以在第一应用的状态为running状态期间的任意一个时刻停止第一应用的服务。假设将停止第一应用的服务的时刻记为“第一时刻”,那么第一应用切换为后台应用之后的时长可以记为“第一时长”。
在一些实施例中,当第一应用从前台应用切换为后台应用之后,代理中心模块可以在时间达到第一时长时,回调第一应用的服务的生命周期,停止第一应用的服务。然后代理中心模块可以通知第一应用自身的服务已经停止,以使第一应用能够执行停止服务之后的其它操作。
由于应用的服务可包括多个,在应用的多个服务中并不是所有的服务都需要停止。有些服务如果停止可能会使得该应用不能使用,以音乐类应用为例,当音乐类的服务中用于播放音乐的服务停止之后,将不能播放音乐。因此,作为一种优选的实现方式,当电子设备检测到第一应用切换为后台应用的时长达到第一时长时,可以选择性的停止第一应用的服务。或者换句话来说,可以仅停止第一应用的部分服务。在一些实施例中,电子设备可以根据应用的服务类型决定是否停止服务。示例性的,若应用的服务类型为前台服务,则不停止该服务,若应用的服务类型为后台服务,则停止该服务。例如,用户能够感知到下载、播放音乐、录音、导航等前台服务可以不用停止。
作为另一种可能的实现方式,用户可以根据自身的需求来设置哪些应用的服务需要停止,哪些应用的服务不需要停止。示例性的,用户可以设置黑名单和白名单,其中,白名单中包括不需要停止服务的应用,黑名单中包括需要停止服务的应用。
作为又一种可能的实现方式,用户还可以设置应用的哪些服务可以停止,哪些服务不需要停止。示例性的,可以给用户提供一个应用服务的选择界面,用户可以在应用服务的选择界面中选择需要停止的服务和/或不需要停止的服务。
在本申请实施例中,当应用切换到后台的时间达到第一时长时,可以回调应用的服务的生命周期,停止应用的服务。由于此时应用的状态还是处于running状态,即应用状态还不是hibernation状态,在hibernation之前回调服务的生命周期的onDestory方法,停止服务,这样就不需要唤醒应用。以图1A为例对该过程进行介绍,假设应用从前台切换到后台时,服务处于onStartCommand()状态,此时需要在应用hibernation之前将服务停止,则需要回调服务的生命周期停止服务。由于此时应用的状态为running状态,即不需要唤醒应用,只需要从onStartCommand()状态将服务运行至onDestory()状态结束就可以停止服务。
可选的,在本申请实施例中,应用从前台应用切换为后台应用之后,可能会在一段时间之后从running状态切换为hibernation状态,但是有些应用从前台切换到后台运行一段时间后,并不会从running切换到hibernation状态。示例性的,比如音乐类应用当从前台切换到后台之后,也不会从running状态切换为hibernation状态。如果音乐类应用处于hibernation状态,音乐则不能继续播放。
假设第一应用在切换为后台应用之后,会从running状态切换为hibernation状态,那么,作为一种可能的实现方式,在S402之后还可以执行以下步骤:
S503:电子设备在检测到第一应用切换为后台应用的时长达到第二时长时,将第一应用的状态从第一状态切换为第二状态。
在该实施例中,为了描述方便,可将running状态记为“第一状态”,将hibernation状态记为“第二状态”,将应用切换到后台到停止服务期间的时长记为“第一时长”,将第一应用切换到后台之后到应用的状态切换为hibernation状态的时长记为“第二时长”,将应用切换到后台到进行服务检测的时长记为“第三时长”。示例性的,如图6所示,为本申请实施例提供的一种应用切换到后台的变化示意图。假设应用从前台切换到后台之后为A点,然后在B点对应用的服务进行停止。当应用切换到后台之后,应用可在C点切换为挂起状态,并且可在D点进行后台服务检测。因此,第一时长在图6中可以为应用从切换到后台开始到应用停止服务所经历的时长,第二时长可以为应用从切换到后台开始到应用处于挂起状态所经历的时长,第三时长为应用从切换到后台到进行后台服务检测所经历的时长。由于停止服务的操作是在应用状态为running状态执行的,因此,应用在A点和C点之间的应用状态为running状态,在C点和D点之间的应用状态为hibernation状态。应理解,在本申请实施例中对于第一时长、第二时长以及第三时长的时间不做具体限定。
举个例子,假设现有技术中应用切换到后台之后,是在10秒时切换为hibernation状态,那么在本申请实施例中可在10秒之前,比如5秒时将应用的服务停掉,然后在10秒时将应用的状态切换为hibernation状态。比如应用A从前台切换为后台,那么在应用A从前台应用切换为后台应用之后的5秒时可将应用A的服务停掉,然后在停止服务达到5秒时将应用A的状态切换为hibernation状态。当然,第一时长也可以为6秒、3秒、1秒、0秒等其它时间,只要第一时长小于第二时长(10秒)即可。
S504:电子设备在检测到第一应用切换为后台应用的时长达到第三时长之后,触发后台服务检测。
在本申请实施例中,当第一应用的状态切换为hibernation状态之后,可在一定时长之后触发后台服务检测流程。示例性的,假设第三时长为1分钟,第二时长为10秒,第一时长为6秒,那么第一应用可在hibernation状态之后的50秒后进行服务检测。当然,进行服务检测的时机可以为第一应用从前台应用切换为后台应用的时长达到1分钟时,或者也可以为第一应用从前台应用切换为后台应用的时长达到1分钟之后,或者还可以为第一应用从前台应用切换为后台应用的时长达到1分钟min之前,本申请对此不做具体限定。
通过上述方法,电子设备可以在应用切换到后台之后,并且在应用状态切换为hibernation状态之前,提前停止应用的服务,这样能够使得在进行服务检测时,检测不到服务,从而不会唤醒该后台应用,减少由于服务唤醒应用的唤醒次数,降低电子设备的功耗,提高性能。
需要说明的是,图5所示实施例的方法是由电子设备在应用处于running状态时停止应用的服务,从而降低电子设备的功耗。在一种可能的实现方式中,当应用从前台应用切换为后台应用之后,还可以由用户决定是否采用本申请实施例的方法。示例性的,电子设备上可以设置一个开关,如果用户开启开关,则默认不采用本申请实施例的方法;如果用户没有开启该开关,则默认采用本申请实施例的方法。或者还可以显示提示信息,用户可以根据提示信息确定是否采用本申请实施例的方法,比如提示信息可以为“是否开启降低功耗的开关?”等。应理解,上述举例仅是一种示意性说明,本申请并不限于此。
上面介绍了应用在切换到后台之后,由于服务检测被唤醒的方式之外,应用还可能在被其它应用访问时关联唤醒,即应用之间可以通过访问关联唤醒。比如,当应用A访问应用B时,如果应用B处于hibernation状态,则可能会将应用从hibernation状态唤醒为running状态。而为了避免应用被其它应用关联唤醒的情况,本申请实施例中可以在应用B访问应用A时,如果满足设定条件,则不允许应用B唤醒应用A,比如可以代理中心模块可以代理应用A向应用B发送不允许唤醒的消息,这样应用B就不会在访问应用A时唤醒应用B。其中,设定条件可以为应用B的应用状态为hibernation状态或者died状态,或者应用A为后台应用。
作为一种可能的实现方式,可以由用户设置设定条件,或者说可以由用户设置应用间访问(或唤醒)的权限。示例性的,比如用户可以设置所有的后台应用都不能唤醒应用B,或者可以设置应用A、应用C不能唤醒应用B,并且不管应用A和应用C为前台应用还是后台应用都不能唤醒应用B等。
作为又一种可能的实现方式,当应用A访问应用B时,可以在电子设备的显示屏上显示提示信息,该提示信息用于提示用户是否同意应用A访问应用B。若用户同意(比如,点击“是”按钮),则应用A可以访问应用B,若用户不同意(比如,点击“否”按钮),则应用A不能访问应用B。
考虑到应用之间相互访问时可能会泄露用户的隐私,为了提高安全性,在应用B访问应用A时,可以不允许应用B访问应用A,比如代理中心模块可以代理应用A向应用B发送不允许访问,即拒绝访问的消息,这样应用B就不会访问应用A。
示例性的,如图7所示,为本申请实施例提供的一种应用访问方法流程图。参阅图7所示,该方法可包括如下步骤:
S701:电子设备检测到第一应用被第二应用访问。
为了描述方便,本申请实施例中可将被访问的应用记为“第一应用”,将发起访问的应用记为“第二应用”。
在本申请实施例中,当第一应用被第二应用访问时,可包括第一应用的第二服务被第二应用访问。应理解,第二服务指的是第一应用的多个服务中的任意一个服务。具体来说,当检测到第二应用通过startService()或者bindService()访问第一应用时,可以确定第二应用要访问第一应用的服务。
在一些实施例中,应用间的关联访问关系为预先配置好的。即哪些应用能够被访问,哪些应用能够访问其它的应用等为预先写好的逻辑代码。示例性的,应用间的关联访问关系可以参阅下述表1所示。
表1
Figure BDA0003095667740000141
应理解,上述表1仅是一种示意性说明。在实际应用中,有的应用可以访问除自身以外的其它所有应用,有的应用仅能访问除自身以外的其它部分应用,或者有的应用不能访问其它的应用。并且,应用间的关联访问关系可以是单向的访问关系,也可以是双向的访问关系,本申请对此不做限定。
S702:电子设备判断第二应用是否为后台应用。若第二应用为后台应用,则执行S604,若第二应用为前台应用,则继续执行S703。
在本申请实施例中,若发起访问的应用为后台应用,由于后台应用在访问其它应用时,用户无法感知,因此可以直接代理,不向被访问的应用发送唤醒消息,这样可以不用唤醒被访问的应用。若发起访问的应用为前台应用,则需要结合被访问的应用的状态来判断是否进行代理。
具体来说,当第二应用访问第一应用时,可向第一应用发送访问请求消息,然后电子设备可以通过应用框架层的代理中心模块判断第二应用是否为后台应用,若第二应用是后台应用,则代理中心模块代理第一应用向第二应用返回通知消息,以通知第二应用不存在第一应用的服务。通过这种方式,第二应用在后台时就不能访问到第一应用,可以保护用户的隐私,提升用户体验。
S703:电子设备判断第一应用的状态是否为hibernation状态。若第一应用的状态为hibernation状态,则执行S704,若第一应用的状态不是hibernation状态,则第二应用访问第一应用的服务。
S704:电子设备的代理中心模块向第二应用发送通知消息。
具体来说,当第二应用为前台应用时,代理中心模块可向***发送应用状态查询请求消息,该应用状态查询请求消息中可包括第一应用的包名(或者说第一应用的标识),这样***可根据第一应用的包名查询到第一应用的应用状态。相应的,向第二应用发送第一应用的状态。如果第一应用的状态是hibernation状态,则代理中心模块代理第一应用的服务,向第二应用发送通知消息,以通知第二应用不允许唤醒第一应用,这样就不会唤醒第一应用。
作为一种可能的实现方式,代理中心模块向第二应用发送的通知消息可以包括伪装值,该伪装值用于表征第一应用的服务不存在。示例性的,假设用“0”表示应用的服务不存在,用“1”表示应用的服务存在,那么当第二应用接收到代理中心模块发送的通知消息中包括的伪装值为“0”时,则说明第一应用的服务不存在。
作为另一种可能的实现方式,代理中心模块可以代理第一应用的服务,向第二应用发送通知消息,以通知第二应用不存在第一应用的服务,这样第二应用在访问第一应用时就不会唤醒第一应用。
作为又一种可能的实现方式,代理中心模块可以代理第一应用的服务,向第二应用发送通知消息,以通知第二应用没有权限访问第一应用的服务,这样第二应用就不会访问第一应用,从而不会唤醒第一应用。需要说明的是,第二应用没有权限访问第一应用的服务可包括第二应用在任何情况下都没有权限访问第一应用的服务以及第二应用在设定场景下没有权限访问第一应用的服务,比如第二应用在本次访问时没有权限访问第一应用的服务。
进一步的,作为一种可能的实现方式,代理中心模块可以代理第一应用的服务,通过第三应用向第二应用发送通知消息。其中,第三应用可以为专门与代理中心模块交互消息的应用程序。也就是说,可以通过第三应用转发的形式将通知消息发送给第二应用。
应理解,上述各个条件可以单独使用,也可以组合使用,并且本申请实施例并不限于上述判断条件。比如S702判断发起访问的应用是否是后台应用,在实际应用中,可能不需要该判断条件,如果用户设置了黑名单和白名单,黑名单包括不允许访问其它应用的应用标识。那么,只要发起访问的应用的应用标识在黑名单中,就不能访问其它应用等。
通过上述方式,代理中心模块代理被访问的应用的服务,可以使得在发起访问的应用在访问被访问的应用时,被访问的应用接收不到发起访问的应用发送的访问请求消息,从而不会唤醒被访问的应用,能够降低功耗。
上述本申请提供的实施例中,从电子设备作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
如图8所示,本申请另外一些实施例公开了一种电子设备,该电子设备可以是具有显示屏的电子设备。参阅图8所示,所述电子设备800包括:显示屏801;一个或多个处理器802;一个或多个存储器803;一个或多个传感器804(图中未示出)、多个应用805(图中未示出);以及一个或多个计算机程序806(图中未示出),上述各器件可以通过一个或多个通信总线807连接。
其中,显示屏801用于显示电子设备中的应用的显示界面,或者显示提示信息。存储器803中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令;处理器802调用存储器803中存储的所述指令,使得电子设备800可以上述实施例的方法。
在本申请实施例中,处理器802可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器803中,处理器802读取存储器803中的程序指令,结合其硬件完成上述方法的步骤。
在本申请实施例中,存储器803可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如RAM。存储器还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储指令和/或数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
基于以上实施例,本申请还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被计算机执行时,使得所述计算机执行以上实施例提供的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行以上实施例提供的方法。
本申请实施例是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

Claims (15)

1.一种应用访问方法,其特征在于,包括:
电子设备在检测到第二应用通过设定接口访问第一应用时,确定所述第一应用的服务被所述第二应用访问;
若确定所述第一应用和/或第二应用满足设定条件,则向所述第二应用发送第一通知消息,所述第一通知消息用于通知所述第二应用不允许访问所述第一应用或者通知所述第二应用不存在所述第一应用。
2.如权利要求1所述的方法,其特征在于,所述设定条件包括以下条件中的任意一项:
所述第二应用为后台应用;
所述第二应用为前台应用,且所述第一应用的应用状态为挂起状态;
所述第二应用的应用标识为用户设置的黑名单中的应用标识,所述黑名单中包括禁止访问所述第一应用的应用标识;
所述第一应用的应用标识为用户设置的黑名单中的应用标识,所述黑名单中包括禁止被访问的应用的应用标识。
3.如权利要求1或2所述的方法,其特征在于,向所述第二应用发送第一通知消息,包括:
所述电子设备应用框架层的代理中心模块代理所述第一应用的服务,向所述第二应用发送第一通知消息;或者
所述电子设备应用框架层的代理中心模块代理所述第一应用的服务,通过第三应用向所述第二应用发送第一通知消息。
4.如权利要求1-3任一项所述的方法,其特征在于,若确定所述第一应用和/或第二应用满足设定条件,则向所述第二应用发送第一通知消息,包括:
若确定所述第一应用和/或第二应用满足设定条件,则显示第一提示信息,所述第一提示信息用于提示用户确认是否允许所述第二应用访问所述第一应用的服务;
响应于第一操作,向所述第二应用发送第一通知消息,所述第一操作为用户对否定按钮的触发操作;或者
在所述第一提示信息显示的时间达到预设时长时,向所述第二应用发送第一通知消息。
5.如权利要求1-4任一项所述的方法,其特征在于,所述第一通知消息中包括伪装值,所述伪装值用于表征所述第一应用的服务不存在。
6.如权利要求1所述的方法,其特征在于,所述设定接口为开启服务startService接口或者绑定服务bindService接口。
7.如权利要求1-6任一项所述的方法,其特征在于,电子设备在检测到第二应用通过设定接口访问第一应用之后,所述方法还包括:
所述电子设备确定所述第一应用存在进程。
8.一种服务停止方法,其特征在于,包括:
电子设备显示第一应用的第一界面;
所述电子设备响应于用户的第二操作,将所述第一应用切换为后台应用;
所述电子设备在所述第一应用切换为后台应用后,且对所述第一应用进行服务检测之前,停止所述第一应用的服务。
9.如权利要求8所述的方法,其特征在于,所述第一应用的服务包括多个服务;
所述电子设备停止所述第一应用的服务,包括:
所述电子设备根据所述第一应用的服务类型,停止所述第一应用的第一服务,所述第一服务为所述多个服务中的任意一个服务,且所述第一服务为前台服务。
10.如权利要求8所述的方法,其特征在于,所述第一应用的服务包括多个服务;
所述电子设备停止所述第一应用的服务,包括:
所述电子设备响应于第三操作,停止所述第一应用的第一服务,所述第三操作为用户在所述多个服务的选择操作,所述第一服务为所述多个服务中的至少一个服务。
11.如权利要求8-10任一项所述的方法,其特征在于,所述电子设备停止所述第一应用的服务之后,所述方法还包括:
所述电子设备检测到所述第一应用的应用状态从活跃状态切换为挂起状态。
12.如权利要求8-11任一项所述的方法,其特征在于,所述方法还包括:
所述电子设备向所述第一应用发送禁止唤醒指令。
13.一种电子设备,其特征在于,所述电子设备包括显示屏;一个或多个处理器;一个或多个存储器;一个或多个传感器;多个应用;以及一个或多个计算机程序;
其中所述一个或多个计算机程序被存储在所述一个或多个存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器调用执行时,使得所述电子设备执行如权利要求1至7任一项所述的方法。
14.一种电子设备,其特征在于,所述电子设备包括显示屏;一个或多个处理器;一个或多个存储器;一个或多个传感器;多个应用;以及一个或多个计算机程序;
其中所述一个或多个计算机程序被存储在所述一个或多个存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器调用执行时,使得所述电子设备执行如权利要求8至12任一项所述的方法。
15.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至12任一项所述的方法。
CN202110610534.6A 2021-06-01 2021-06-01 一种应用访问方法、服务停止方法及电子设备 Pending CN115442875A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110610534.6A CN115442875A (zh) 2021-06-01 2021-06-01 一种应用访问方法、服务停止方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110610534.6A CN115442875A (zh) 2021-06-01 2021-06-01 一种应用访问方法、服务停止方法及电子设备

Publications (1)

Publication Number Publication Date
CN115442875A true CN115442875A (zh) 2022-12-06

Family

ID=84271810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110610534.6A Pending CN115442875A (zh) 2021-06-01 2021-06-01 一种应用访问方法、服务停止方法及电子设备

Country Status (1)

Country Link
CN (1) CN115442875A (zh)

Similar Documents

Publication Publication Date Title
KR102630338B1 (ko) 애플리케이션 디스플레이 방법 및 전자 장치
EP4002108B1 (en) Application start method and electronic device
CN112291764B (zh) 一种内容接续***
WO2020103764A1 (zh) 一种语音控制方法及电子设备
EP4020210A1 (en) Multi-thread synchronization method and electronic device
EP3822835B1 (en) Method for deleting secure service, and electronic apparatus
KR20150066083A (ko) 전자 장치의 멀티 태스킹 방법 및 그 전자 장치
WO2023005282A9 (zh) 一种消息推送方法及装置
CN114625525A (zh) 一种资源管控方法及设备
CN116679900B (zh) 一种音频业务处理方法、固件去加载方法及相关装置
WO2023029983A1 (zh) 一种控件内容的拖拽方法、电子设备及***
CN115442875A (zh) 一种应用访问方法、服务停止方法及电子设备
CN115278642A (zh) 获取sim卡的信息的方法、电子设备及终端设备
CN110837439A (zh) 一种文件备份方法、终端与通信***
WO2024099212A1 (zh) 空间位置确定方法、***及其设备
CN116662150B (zh) 应用启动耗时检测方法及相关装置
CN117076089B (zh) 应用管理方法、终端设备及存储介质
CN116048544B (zh) 一种弹窗广告的处理方法、电子设备及可读存储介质
WO2023124791A1 (zh) 蜂窝网络的控制方法和电子设备
CN117119097B (zh) 一种来电共振的方法、设备及存储介质
WO2023061014A1 (zh) 任务管理方法及装置
CN106657568B (zh) 一种实现安全通话的方法和装置
CN116339847A (zh) 一种应用程序冻结方法、装置及电子设备
CN117687707A (zh) 一种应用热启动方法及电子设备
CN118069304A (zh) 一种后台应用程序的控制方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination