以广播方式启动应用的控制方法、装置、存储介质及终端与流程

文档序号:13839262阅读:145来源:国知局

本申请实施例涉及数据处理技术,尤其涉及一种以广播方式启动应用的控制方法、装置、存储介质及终端。



背景技术:

目前,智能终端已成为用户生活或工作中最常用最重要的电子设备。智能终端的功能也不仅限于打电话和发短信。

用户经常会安装各种第三方应用,以满足工作或生活需求。但是,这些第三方应用经常在后台偷偷启动,这些应用启动的方式通常是通过接收广播来启动,因此,用户并不知道其已启动并在后台运行,但是这些自启动的第三方应用会占用系统资源,使智能终端的运行速度或上网速度变慢。比如,某些第三方应用在用户不知情的情况下进行数据上传或下载,使用了智能终端的系统资源,占用了网络带宽,影响了智能终端的处理速度、功耗等性能。

申请内容

本申请实施例提供一种以广播方式启动应用的控制方法、装置、存储介质及终端,可以有效的管控以广播方式自启动的应用进程,提升智能终端的性能。

第一方面,本申请实施例提供了一种以广播方式启动应用的控制方法,包括:

获取调用者信息、注册为广播接收者的应用进程的应用信息及所述应用进程对应的应用程序的自启动权限;

在以广播方式启动应用进程的管控事件被触发时,若调用者为系统进程,则根据所述应用信息及自启动权限匹配预设自启动控制策略,其中,预设自启动策略的制定方式是对用户样本的历史使用习惯进行统计或学习;

根据匹配结果允许或禁止所述应用进程启动。

第二方面,本申请实施例还提供了一种以广播方式启动应用的控制装置,该装置包括:

信息获取模块,用于获取调用者信息、注册为广播接收者的应用进程的应用信息及所述应用进程对应的应用程序的自启动权限;

策略匹配模块,用于在以广播方式启动应用进程的管控事件被触发时,若调用者为系统进程,则根据所述应用信息及自启动权限匹配预设自启动控制策略,其中,预设自启动策略的制定方式是对用户样本的历史使用习惯进行统计或学习;

操作执行模块,用于根据匹配结果允许或禁止所述应用进程启动。

第三方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的以广播方式启动应用的控制方法。

第四方面,本申请实施例还提供一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行所述计算机程序时实现如本申请实施例所述的以广播方式启动应用的控制方法。

本申请实施例提供一种以广播方式启动应用的控制方案,通过获取调用者信息、注册为广播接收者的应用进程的应用信息及所述应用进程对应的应用程序的自启动权限;在以广播方式启动应用进程的管控事件被触发时,若调用者为系统进程,则根据所述应用信息及自启动权限匹配预设自启动控制策略;根据匹配结果允许或禁止所述应用进程启动,可以有效的管控以广播方式自启动应用程序的操作。采用上述技术方案,可以对获取的调用者信息、注册为广播接收者的应用进程的应用信息及应用进程对应的应用程序的自启动权限进行综合判断,决定是否允许启动该应用进程,减少发生第三方应用程序利用系统广播方式自启动的情况,进而,减少应用程序通过广播方式实现自己的进程常驻的问题,从而,减少使用终端资源的应用,提高处理速度,同时降低了终端功耗,提高终端的续航时间。

附图说明

图1是本申请实施例提供的一种以广播方式启动应用的控制方法的流程图;

图2是本申请实施例提供的一种应用程序的自启动开关界面的示意图;

图3是本申请实施例提供的另一种以广播方式启动应用的控制方法的流程图;

图4是本申请实施例提供的一种广播发送与接收流程示意图;

图5是本申请实施例提供的一种以广播方式启动应用的控制装置的结构示意图;

图6是本申请实施例提供的一种终端的结构框图;

图7是本申请实施例提供的一种移动终端的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

目前,智能系统作为用户群最大的智能终端的操作系统平台,可以兼容各种第三方应用,以满足用户在生活、娱乐中的各种使用需求。但是,这些第三方应用可能通过注册系统广播的方式在后台自动启动,并在用户不知情的情况下进行数据上传或下载,影响了智能终端的使用性能和安全性。

为了更清楚的说明本申请,下面对广播方式启动应用程序进行简要说明。相关技术中,在安卓系统(android)中,广播是一种非可视化的后台运行逻辑。其中,用于接收系统或应用程序(或简称应用)发送出来的广播,并执行某些业务的对象称为广播接收者。广播接收者一般处在一个应用apk(androidpackage,即android安装包)中,即对应一个独立的进程。如果有应用发出一个广播时,系统会通过应用包信息管理服务(packagemanagerservice,简称pms)得到所有接收这个广播的广播接收者。然后,系统会逐个将广播发送给每一个广播接收者,并且检查广播接收者所在的进程是否己经启动,如果没有启动,就需要启动广播接收者所在的进程。在android中,通过应用上下文调用sendbroadcast()方式去发送广播,且指定接收者,使用broadcastsreceiver接收广播。

但是,这个方式也会被一些流氓应用所利用,让自己的进程保持常驻。例如:某个流氓应用a,会注册大量系统级别广播,如网络状态变化广播,当网络状态发生变化时,系统会发出网络状态变化广播,因为应用a中有广播接收者注册要接收此广播,系统就会向应用a中的广播接收者发送广播,当检查应用a进程没有启动时,就会启动应用a。即使查杀了该应用a,系统还会向应用a发送广播,从而启动应用a,导致应用a一直使用终端的系统资源,占用网络带宽,出现终端的处理速度变慢、网络速度变慢或耗电量增加等影响终端性能的问题。为了解决上述问题,相关技术中提出通过限制某些应用接收广播,实现限制应用启动的方式。但是,采用该方式可能影响某些应用的正常使用。本申请实施例提供的以广播方式启动应用的控制方案,可以有效的管控第三方应用通过广播方式自启动。

图1为本申请实施例提供的一种以广播方式启动应用的控制方法的流程图,该方法可以由以广播方式启动应用的控制装置来执行,其中,该装置可由软件和/或硬件实现,一般可集成于智能终端中。如图1所示,该方法包括:

步骤110、获取调用者信息、注册为广播接收者的应用进程的应用信息及所述应用进程对应的应用程序的自启动权限。

其中,调用者包括通过广播方式触发第三方应用启动的执行主体。例如,调用者包括系统或应用。调用者信息是用于标识调用者身份的信息。调用者信息可以是uid(useridentification,用户标识)值。根据uid值可以确定调用者是系统还是应用。例如,若uid值是1000,则确定调用者是系统。可选的,在获取调用者信息后,可以根据调用者的uid值标记该调用者是系统还是应用。

广播接收者可以通过binder机制(一种进程间通信机制,提供远程过程调用(rpc)功能)向ams(activitymanagerservice,是android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似)进行注册。注册为广播接收者的应用进程的应用信息包括用户标识(uid值)、应用包名(还可以替换为pid值)和组件名称。其中,应用程序的uid值为唯一的,一个应用程序可以对应多个应用进程,应用进程的uid值与该应用程序的uid值相同。即应用进程的uid值与该应用进程对应的应用程序的uid值相同。

其中,自启动权限可以是允许应用程序在系统广播的触发下自行启动的权限。例如,在智能终端的应用管家或配置界面中增加应用程序的自启动开关,供用户通过操作自启动开关打开或关闭该应用程序的自启动功能。从而,可以采用自启动开关的状态信息表征自启动权限。自启动开关的状态信息包括开启状态和关闭状态。若自启动开关处于开启状态,则说明对应的应用程序具有自启动权限。图2是本申请实施例提供的一种应用程序的自启动开关界面的示意图。如图2所示,用户可以通过应用管家进入应用程序的自启动设置界面,在该界面内,可以通过对选择控件210的操作打开或关闭应用程序a(或应用程序b/c/d)的自启动功能,也可以认为是赋予应用程序a自启动权限。还可以通过编辑控件220增加或修改应用程序。系统检测到某一应用程序的自启动开关的状态发生变化时,更新自启动开关状态表,该自启开关状态表可以存储于本地缓存,也可以存储于云端服务器。另外,该自启动开关状态表可以是文件格式,还可以是数据表格式。

