CN105278931B - 一种安卓系统禁止应用程序后台自启的方法及终端 - Google Patents
一种安卓系统禁止应用程序后台自启的方法及终端 Download PDFInfo
- Publication number
- CN105278931B CN105278931B CN201410275555.7A CN201410275555A CN105278931B CN 105278931 B CN105278931 B CN 105278931B CN 201410275555 A CN201410275555 A CN 201410275555A CN 105278931 B CN105278931 B CN 105278931B
- Authority
- CN
- China
- Prior art keywords
- application program
- backstage
- opened
- certainly
- package manager
- 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.)
- Active
Links
Abstract
本发明公开了一种安卓系统禁止应用程序后台自启的方法及终端。所述方法包括:获取应用程序对应的包管理器,通过所述包管理器检测该应用程序是否有监听系统广播消息以自启,若是,将该应用程序确定为后台自启应用程序,禁止后台自启该应用程序。通过本发明提供的技术方案,能够禁止应用程序后台自启,有利于提高终端的运行速度。
Description
技术领域
本发明涉及智能终端技术领域,具体涉及智能终端应用程序后台自启技术,尤其涉及一种安卓系统禁止应用程序后台自启的方法及终端。
背景技术
基于Android(安卓)系统的智能终端通常安装有各种应用程序,其中很多应用程序可后台自启,即用户即使没有选择进入,这类应用程序也会自启并在后台运行。这类应用程序通常会监听系统环境的各种事件,如应用程序安装/卸载、网络变化、接收到短信、接收到电话、设置日期/时间等事件,一旦这些事件发生,系统会发送相应事件的广播消息,这类应用程序在收到这些系统广播消息后就会在后台启动自己。现有技术没有主动禁止这类应用程序后台自启的行为,导致大量系统资源的浪费,对智能终端的性能造成影响。
发明内容
有鉴于此,本发明提供一种安卓系统禁止应用程序后台自启的方法及终端,能够解决安卓系统不能禁止后台自启应用程序的问题。
本发明采用以下技术方案:
本发明第一方面提供了一种安卓系统禁止应用程序后台自启的方法,包括:
获取应用程序对应的包管理器;
通过所述包管理器检测该应用程序是否有监听系统广播消息以自启;
若是,将该应用程序确定为后台自启应用程序,禁止后台自启该应用程序。
本发明第二方面提供了一种安卓系统禁止应用程序后台自启的终端,包括:
获取包管理器模块,用于获取应用程序对应的包管理器;
检测模块,用于通过所述包管理器检测该应用程序是否有监听系统广播消息以自启;
禁止模块,用于若检测模块检测出该应用程序有监听系统广播消息以自启,则将该应用程序确定为后台自启应用程序,禁止后台自启该应用程序。
实施本发明的上述技术方案的有益效果包括:基于系统为应用程序提供的对应的包管理器检测该应用程序是否有监听系统广播消息以自启,若是,将该应用程序确定为后台自启应用程序,禁止后台自启该应用程序。本方案可高效的检测出系统中的后台自启应用程序,并禁止其后台自启,减少了系统资源的浪费,有利于提高终端的运行速度。
附图说明
图1是实施本发明的安卓系统禁止应用程序后台自启的方法的硬件环境示意图;
图2是本发明第一实施例中的安卓系统禁止应用程序后台自启的方法的实现流程图;
图3是本发明第二实施例中的安卓系统禁止应用程序后台自启的方法的实现流程图;
图4是本发明第三实施例中的安卓系统禁止应用程序后台自启的终端的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
如图1所示,实施本发明所需的硬件环境为基于安卓系统的终端10,所述终端10至少包括处理器、以及与该处理器连接存储器,还包括为处理器、存储器供电的电源。所述终端10包括智能手机、平板电脑、PDA等智能终端。其中的存储器可为主存储器、辅助存储器、高速缓冲存储器、控制存储器等,用于存放系统及应用程序的数据。其中的电源可为接入的市电或者电池。
本发明实施例中,用户通过终端10安装/卸载应用程序、更新网络连接、接收到短信、接收到电话、设置日期时间等事件时,终端系统会发出对应的广播消息。
在图2中示出了本发明的第一实施例。
图2为本发明第一实施例中的安卓系统禁止应用程序后台自启的方法的实现流程,该实现流程详述如下:
在步骤S101中,获取应用程序对应的包管理器。
在第一实施例中,Android系统提供了很多服务管理的类,例如PowerManager(电源管理)、AudioManager(音频管理)以及PackageManager(包管理器)。其中PackageManager用于管理应用程序包,它可以获取已安装的应用程序的各种信息,例如应用程序的包名(packagename,用于唯一标记应用程序的字符串)、应用程序的界面名(activityInfoName)、应用程序占用的缓存大小(cachsize)、应用程序的数据大小(datasize)等。安卓系统为每个应用程序分别提供有对应的包管理器。
在步骤S102中,通过该应用程序对应的包管理器检测该应用程序是否有监听系统广播消息以自启。
在第一实施例中,后台自启应用程序具有以下特征,它们会监听各种应用程序安装、卸载、网络变化、接收到短信、接收到电话、设置日期时间等系统事件。当这些事件发生时系统会发送相应的系统广播消息,这类应用程序收到这些系统广播消息后,它们会在后台启动自己,达到后台自启的目的。因此,即使用户没有选择启动,只要这类程序监听到有相应的系统广播消息,就会后台自启,占用系统资源。较佳的,常见的系统事件及其对应的系统广播消息如下:
应用程序安装事件——"android.intent.action.PACKAGE_ADDED";
应用程序卸载事件——"android.intent.action.PACKAGE_REMOVED";
wifi变化事件——"android.net.wifi.WIFI_STATE_CHANGED";
接收到短信事件——"android.provider.Telephony.SMS_RECEIVED";
接收到电话事件——"android.intent.action.PHONE_STATE";
设置日期事件——"android.intent.action.TIME_SET"。
在步骤S103中,若步骤S102中检测出该应用程序有监听系统广播消息以自启,则将该应用程序确定为后台自启应用程序,禁止后台自启该应用程序。
在第一实施例中,系统广播消息包括:应用程序安装事件、应用程序卸载事件、网络变化事件、接收到短信事件、接收到来电事件、设置日期/时间事件的广播消息。
在第一实施例中,可以通过禁止应用程序监听系统广播消息的途径来禁止其后台自启,即使应用程序失去通过系统事件监听达到后台自启的能力。
通过本发明第一实施例,基于系统提供的包管理器检测出系统中应用程序是否为后台自启应用程序,若是,则禁止后台自启该应用程序。本方案可高效的检测出系统中的后台自启应用程序,并禁止其后台自启,减少了系统资源的浪费,有利于提高终端的运行速度。
在图3中示出了本发明的第二实施例。第二实施例与第一实施例的主要区别在于对检测应用程序是否有监听系统广播消息以自启,以确定该应用程序是否为后台自启应用程序,进而禁止该应用程序后台自启的方式进行了具体说明,即具体说明了如何识别后台自启应用程序,以及如何禁止这类应用程序后台自启。
图3是本发明第二实施例中的安卓系统禁止应用程序后台自启的方法的实现流程,该实现流程详述如下:
在步骤S201中,获取应用程序对应的包管理器。
在第二实施例中,安卓系统中的每个应用程序可通过自身应用的上下文获取系统提供的包管理器,具体方式可为:PackageManager pm=this.getApplicationContext().getPackageManager(),其中pm即是获取到的应用程序对应的包管理器。
在步骤S202中,通过所述包管理器获取该应用程序的配置文件。
安卓系统中包管理器用于管理应用程序包,它可以获取已安装的应用程序的各种信息。
在步骤S203中,检测该应用程序的配置文件中是否存在系统广播消息对应的字符串?若是,执行下一步,否则,将该应用程序确定为不是后台自启应用程序,结束。
在第二实施例中,包管理器可检测该应用程序是否具有监听这些系统广播消息以自启的行为。较佳的,由于本实施例中每一个系统事件对应的广播消息都是一个字符串,例如:
应用程序安装事件——"android.intent.action.PACKAGE_ADDED";
应用程序卸载事件——"android.intent.action.PACKAGE_REMOVED";
wifi变化事件——"android.net.wifi.WIFI_STATE_CHANGED";
接收到短信事件——"android.provider.Telephony.SMS_RECEIVED";
接收到电话事件——"android.intent.action.PHONE_STATE";
设置日期事件——"android.intent.action.TIME_SET"。
基于此,包管理器的具体检测的方法可为:检测该应用程序的配置文件中查询是否有对应的系统广播消息的字符串存在,如果存在,则证明该应用程序是后台自启应用程序,执行下一步,否则,将该应用程序确定为不是后台自启应用程序,结束。
作为本发明的另一优选实施方式,考虑到应用程序的配置文件虽然存在的系统广播消息的字符串,但该字符串可能不用于使其自启的情况,步骤S203还可替换为检测该应用程序的配置文件中是否存在系统广播消息对应的字符串、以及用于接收所述系统广播消息以自启的指令;如果存在这样的字符串及指令,则证明该应用程序是后台自启应用程序,执行下一步,否则,将该应用程序确定为不是后台自启应用程序,结束。这种实施方式的检测该应用程序是否有监听系统广播消息以自启的方式更准确,但检测复杂度高。
在步骤S204中,从该应用程序的配置文件中获取该应用程序的特征值。
在第二实施例中,该应用程序的特征值包括该应用程序的包名和界面名。
在步骤S205中,禁止该应用程序后台自启。
在第二实施例中,包管理器通过禁止该应用程序监听系统广播消息的途径来禁止其后台自启。具体的禁止方法如下:
通过执行指令”pm disable packageName activityInfoName”禁止应用程序监听系统广播消息,从而使该应用程序失去通过监听系统事件达到后台自启的能力。例如获取到的该应用程序的包名packageName是aaa.bbb.ccc,该应用程序的界面名是ddd,则通过执行指令“pm disable aaa.bbb.ccc ddd”可禁止该应用程序后台自启。
通过上述第二实施例,通过应用程序的自身应用的上下文获取系统提供的包管理器,通过包管理器检测该应用程序的配置文件中是否存在系统广播消息对应的字符串,若存在,确定其为后台自启应用程序,通过禁止其监听系统广播消息的途径来禁止其后台自启。本方案可高效的检测出系统中的后台自启应用程序,并禁止其后台自启,减少了系统资源的浪费,有利于提高终端的运行速度。
在图4中示出了本发明的第三实施例。
图4为本发明第三实施例提供的一种安卓系统禁止应用程序后台自启的终端。所述终端的实施例与上述的方法实施例属于同一构思,终端的实施例中未详尽描述的细节内容,可以参考上述方法实施例。下面对第三实施例中的安卓系统禁止应用程序后台自启的终端进行详细说明。
在第三实施例中,禁止应用程序后台自启的终端包括:获取包管理器模块401、检测模块402和禁止模块403。
其中,所述获取包管理器模块401,用于获取应用程序对应的包管理器。
在第三实施例中,Android系统提供了很多服务管理的类,例如PowerManager(电源管理)、AudioManager(音频管理)以及PackageManager(包管理器)。其中PackageManager用于管理应用程序包,它可以获取已安装的应用程序的各种信息。Android系统为系统中的每一个应用程序提供有对应的包管理器。
较佳的,本实施例中系统中的每个应用程序可通过自身应用的上下文获取系统提供的包管理器,具体方式可为:PackageManager pm=this.getApplicationContext().getPackageManager(),其中pm即是获取到的应用程序对应的包管理器。
所述检测模块402,用于通过所述包管理器检测该应用程序是否有监听系统广播消息以自启。
在第三实施例中,后台自启应用程序具有以下特征,它们会监听各种应用程序安装、卸载、网络变化、接收到短信、接收到电话、设置日期时间等系统事件。当这些事件发生时系统会发送相应事件的广播消息,这类后台自启应用程序收到这些广播消息后,它们会在后台启动自己,达到后台自启的目的。因此,即使用户没有选择启动,只要这类程序监听到有相应的系统广播消息,就会后台自启,占用系统资源。
本实施例中,每一个系统事件对应的系统广播消息都是一个字符串,例如:
应用程序安装事件——"android.intent.action.PACKAGE_ADDED";
应用程序卸载事件——"android.intent.action.PACKAGE_REMOVED";
wifi变化事件——"android.net.wifi.WIFI_STATE_CHANGED";
接收到短信事件——"android.provider.Telephony.SMS_RECEIVED";
接收到电话事件——"android.intent.action.PHONE_STATE";
设置日期事件——"android.intent.action.TIME_SET"。因此本实施例中,所述检测模块402可具体用于通过所述包管理器获取该应用程序的配置文件,检测所述配置文件中是否存在系统广播消息对应的字符串。如果存在,则证明该应用程序是后台自启应用程序,否则,将该应用程序确定为不是后台自启应用程序。
作为另一优选实施方式,所述检测模块402还可以通过检测所述配置文件中是否存在系统广播消息对应的字符串、以及用于接收所述系统广播消息以自启的指令,如果存在这样的字符串及指令,则证明该应用程序是后台自启应用程序,需禁止其自启;否则,将该应用程序确定为不是后台自启应用程序。这种实施方式是考虑到应用程序的配置文件虽然存在的系统广播消息的字符串,但该字符串可能不会导致其自启的情况。因此这种检测该应用程序是否有监听系统广播消息以自启的方式更准确,但检测复杂度高。
所述禁止模块403,用于若检测模块402检测出该应用程序有监听系统广播消息以自启,则将该应用程序确定为后台自启应用程序,禁止后台自启该应用程序。
在第三实施例中,包管理器通过禁止应用程序监听系统广播消息的途径来禁止其后台自启,即使应用程序失去通过系统事件监听达到后台自启的能力。所述禁止模块403还用于从应用程序的配置文件中获取该应用程序的包名和界面名。具体的禁止方法如下:
通过执行指令”pm disable packageName activityInfoName”禁止应用程序监听系统广播消息,从而使该应用程序失去通过监听系统事件达到后台自启的能力。例如获取到的该应用程序的包名packageName是aaa.bbb.ccc,该应用程序的界面名是ddd,则通过执行指令“pm disable aaa.bbb.ccc ddd”可禁止该应用程序后台自启。
通过上述第三实施例,基于安卓系统为应用程序提供的包管理器检测该应用程序的配置文件中是否存在系统广播消息对应的字符串,若存在,确定其为后台自启应用程序,通过禁止其监听系统广播消息的途径来禁止后台自启该应用程序。本方案可高效的检测出系统中的后台自启应用程序,并禁止其后台自启,减少了系统资源的浪费,有利于提高终端的运行速度。
本领域普通技术人员可以理解实现上述实施例的全部或部分内容可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种安卓系统禁止应用程序后台自启的方法,其特征在于,包括:
获取应用程序对应的包管理器;
通过所述包管理器获取该应用程序的配置文件;
检测所述应用程序的配置文件中是否存在系统广播消息对应的字符串、以及用于接收所述系统广播消息以自启的指令;
在存在所述字符串及指令的情况下,将该应用程序确定为后台自启应用程序;
从所述应用程序的配置文件中获取该应用程序的特征值;
根据所述应用程序的特征值,通过禁止所述应用程序监听系统广播消息的途径以禁止后台自启该应用程序。
2.根据权利要求1所述的安卓系统禁止应用程序后台自启的方法,其特征在于,所述禁止后台自启该应用程序,包括:
所述包管理器通过禁止该应用程序监听系统广播消息,以禁止其后台自启。
3.根据权利要求2所述的安卓系统禁止应用程序后台自启的方法,其特征在于,所述通过所述包管理器获取该应用程序的配置文件之后、禁止后台自启该应用程序之前,还包括:
从所述配置文件中获取该应用程序的包名和界面名。
4.根据权利要求1所述的安卓系统禁止应用程序后台自启的方法,其特征在于,所述获取应用程序对应的包管理器,包括:
通过应用程序自身应用的上下文获取系统提供的对应的包管理器。
5.根据权利要求1所述的安卓系统禁止应用程序后台自启的方法,其特征在于,所述系统广播消息包括:应用程序安装事件、应用程序卸载事件、网络变化事件、接收到短信事件、接收到来电事件、设置日期/时间事件的广播消息。
6.一种安卓系统禁止应用程序后台自启的终端,其特征在于,包括:
获取包管理器模块,用于获取应用程序对应的包管理器;
检测模块,用于通过所述包管理器获取该应用程序的配置文件,检测所述配置文件中是否存在系统广播消息对应的字符串、以及用于接收所述系统广播消息以自启的指令;
禁止模块,用于在存在所述字符串及指令的情况下,则将该应用程序确定为后台自启应用程序,从所述应用程序的配置文件中获取该应用程序的特征值,根据所述应用程序的特征值,通过禁止所述应用程序监听系统广播消息的途径以禁止后台自启该应用程序。
7.根据权利要求6所述的安卓系统禁止应用程序后台自启的终端,其特征在于,所述禁止后台自启该应用程序,包括:
所述包管理器通过禁止该应用程序监听系统广播消息,以禁止其后台自启。
8.根据权利要求7所述的安卓系统禁止应用程序后台自启的终端,其特征在于,所述禁止模块,还用于从所述配置文件中获取该应用程序的包名和界面名。
9.根据权利要求6所述的安卓系统禁止应用程序后台自启的终端,其特征在于,所述获取包管理器模块,具体用于通过应用程序自身应用的上下文获取系统提供的对应的包管理器。
10.根据权利要求6所述的安卓系统禁止应用程序后台自启的终端,其特征在于,所述系统广播消息包括:应用程序安装事件、应用程序卸载事件、网络变化事件、接收到短信事件、接收到来电事件、设置日期/时间事件的广播消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410275555.7A CN105278931B (zh) | 2014-06-19 | 2014-06-19 | 一种安卓系统禁止应用程序后台自启的方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410275555.7A CN105278931B (zh) | 2014-06-19 | 2014-06-19 | 一种安卓系统禁止应用程序后台自启的方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105278931A CN105278931A (zh) | 2016-01-27 |
CN105278931B true CN105278931B (zh) | 2019-08-02 |
Family
ID=55147997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410275555.7A Active CN105278931B (zh) | 2014-06-19 | 2014-06-19 | 一种安卓系统禁止应用程序后台自启的方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105278931B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106022104A (zh) * | 2016-05-18 | 2016-10-12 | 广东欧珀移动通信有限公司 | 阻止推送平台应用启动的方法及装置 |
CN106022103A (zh) * | 2016-05-18 | 2016-10-12 | 广东欧珀移动通信有限公司 | 阻止通过推送平台组件启动应用的方法及装置 |
CN106055393A (zh) * | 2016-05-20 | 2016-10-26 | 广东欧珀移动通信有限公司 | 一种应用启动管理方法及移动终端 |
CN108289111B (zh) * | 2017-01-09 | 2021-10-08 | 斑马智行网络(香港)有限公司 | 服务提供方法、装置、终端设备和操作系统 |
CN108196960B (zh) * | 2017-08-31 | 2023-08-04 | 中兴通讯股份有限公司 | 一种应用的管控方法、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595547A (zh) * | 2013-11-15 | 2014-02-19 | 北京奇虎科技有限公司 | 智能设备的广播拦截方法和装置 |
CN103823699A (zh) * | 2014-02-27 | 2014-05-28 | 广州视源电子科技股份有限公司 | 一种控制应用程序自启动的方法和装置 |
CN104020999A (zh) * | 2014-06-16 | 2014-09-03 | 腾讯科技(深圳)有限公司 | 一种应用程序的管理方法和系统 |
-
2014
- 2014-06-19 CN CN201410275555.7A patent/CN105278931B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595547A (zh) * | 2013-11-15 | 2014-02-19 | 北京奇虎科技有限公司 | 智能设备的广播拦截方法和装置 |
CN103823699A (zh) * | 2014-02-27 | 2014-05-28 | 广州视源电子科技股份有限公司 | 一种控制应用程序自启动的方法和装置 |
CN104020999A (zh) * | 2014-06-16 | 2014-09-03 | 腾讯科技(深圳)有限公司 | 一种应用程序的管理方法和系统 |
Non-Patent Citations (1)
Title |
---|
Android利用系统广播---监听应用程序安装和卸载;Jacob-wj;《https://blog.csdn.net/wangjia55/article/details/8470611》;20130105;第1页 |
Also Published As
Publication number | Publication date |
---|---|
CN105278931A (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105278931B (zh) | 一种安卓系统禁止应用程序后台自启的方法及终端 | |
CN108829487B (zh) | 一种弹窗的展示方法、装置、存储介质及终端 | |
EP4080368A1 (en) | Alarm information generation method and apparatus, electronic device, and storage medium | |
CN102200942B (zh) | 基于云计算的应用程序行为监测方法及云端服务器 | |
CN104020999B (zh) | 一种应用程序的管理方法和系统 | |
CN101873616B (zh) | 一种移动终端自检的方法、系统及移动终端 | |
CN109756528B (zh) | 频率控制方法及装置、设备、存储介质、服务器 | |
CN103984468A (zh) | 信息处理的方法和装置 | |
EP2985695A1 (en) | Method and device for setting application program state | |
CN107623731B (zh) | 一种任务调度方法、客户端、服务集群及系统 | |
CN104217161A (zh) | 一种病毒扫描方法及系统、终端设备 | |
CN104346569A (zh) | 移动终端中恶意广告的识别方法、装置和移动终端 | |
CN106341259A (zh) | 故障信息上报方法及装置 | |
CN103383758A (zh) | 终端日程管理方法及装置 | |
CN107968881A (zh) | 终端设备广播处理方法及装置、终端设备及存储介质 | |
US9727351B2 (en) | Method and device for setting status of application | |
CN106020421A (zh) | 一种应用程序管理方法及终端 | |
CN106844026A (zh) | 一种清理终端设备进程的方法及系统 | |
CN105094278B (zh) | 一种信息处理方法及装置 | |
CN105468370A (zh) | 一种移动终端通知栏消息快速清除方法、系统及移动终端 | |
CN104992116B (zh) | 基于intent sniffer的监测方法及系统 | |
CN108683588A (zh) | 一种消息管理方法、消息管理装置及移动终端 | |
CN108062244B (zh) | 爬虫任务的取消方法及装置 | |
CN107547301A (zh) | 一种主备设备倒换方法及装置 | |
CN107911229B (zh) | 运行状态改变的提醒方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |