本发明实施例涉及广播机制技术领域,尤其涉及一种广播的控制方法、装置及移动终端。
背景技术:
在Android系统中,广播是一种广泛运用在应用程序之间传输信息的机制。Android系统通过发出广播消息,来通知各应用组件一些系统事件,如地域变换、电量不足、来电信息等,这些消息通常称为系统广播消息。第三方应用也可以发送广播消息,这些消息称为自定义广播消息。
然而,随着技术的发展,出现了一些非法应用,为达到某种非法目的,非法应用经常在后台通过接收各种各样的广播以实现自启动。由于非法应用对广播的接收需要占用广播队列,使其他应用对广播的相应滞后,影响其他程序对广播消息的响应时间。此外,非法程序在后台启动会造成系统电量消耗和资源消耗。
技术实现要素:
本发明提供一种广播的控制方法、装置及移动终端,可以降低系统耗电,提高资源利用率。
第一方面,本发明实施例提供了一种广播的控制方法,该方法包括:
获取第一应用注册接收的广播数量;
判断所述广播数量是否大于第一阈值;
如果所述广播数量大于第一阈值,则将所述第一应用确定为非法注册广播应用;
获取目标广播的接收者队列;
根据确定的所述非法注册广播应用对所述接收者队列进行优化。
第二方面,本发明实施例还提供了一种广播的控制装置,该装置包括:
注册接收的广播数量获取模块,用于获取第一应用注册接收的广播数量;
非法注册广播应用确定模块,用于判断所述广播数量是否大于第一阈值;如果所述广播数量大于第一阈值,则将所述第一应用确定为非法注册广播应用;
接收者队列获取模块,用于获取目标广播的接收者队列;
接收者队列优化模块,用于根据确定的所述非法注册广播应用对所述接收者队列进行优化。
第三方面,本发明实施例还提供了一种移动终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取第一应用注册接收的广播数量;
判断所述广播数量是否大于第一阈值;
如果所述广播数量大于第一阈值,则将所述第一应用确定为非法注册广播应用;
获取目标广播的接收者队列;
根据确定的所述非法注册广播应用对所述接收者队列进行优化。
本发明实施例通过对于应用注册接收的广播的数量与某一特定值相比较,当大于这一特定值时,则确定该应用为非法注册广播应用,当非法注册广播应用在某一广播接收者队列中时,对该广播接收者队列进行优化,本发明实施例的技术方案可以解决非法程序接收到广播消息在后台启动会造成系统电量消耗和资源消耗问题,可以实现降低系统耗电,提高资源利用率的效果。
附图说明
图1是本发明实施例提供的一种广播的控制方法的流程图;
图2是本发明实施例提供的一种广播的控制方法的流程图;
图3是本发明实施例提供的一种广播的控制方法的流程图;
图4是本发明实施例提供的一种广播的控制装置的结构示意图;
图5为本发明实施例提供的一种移动终端的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例提供的一种广播的控制方法的流程图,本实施例可适用非法注册广播应用接收已注册接收的广播消息自启动的情况,该方法可以由本发明实施例所提供的广播的控制装置来执行,该装置可以由软件和/或硬件的方式来实现,并可集成于移动终端中。
如图1所示,所述广播的控制方法包括:
S110、获取第一应用注册接收的广播数量。
由于广播机制是一种消息订阅/发布机制,因此,使用广播这种消息驱动模型的第一步便是订阅消息,而订阅广播可以是对应用的广播接收器进行注册接收。这样,在广播消息发出时,可以通过注册接收的广播接收器将广播消息发送到已订阅该广播消息的应用,以实现对应用程序的控制作用。其中,可以实现应用程序的自启动、数据存储以及自行关闭等控制。
第一应用可以是系统应用程序,也可以是第三方应用程序,由于本发明实施例所提供的技术方案主要是针对非法注册广播应用,所以主要是指第三方应用程序。
第一应用注册接收的广播数量即为第一应用注册接收广播的总数目,例如,第一应用注册接收开机广播、关机广播、音量调节广播,蜂窝网络切换至无限局域网的广播、无限局域网切换至蜂窝网络的广播以及屏幕亮度调节的广播等等。除此之外,由于第三方应用程序也能够发布广播消息,所以广播还可以包括由系统应用程序和第三方应用程序发出的广播消息。示例性的,如某输入法因为可能在很多应用中都能够用到,所以其注册接收的广播数量可以是150个,而某浏览器注册接收的广播数量可能只有75个。
第一应用注册接收的广播数量可以保存在该应用的广播接收器当中,也可以将每一应用注册接收的广播数量存储在系统广播管理模块当中。这样,在需要获取应用注册接收的广播数量时,可以直接进行数据的调用。
S120、判断广播数量是否大于第一阈值。
其中,第一阈值可以是在设备出厂前设置好的,也可以是在设备使用过程中根据各个应用程序注册接收广播数量的大数据统计出来的一个标准值。例如,根据统计,得到一般应用接收的广播数量为100,则第一阈值可以设置为125。
在获取到应用程序注册接收的广播数量之后,判断其与第一阈值的大小关系,判断方式可以通过比较器来实现。
S130、如果广播数量大于第一阈值,则将第一应用确定为非法注册广播应用。
其中,非法注册广播应用可以是在系统广播管理模块中注册接收较多数量的广播,一旦有其注册接收的广播消息发布,就可以在接收到广播消息之后自启动。非法注册广播应用的自启动不仅消耗系统内存和能源,同时其在注册接收广播消息之后,还会占用广播消息发送的线程,使得其他应用程序响应广播消息的速度变慢,同时还可能导致广播消息发送的线程拥堵的情况。
例如,当某应用注册接收的广播数量为160,将第一阈值设置为125,则这一应用的注册接收的广播数量明显大于一般应用的数量,可以将这一应用确定为非法注册广播应用。
S140、获取目标广播的接收者队列。
其中,目标广播可以是任意广播。目标广播接收者队列可以在系统广播管理模块中获取。目标广播接收者队列中,包含了所有对于这一目标广播进行注册接收的应用名单。
例如,在ActivityManagerService(活动管理器服务)中,包含了各种广播消息。所有应用程序将广播接收器注册到ActivityManagerService中,订阅程序感兴趣的广播之后,当系统或者某应用程序需要发布广播时,广播的发送者同样是把广播发送到ActivityManagerService中,由ActivityManagerService去查找广播的接收者队列中这个广播的接收者,然后把广播分发给注册接收这个广播的接收者。
S150、根据确定的非法注册广播应用对接收者队列进行优化。
由于广播接收者是以队列形式存在线程当中,所以在接收者队列中,如果存在非法注册广播应用且非法注册广播应用在线程中位置靠前,就会导致其他应用获取广播消息并做出响应的速度受到影响。因此,在获取到接收者队列后,可以判断接收者队列是否含有非法注册广播应用,当含有非法注册广播应用时,可以对接收者队列进行优化,优化的方式包括调整接收者队列的顺序,将接收者队列中包含的非法注册广播应用的接收顺序向后顺延,这样设置的好处是可以使其他应用接收和响应广播消息的速度增快,避免接收者队列中存在一个或者多个非法注册广播应用影响其他应用接收和响应广播消息的速度。优化方式还可以是在接收者队列中,将非法注册广播应用在接收者队列中删除,使其不能够接收到广播消息并自启动或者实现其他功能,这样设置的好处是可以避免非法注册广播应用对线程资源的占用,并能够解决非法注册广播应用进行自启动或做出其他响应占用系统资源和耗费能源的问题。
本实施例的技术方案,通过对于应用注册接收的广播数量与某一特定值相比较,当大于这一特定值时,则认为该应用为非法注册广播应用,当非法注册广播应用在某一广播接收者队列中时,对该广播接收者队列进行优化,解决非法程序接收到广播消息在后台启动会造成系统电量消耗和资源消耗问题,可以实现降低系统耗电,提高资源利用率的效果。
图2是本发明实施例提供的一种广播的控制方法的流程图。
如图2所示,所述广播的控制方法包括:
S210、获取第一应用注册接收的广播数量。
S220、判断广播数量是否大于第一阈值。
S230、如果广播数量大于第一阈值,则将第一应用确定为非法注册广播应用。
S240、获取目标广播的接收者队列。
S250、判断接收者队列中接收者的数量是否大于第二阈值。
接收者队列的数量就是对于目标广播注册接收应用的数量,例如对于关机广播,注册接收的应用的数量是135个,则在关机这一广播消息发布后,接收者队列中接收者的数量就是135个。
对于接收者数量设定的第二阈值,可以是根据广播消息发布后所有接收者全部接收和/或响应广播消息的时间进行数据统计和计算得到的。例如,当接收者队列中接收者数量为50个时,所有接收者接收和/或响应广播的时间为50ms,当接收者队列中接收者数量为100个时,所有接收者接收和/或响应广播的时间为100ms,而在时间超过100ms时,用户会明显感受到系统运行速度变慢,所以,则可以将第二阈值设置为100。
S260、如果接收者队列中接收者的数量大于第二阈值,则根据确定的非法注册广播应用对接收者队列进行优化。
结合上述示例,当接收者队列中接收者的数量大于第二阈值,即大于100时,则根据确定的非法注册广播应用对接收者队列进行优化。优化方式可以为上述技术方案的将接收者队列重新排序或者将非法注册广播应用在接收者队列中删除。其中,将接收者队列重新排序的方式具体可以是:将非法注册广播应用在接收者队列中后置,以及将前台应用程序在接收者队列中前置。
例如,第二阈值设置为100,当接收者队列中接收者数量为120时,在判断接收者数量超过第二阈值之后,获取接收者队列中非法注册广播应用有25个,则对接收者队列进行优化,优化之后接收者队列中其他应用程序就可以正常接收和/或响应广播消息。
在上述技术方案的基础上,本技术方案提供了对接收者队列中接收者数量进行判断,并根据判断结果对接收者队列进行合理优化,可以更加有效的进行广播接收者队列的优化。值得说明的是,如果接收者队列中接收者数量不大于第二阈值时,则可以选择对接收者队列进行优化和不优化,本技术方案不对其做限定。
在上述各个方案的基础上,优选的,根据确定的非法注册广播应用对接收者队列进行优化包括:在所述接收者队列中删除确定的非法注册广播应用。这样设置可以解决非法程序接收到广播消息在后台启动会造成系统电量消耗和资源消耗问题,可以实现降低系统耗电,提高资源利用率的效果。
在上述各个方案的基础上,优选的,根据确定的非法注册广播应用对接收者队列进行优化包括:在所述接收者队列中删除与所述非法注册广播应用存在数据交互的关联应用。
其中,与所述非法注册广播应用存在数据交互的关联应用,可以是其他应用程序,例如某应用程序A由于注册接收广播种类的数量超出了第一阈值,被确定为非法注册广播应用,这一应用程序A在后台运行时与另一应用程序B存在数据交互,在接收者队列中如果存在应用程序B,则将应用程序B在接收者队列中删除。
此技术方案在上述各个技术方案的基础上,对根据确定的非法注册广播应用对接收者队列进行优化进行了进一步的优化,这样设置的好处是可以大幅度节省接收者队列所在线程的空间,提高系统运行速度,同时还可以实现降低系统耗电,提高资源利用率的效果。
图3是本发明实施例提供的一种广播的控制方法的流程图。
如图3所示,所述广播的控制方法包括:
S310、获取第一应用注册接收的广播数量。
S320、判断广播数量是否大于第一阈值。
S330、如果广播数量大于第一阈值,则将第一应用确定为非法注册广播应用。
S340、获取目标广播的接收者队列。
S350、判断目标广播的接收者队列中非法注册广播应用是否在预设应用列表中。若是则执行S360,若否则执行S370。
其中,预设应用列表可以是在出厂前或者在用户使用过程中设置的应用列表,预设应用列表中,可以是经过系统认证或者根据用户的使用习惯确定的安全注册广播应用。例如某输入法、某浏览器以及某图片查看应用等。
因为非法注册广播应用是根据应用注册接收的广播数量来确定的,当应用注册接收的广播数量超过第一阈值时,则将该应用定义为非法注册广播应用。所以,在非法注册广播应用的确定过程中,很有可能把安全的经常用到的广播应用定义为非法广播应用。预设应用列表的设置就可以避免将安全的,而又注册接收较多广播应用作为非法注册广播应用来处理。
S360、在接收者队列中保留非法注册广播应用。
当判断目标广播的接收者队列中非法注册广播应用在预设应用列表中时,则保留所述非法注册广播应用。示例性的,由于某输入法为经常用到的应用程序,而该输入法注册接收的广播数量可能是150种,超过了第一阈值125种,则将其定义为非法注册广播应用。而该输入法又在预设应用列表中,在对所述接收者队列进行优化的过程中,保留该输入法。
S370、根据确定的所述非法注册广播应用对所述接收者队列进行优化。
此技术方案在上述各个技术方案的基础上,提供了一种对于安全应用在接收者队列中进行保护的方法,避免了因安全应用注册接收广播数量过多,而使其被作为非法注册广播应用处理,从而导致设备无法正常使用的问题。
在上述各个技术方案的基础上,优选的,向服务器发送所述第一应用的注册接收的广播数量,以便所述服务器根据至少一个第一应用的注册接收的广播数量确定所述第一阈值。这样设置的好处是可以利用服务器的大数据计算方法使计算结果更为准确,同时能够减少设备自身的运算负担,提高移动终端设备运行速度。
图4是本发明实施例四提供的一种广播的控制装置的结构示意图。如图4所示,所述广播的控制装置,包括:
注册接收的广播数量获取模块410,用于获取第一应用注册接收的广播数量;
非法注册广播应用确定模块420,用于判断所述广播数量是否大于第一阈值;如果所述广播数量大于第一阈值,则将所述第一应用确定为非法注册广播应用;
接收者队列获取模块430,用于获取目标广播的接收者队列;
接收者队列优化模块440,用于根据确定的所述非法注册广播应用对所述接收者队列进行优化。
本实施例的技术方案,通过对于应用注册接收的广播数量与某一特定值相比较,当大于这一特定值时,则认为该应用为非法注册广播应用,当非法注册广播应用在某一广播接收者队列中时,对该广播接收者队列进行优化,解决非法程序接收到广播消息在后台启动会造成系统电量消耗和资源消耗问题,可以实现降低系统耗电,提高资源利用率的效果。
在上述各实施例的基础上,所述接收者队列优化模块440包括:
接收者数量判断单元,用于判断所述接收者队列中接收者的数量是否大于第二阈值;
接收者队列优化单元,用于如果所述接收者队列中接收者的数量大于第二阈值,则根据确定的所述非法注册广播应用对所述接收者队列进行优化。
在上述各实施例的基础上,所述接收者队列优化模块440包括:
非法注册广播应用删除单元,用于在所述接收者队列中删除确定的所述非法注册广播应用。
在上述各实施例的基础上,所述接收者队列优化模块440包括:
关联应用删除单元,用于在所述接收者队列中删除与所述非法注册广播应用存在数据交互的关联应用。
在上述各实施例的基础上,所述接收者队列优化模块440包括:
预设应用保留单元,用于若所述非法注册广播应用在预设应用列表中,则在所述接收者队列中保留所述非法注册广播应用。
在上述各实施例的基础上,所述装置还包括:
第一阈值确定模块,用于向服务器发送所述第一应用的注册接收的广播数量,以便所述服务器根据至少一个第一应用的注册接收的广播数量确定所述第一阈值。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
图5是本发明实施例提供的一种移动终端的结构示意图,如图5所示,该移动终端可以包括:壳体(图中未示出)、存储器801、中央处理器(Central Processing Unit,CPU)802(又称处理器,以下简称CPU)、存储在存储器801上并可在处理器802上运行的计算机程序、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述CPU802和所述存储器801设置在所述电路板上;所述电源电路,用于为所述移动终端的各个电路或器件供电;所述存储器801,用于存储可执行程序代码;所述CPU802通过读取所述存储器801中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:获取第一应用注册接收的广播数量;判断所述广播数量是否大于第一阈值;如果所述广播数量大于第一阈值,则将所述第一应用确定为非法注册广播应用;获取目标广播的接收者队列;根据确定的所述非法注册广播应用对所述接收者队列进行优化。
所述移动终端还包括:外设接口803、RF(Radio Frequency,射频)电路805、音频电路806、扬声器811、电源管理芯片808、输入/输出(I/O)子系统809、触摸屏812、其他输入/控制设备810以及外部端口804,这些部件通过一个或多个通信总线或信号线807来通信。
应该理解的是,图示移动终端800仅仅是移动终端的一个范例,并且移动终端800可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
下面就本实施例提供的用于实现广播控制功能的移动终端进行详细的描述,该移动终端以手机为例。
存储器801,所述存储器801可以被CPU802、外设接口803等访问,所述存储器801可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
外设接口803,所述外设接口803可以将设备的输入和输出外设连接到CPU802和存储器801。
I/O子系统809,所述I/O子系统809可以将设备上的输入输出外设,例如触摸屏812和其他输入/控制设备810,连接到外设接口803。I/O子系统809可以包括显示控制器8091和用于控制其他输入/控制设备810的一个或多个输入控制器8092。其中,一个或多个输入控制器8092从其他输入/控制设备810接收电信号或者向其他输入/控制设备810发送电信号,其他输入/控制设备810可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器8092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。
其中,按照触摸屏的工作原理和传输信息的介质分类,触摸屏812可以为电阻式、电容感应式、红外线式或表面声波式。按照安装方式分类,触摸屏812可以为:外挂式、内置式或整体式。按照技术原理分类,触摸屏812可以为:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏或表面声波技术触摸屏。
触摸屏812,所述触摸屏812是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。可选的,触摸屏812将用户在触屏幕上触发的电信号(如接触面的电信号),发送给处理器802。
I/O子系统809中的显示控制器8091从触摸屏812接收电信号或者向触摸屏812发送电信号。触摸屏812检测触摸屏上的接触,显示控制器8091将检测到的接触转换为与显示在触摸屏812上的用户界面对象的交互,即实现人机交互,显示在触摸屏812上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
RF电路805,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。
音频电路806,主要用于从外设接口803接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器811。
扬声器811,用于将手机通过RF电路805从无线网络接收的语音信号,还原为声音并向用户播放该声音。
电源管理芯片808,用于为CPU802、I/O子系统及外设接口所连接的硬件进行供电及电源管理。
在本实施例中,中央处理器802用于:
获取第一应用注册接收的广播数量;
判断所述广播数量是否大于第一阈值;
如果所述广播数量大于第一阈值,则将所述第一应用确定为非法注册广播应用;
获取目标广播的接收者队列;
根据确定的所述非法注册广播应用对所述接收者队列进行优化。
进一步的,所述根据确定的所述非法注册广播应用对所述接收者队列进行优化,包括:
判断所述接收者队列中接收者的数量是否大于第二阈值;
如果所述接收者队列中接收者的数量大于第二阈值,则根据确定的所述非法注册广播应用对所述接收者队列进行优化。
进一步的,所述根据确定的所述非法注册广播应用对所述接收者队列进行优化,包括:
在所述接收者队列中删除确定的所述非法注册广播应用。
进一步的,所述根据确定的所述非法注册广播应用对所述接收者队列进行优化,包括:
在所述接收者队列中删除与所述非法注册广播应用存在数据交互的关联应用。
进一步的,所述根据确定的所述非法注册广播应用对所述接收者队列进行优化,包括:
若所述非法注册广播应用在预设应用列表中,则在所述接收者队列中保留所述非法注册广播应用。
进一步的,所述方法还包括:
向服务器发送所述第一应用的注册接收的广播数量,以便所述服务器根据至少一个第一应用的注册接收的广播数量确定所述第一阈值。
需要说明的是,移动终端还可以包括摄像头、蓝牙模块等,在此不再赘述。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。