可选的,自启动权限还可以通过语音输入的方式赋予应用程序。例如,用户通过语音助手功能为应用a赋予自启动权限,则系统修改应用a对应的自启动标识的取值,从而可以根据该自启动标识的取值确定应用的自启动权限。可以理解的是,获取自启动权限的方式有很多种,本实施例不作具体限定。

在检测到广播时,系统获取该广播对应的调用者信息、注册为广播接收者的应用进程的应用信息,并且在系统检测到作为广播接收者的应用进程未启动时,读取自启动开关状态表,获取该应用进程对应的应用程序的自启动权限。

需要说明的是,在根据应用信息及自启动权限匹配预设自启动控制策略之前,还包括:判断作为广播接收者的应用进程是否已启动;若该应用进程未启动,则触发以广播方式启动应用进程的管控事件。在以广播方式启动应用进程的管控事件被触发时,执行根据所述用户标识、应用包名、组件名称及自启动权限匹配预设自启动控制策略的操作。若作为广播接收者的应用进程是已启动,则不触发以广播方式启动应用进程的管控事件。

步骤120、在以广播方式启动应用进程的管控事件被触发时,若调用者为系统进程,则根据所述应用信息及自启动权限匹配预设自启动控制策略。

其中,对用户样本的历史使用习惯进行统计或学习制定预设自启动策略。用户样本的选择可以是本机用户在设定时间区间内的历史使用数据,还可以是设定数量满足设定条件的用户群体在设定时间区间内的历史使用数据。例如,服务器获取本机用户一个月内的历史使用数据,作为用户样本,采用机器学习模型对该用户样本进行学习,预测用户可能使用的应用程序,根据该应用程序生成白名单,以便于在开机后或后台允许其自启动。又如,服务器获取1万名年龄在16~26岁之间的用户在一个月内的历史使用数据,作为用户样本,统计出这个用户群体常用的应用程序,根据该应用程序生成白名单,以便于在开机后或后台允许其自启动。白名单生成后,由服务器推送至智能终端。需要说明的是,该白名单还可以由用户选择。该白名单可以以文件方式存储在智能终端本地或云端服务器,还可以以数据库方式存储在智能终端本地或云端服务器。可以理解的是,自启动策略的制定方案并不限于上述列举的情况。

若以广播方式启动应用进程的管控事件被触发,且调用者的uid值为1000,则根据所述应用信息及自启动权限匹配预设自启动控制策略。示例性的,将注册为广播接收者的应用进程的用户标识作为第一用户标识(可以是uid值),获取后台运行的应用程序的用户标识,记为第二用户标识(可以是uid值),将第一用户标识与第二用户标识的值进行比较,若两者的值相等,则确定待启动的应用进程与目前后台运行的应用程序具有关联关系,直接允许其启动。例如,应用程序a包括第一应用进程a1和第二应用进程a2。若当前第一应用进程a1在后台运行,第二应用进程a2注册为广播接收者。在检测到广播时,获取第二应用进程a2的uid值,并与后台运行的应用进程的uid值进行比较,由于后台运行的第一应用进程a1与第二应用进程a2同属于应用程序a,具有相同的uid值,可以确定已有与待启动的第二应用进程a2的uid值相同的其它应用进程在后台运行,从而,确定可以直接允许第二应用进程a2直接启动。

将注册为广播接收者的应用进程(也可以称为待启动应用进程)的组件名称与预设自启动策略中的预设白名单进行匹配。例如,根据注册为广播接收者的应用进程的组件名称查询预设白名单,确定待启动应用进程的组件名称是否属于预设白名单。若该待启动应用进程的组件名称属于预设白名单,则直接允许该待启动应用进程启动。

将注册为广播接收者的应用进程(也可以称为待启动应用进程)的应用包名与预设自启动策略中的预设白名单进行匹配。例如,根据注册为广播接收者的应用程序的包名查询预设白名单,确定待启动应用进程是否属于预设白名单。若该待启动应用进程属于预设白名单,则直接允许该待启动应用进程启动。

确定注册为广播接收者的应用进程(也可以称为待启动应用进程)对应的应用程序,查询自启动开关状态表,确定该应用程序的自启动开关处于打开状态还是关闭状态。若待启动应用进程对应的应用程序的自启动开关已打开,则直接允许该待启动应用进程启动。可选的,可以通过应用包名、进程标识pid值或组件名称查询自启动开关状态表,确定当前待启动应用进程对应的应用程序的自启动开关是否打开。其中,组件名称是一个组件名称(componentname)对象,是目标组件类名和目标组件所在应用程序包的组合。

可以理解的是,在上述根据所述应用信息及状态信息匹配预设自启动控制策略的过程中,各个特征(应用信息、状态信息)与自启动控制策略的匹配操作的执行顺序并不是唯一的,其执行顺序可以调换。

可以理解的是,预设自启动控制策略并不限于上述示例中列举的内容,还可以是规定允许系统内置应用自启动。在根据所述应用信息及自启动权限匹配预设自启动控制策略之前,判断所述应用程序是否为系统内置应用;若是,则执行允许所述广播对应的应用进程启动的操作;否则,根据所述应用信息及自启动权限匹配预设自启动控制策略。例如,如果检测到广播,根据注册为广播接收者的应用进程的应用信息确定所述应用进程对应的应用程序为系统内置应用,则允许该应用进程自启动。如果该应用进程对应的应用程序为非系统内置应用,则根据所述应用信息及自启动权限匹配预设自启动控制策略。

步骤130、根据匹配结果允许或禁止所述应用进程启动。

其中,匹配结果包括待启动应用进程的第一用户标识与第二用户标识相同,第一用户标识与第二用户标识不相同,待启动应用进程的组件名称属于预设白名单,待启动应用进程的组件名称不属于预设白名单,待启动应用进程属于预设白名单,待启动应用进程不属于预设白名单,待启动应用进程对应的应用程序的自启动开关为开启状态,以及待启动应用进程对应的应用程序的自启动开关为关闭状态。

在匹配结果同时满足下述条件时,禁止注册为广播接收者的应用进程(即待启动应用进程)启动:

第一用户标识与第二用户标识不相同;

待启动应用进程的组件名称不属于预设白名单;

待启动应用进程不属于预设白名单;

待启动应用进程对应的应用程序的自启动开关为关闭状态。

在匹配结果满足下述条件中的一项时,允许注册为广播接收者的应用进程(即待启动应用进程)启动:

第一用户标识与第二用户标识相同;

待启动应用进程的组件名称属于预设白名单;

待启动应用进程属于预设白名单;

待启动应用进程对应的应用程序的自启动开关为开启状态。

需要说明的是,由于预设白名单内存储的应用进程的组件均是允许开机或后台自启动的服务组件,若待启动应用进程的组件名称属于预设白名单,则可以直接允许待启动应用进程启动。另外,预设白名单内存储的应用程序均是允许开机或后台自启动的应用程序,若待启动应用进程的包名或进程标识属于预设白名单,则无论调用者是谁,均直接允许待启动应用进程启动。

可以理解的是,在根据所述应用信息及自启动权限匹配预设自启动控制策略之前,若确定待启动应用进程对应的应用程序是系统内置应用,则直接允许待启动应用进程启动。

本申请实施例的技术方案,可以对获取的调用者信息、注册为广播接收者的应用进程的应用信息及应用进程对应的应用程序的自启动权限进行综合判断,决定是否允许启动该应用进程,可以有效的管控以广播方式自启动应用程序的操作,减少流氓应用程序通过广播方式实现自己的进程常驻的情况发送,从而,减少使用终端资源的应用,提高处理速度,同时降低了终端功耗,提高终端的续航时间。

图3是本申请实施例提供的另一种以广播方式启动应用的控制方法的流程图。如图3所示,该方法包括:

步骤301、在检测到广播时,调用广播处理函数。

其中,广播处理函数可以是processnextbroadcast函数,该函数为系统代码broadcastqueue中。通过processnextbroadcast函数可以获取待启动应用进程的应用信息(包括待启动应用进程的包名、组件名称和uid值等)以及调用者信息(包括uid值和包名等)。

系统收到广播相关的消息时,调用processnextbroadcast函数,内部遍历并行列表mparallelbroadcasts的每一个广播记录broadcastrecord以及其中的接收者receivers列表,将广播发送给接收者。

步骤302、通过广播处理函数获取调用者信息,以及注册为广播接收者的应用进程的uid值、包名和组件名称。

需要说明的是,在通过广播处理函数获取调用者信息,以及注册为广播接收者的应用进程的uid值、包名和组件名称之后,根据应用标识(即包名)判断作为广播接收者的应用进程是否已启动。在所述应用进程未启动时,执行根据所述用户标识、应用包名、组件名称及状态信息匹配预设自启动控制策略的操作。若作为广播接收者的应用进程已启动,则不进行管控。

步骤303、根据待启动应用进程的应用信息查询预设的自启动开关状态表,确定待启动应用进程对应的应用程序的自启动开关的状态信息。

其中,应用信息包括待启动应用进程的uid值、包名或进程标识pid。自启动开关状态表为存储有用户设置的应用程序的自启动开关的打开或关闭状态的表格。

步骤304、根据所述调用者信息确定调用者为系统进程。

由于调用者信息包括调用者用户标识,即调用者uid值。若调用者uid值为1000,则可以确定该调用者为系统进程。

步骤305、判断所述应用进程对应的应用程序是否为系统内置应用,若是,则执行步骤311,否则执行步骤306。

其中,系统内置应用为智能终端出厂前预置在其中的应用程序。可以通过查询根据系统预装应用程序列表的方式,判断所述应用进程对应的应用程序是否为系统内置应用。可以理解的是,判断应用程序是否为系统内置应用的方式有很多种,本实施例不作具体限定。

步骤306、判断待启动应用进程与后台运行的应用程序是否匹配,若是,则执行步骤311,否则执行步骤307。

根据待启动应用进程的uid值查询后台运行应用程序的uid值,确定是否存在与待启动应用进程的uid值相同的后台运行的应用程序,若是,则确定待启动应用进程与后台运行的应用程序匹配,执行步骤311,否则,执行步骤307。

步骤307、判断所述组件名称是否属于预设白名单,若是,则执行步骤311,否则执行步骤308。

步骤308、判断所述包名是否属于预设白名单,若是,则执行步骤311,否则执行步骤309。

可选的,上述对于包名的验证步骤还可以替换为针对待启动应用进程的uid值或pid值的验证。即根据uid值或pid值查询预设白名单,确定待启动应用进程对应的应用程序是否属于预设白名单。

步骤309、判断所述应用程序的自启动开关是否处于开启状态,若是,则执行步骤311,否则执行步骤310。

需要说明的是,上述步骤305至309的顺序并不是固定的,可以互换。

步骤310、禁止所述应用进程启动。

若禁止所述应用进程启动,则关闭该应用进程对应的广播,防止内存泄露。例如,应用a、应用b和应用c均注册为网络状态变化广播的接收者。当网络状态发生变化时,系统会发出网络状态变化广播,因为应用a中有广播接收者注册要接收此广播,系统就会向应用a中的广播接收者发送广播,当检查应用a进程没有启动时,采用上述方式判断应用a不满足自启动条件,则通过finish函数关闭本次对应于应用a的广播。但是,并不影响系统向应用b和应用c发送广播,并在其为启动时,采用上述方式判断应用b和应用c是否满足自启动条件。若系统再次发出网络状态变化广播,系统仍然会向应用a发送广播。若应用a处于未启动状态,采用上述方式判断是否允许应用a自启动。

可选的,若禁止所述应用进程启动,则关联存储所述调用者与所述应用程序生成拦截记录,向用户展示所述拦截记录。例如,对于禁止待启动应用进程启动的情况,可以保存调用者包名和待启动应用进程的包名,用于向用户显示所有因自启动被拦截的启动记录。

步骤311、允许所述应用进程启动。

本申请实施例的技术方案,通过对获取的调用者信息、注册为广播接收者的应用进程的uid值、包名、组件名称及应用进程对应的应用程序的自启动开关的状态信息进行综合判断,决定是否允许启动该应用进程,可以有效的管控以广播方式自启动应用程序的操作。另外,若禁止待启动应用进程启动,则关闭该应用进程对应的广播,避免被禁止自启动的应用进行对应的广播一直存在于广播队列,引发内存泄露的情况发生。此外,若禁止待启动应用进程启动,则关联存储所述调用者与所述应用程序生成拦截记录,向用户展示所述拦截记录,可以向用户展示所有因自启动被拦截的启动记录,优化人机交互设计。

为了理解广播机制,结合图4提供的一种广播发送与接收流程示意图对发送与接收广播的流程进行简单说明。如图4所示,广播发送与接收过程包括:

步骤410、通过contextimpl的sendbroadcast方法向ams发起一个异步请求用来发送广播。

通过应用上下文调用sendbroadcast()方法向ams发起一个异步请求用来发送广播。例如,通过sendbroadcast()方法调用ams的broadcastintent方法。

步骤420、ams的broadcastintent方法里调用broadcastintentlocked方法,找出匹配的广播接收者,并经过条件过滤把满足条件的广播接受者添加到广播队列中。

broadcastintent方法里调用broadcastintentlocked方法,该方法会对intent设置标记flags;根据intent-filter找出匹配的广播接收者并经过条件过滤将满足条件的广播接收者添加到广播队列broadcastqueue中。

步骤430、schedulebroadcastlocked通过handler向广播队列发送消息。

通过queue.schedulebroadcastlocked方法将广播发送给满足条件的接收者。该方法并没有立即发送广播,只是发送一个消息给广播队列。

步骤440、广播队列收到消息调用processnextbroadcast方法,内部遍历mparallelbroadcasts,并将广播发送给接收者。

广播队列收到上述消息后,会调用processnextbroadcast方法;本申请实施例在系统代码broadcastqueue中的processnextbroadcast函数中增加上述应用进程的自启动管控策略,通过获取调用者信息、待启动应用进程的uid值、包名及相应组件信息,对所获取的数据进行综合判断,确定是否可以允许启动该待启动应用进程。

processnextbroadcast方法中无序广播(无序广播即为相关技术中经常使用的广播,其主要是通过publicabstractvoidsendbroadcast(intentintent)方法进行发送,并通过intent传递数据)是存储在并行列表mparallelbroadcasts中,系统会遍历并行列表mparallelbroadcasts并将广播发送给接收者。具体过程是delivertoregisteredreceiverlocked方法完成;它内部调用performreceiverlocked方法,该方法内部调用app.thread.scheduleregisteredreceiver方法;该方法通过innerreceiver实现广播接收,innerreceiver的performreceive方法调用receiverdispatcher的performreceive方法;在该方法里创建一个args对象并通过mactivitythread的post方法执行逻辑,在args中回调eonreceive方法。

图5是本申请实施例提供的一种以广播方式启动应用的控制装置的结构示意图。该装置可以通过软件和/或硬件实现,可被集成于智能终端内,用于执行本申请实施例提供的以广播方式启动应用的控制方法。如图5所示,该装置包括:

信息获取模块510,用于获取调用者信息、注册为广播接收者的应用进程的应用信息及所述应用进程对应的应用程序的自启动权限;

策略匹配模块520,用于在以广播方式启动应用进程的管控事件被触发时,若调用者为系统进程,则根据所述应用信息及自启动权限匹配预设自启动控制策略,其中,预设自启动策略的制定方式是对用户样本的历史使用习惯进行统计或学习;

操作执行模块530,用于根据匹配结果允许或禁止所述应用进程启动。

本申请实施例的技术方案提供一种以广播方式启动应用的控制装置,可以对获取的调用者信息、注册为广播接收者的应用进程的应用信息及应用进程对应的应用程序的自启动权限进行综合判断,决定是否允许启动该应用进程,可以有效的管控以广播方式自启动应用程序的操作,减少流氓应用程序通过广播方式实现自己的进程常驻的情况发生,从而,减少使用终端资源的应用,提高处理速度,同时降低了终端功耗,提高终端的续航时间。

可选的,信息获取模块510具体用于:

在检测到广播时,调用广播处理函数;

通过广播处理函数获取调用者信息,以及注册为广播接收者的应用进程的用户标识、应用包名和组件名称;

根据所述调用者信息确定调用者为系统进程;

以及,在根据所述应用信息及自启动权限匹配预设自启动控制策略之前,还包括:

根据应用包名判断作为广播接收者的应用进程是否已启动;

在所述应用进程未启动时,执行根据所述用户标识、应用包名、组件名称及自启动权限匹配预设自启动控制策略的操作;

若所述应用进程已启动,则不进行管控。

可选的,策略匹配模块520具体用于:

将所述用户标识作为第一用户标识,将后台运行的应用程序的用户标识作为第二用户标识,将所述第一用户标识与第二用户标识进行匹配;

将所述组件名称与预设自启动策略中的预设白名单进行匹配;

将所述应用包名与预设自启动策略中的预设白名单进行匹配;

在采用应用程序的自启动开关状态表征自启动权限时,判断所述应用程序的自启动开关是否处于开启状态。

可选的,操作执行模块530具体用于:

在匹配结果满足下述条件中的一项时,执行允许所述应用进程启动的操作:

所述第一用户标识与所述第二用户标识相同;

所述组件名称属于预设白名单;

所述应用包名属于预设白名单;

注册为广播接收者的应用进程对应的应用程序的自启动开关处于开启状态。

可选的,操作执行模块530具体用于:

在匹配结果同时满足下述条件时,执行禁止所述应用进程启动的操作:

所述第一用户标识与所述第二用户标识不相同;

所述组件名称不属于预设白名单;

所述应用包名不属于预设白名单;

注册为广播接收者的应用进程对应的应用程序的自启动开关处于关闭状态。

可选的,还包括:

广播结束模块,用于在禁止所述应用进程启动时,结束所述应用进程对应的所述广播。

可选的,还包括:

拦截记录生成模块,用于在禁止所述应用进程启动时,关联存储所述调用者与所述应用程序生成拦截记录,向用户展示所述拦截记录。

可选的,还包括:

内置应用判断模块,用于在根据所述应用信息及自启动权限匹配预设自启动控制策略之前,判断所述应用程序是否为系统内置应用;若是,则执行允许所述广播对应的应用进程启动的操作;否则,执行根据所述应用信息及自启动权限匹配预设自启动控制策略。

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种以广播方式启动应用的控制方法,该方法包括:

获取调用者信息、注册为广播接收者的应用进程的应用信息及所述应用进程对应的应用程序的自启动权限;

在以广播方式启动应用进程的管控事件被触发时,若调用者为系统进程,则根据所述应用信息及自启动权限匹配预设自启动控制策略,其中,预设自启动策略的制定方式是对用户样本的历史使用习惯进行统计或学习;

根据匹配结果允许或禁止所述应用进程启动。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如dram、ddrram、sram、edoram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的以广播方式启动应用的控制操作,还可以执行本申请任意实施例所提供的以广播方式启动应用的控制方法中的相关操作。

本申请实施例提供了一种终端,该终端内具有操作系统,也可以称为智能终端,该智能终端中可集成本申请实施例提供的以广播方式启动应用的控制装置。其中,智能终端包括智能手机、平板电脑、掌上游戏机、笔记本电脑及智能穿戴设备(包括智能手表、智能眼镜或智能手环)等。图6为本申请实施例提供的一种终端的结构框图。如图6所示,该终端(又可称为智能终端)可以包括:存储器610和处理器620。所述存储器610,用于存储计算机程序及预设白名单;所述处理器620读取并执行所述存储器610中存储的计算机程序。所述处理器620在执行所述计算机程序时实现以下步骤:获取调用者信息、注册为广播接收者的应用进程的应用信息及所述应用进程对应的应用程序的自启动权限;在以广播方式启动应用进程的管控事件被触发时,若调用者为系统进程,则根据所述应用信息及自启动权限匹配预设自启动控制策略,其中,预设自启动策略的制定方式是对用户样本的历史使用习惯进行统计或学习;根据匹配结果允许或禁止所述应用进程启动。

上述示例中列举的存储器及处理器均为智能终端的部分元器件,所述智能终端还可以包括其它元器件。以移动终端为例,说明上述智能终端可能的结构。图7是本申请实施例提供的一种移动终端的结构示意图。如图7所示,该移动终端可以包括:存储器701、中央处理器(centralprocessingunit,cpu)702(又称处理器,以下简称cpu)、外设接口703、rf(radiofrequency,射频)电路705、音频电路706、扬声器711、电源管理芯片708、输入/输出(i/o)子系统709、其他输入/控制设备710以及外部端口704,这些部件通过一个或多个通信总线或信号线707来通信。

应该理解的是,图示移动终端700仅仅是移动终端的一个范例,并且移动终端700可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。

下面就本实施例提供的集成有以广播方式启动应用的控制装置的移动终端进行详细的描述,该移动终端以手机为例。

存储器701,所述存储器701可以被cpu702、外设接口703等访问,所述存储器701可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。在存储器701中存储计算机程序,还可以存储应用程序的自启动开关状态表及预设白名单等。

外设接口703,所述外设接口703可以将设备的输入和输出外设连接到cpu702和存储器701。

i/o子系统709,所述i/o子系统709可以将设备上的输入输出外设,例如触摸屏712和其他输入/控制设备710,连接到外设接口703。i/o子系统709可以包括显示控制器7091和用于控制其他输入/控制设备710的一个或多个输入控制器7092。其中,一个或多个输入控制器7092从其他输入/控制设备710接收电信号或者向其他输入/控制设备710发送电信号,其他输入/控制设备710可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器7092可以与以下任一个连接:键盘、红外端口、usb接口以及诸如鼠标的指示设备。

触摸屏712,所述触摸屏712是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。

i/o子系统709中的显示控制器7091从触摸屏712接收电信号或者向触摸屏712发送电信号。触摸屏712检测触摸屏上的接触,显示控制器7091将检测到的接触转换为与显示在触摸屏712上的用户界面对象的交互,即实现人机交互,显示在触摸屏712上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。

rf电路705,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,rf电路705接收并发送rf信号,rf信号也称为电磁信号,rf电路705将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。rf电路705可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、rf收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、codec(coder-decoder,编译码器)芯片组、用户标识模块(subscriberidentitymodule,sim)等等。

音频电路706,主要用于从外设接口703接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器711。

扬声器711,用于将手机通过rf电路705从无线网络接收的语音信号,还原为声音并向用户播放该声音。

电源管理芯片708,用于为cpu702、i/o子系统及外设接口所连接的硬件进行供电及电源管理。

本申请实施例提供的智能终端,可以有效的管控以广播方式自启动应用程序的操作,减少流氓应用程序通过广播方式实现自己的进程常驻的情况发生,从而,减少使用终端资源的应用,提高处理速度,同时降低了终端功耗,提高终端的续航时间。

上述实施例中提供的以广播方式启动应用的控制装置、存储介质及移动终端可执行本申请任意实施例所提供的以广播方式启动应用的控制方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的以广播方式启动应用的控制方法。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1