一种广播消息的管理方法及装置与流程

文档序号:13914558阅读:193来源:国知局

本发明涉及通信技术领域,尤其涉及一种广播消息的管理方法及装置。



背景技术:

广播(英文:broadcast)是一种广泛运用于安卓(英文:android)操作系统的应用程序内或者应用程序之间的信息传输机制。在android操作系统中,活动管理服务(英文:activitymanagerservice,ams)接收到某个广播消息之后,将该广播消息存储在ams中的广播队列,调度该广播消息时将该广播消息从广播队列中读出并广播该广播消息。当某个广播消息的处理时间较长时,将导致广播队列中后续其他广播消息处理的延时,造成接收后续其他广播消息的应用程序消息接收延迟或者运行卡顿。

现有技术采用一对广播队列,其中一个广播队列用于存储前台应用程序产生的广播消息,另外一个广播队列用于存储后台应用程序产生的广播消息。通过将前后台应用程序的广播消息进行分开存储,缓解后台应用程序的广播消息的处理对前台应用程序的广播消息的处理的影响,缓解前台应用程序运行卡顿的现象。然而,现有技术仅是区分前台应用程序和后台应用程序,无法对前台应用程序包含的各个类型的应用程序进行区分,也无法对后台应用程序包含的各个类型的应用程序进行区分。同为前台应用程序的不同应用程序产生的广播消息无法进行区别处理,或者同为后台应用程序的不同应用程序产生的广播消息无法进行区别处理,依然无法保障重要应用程序的广播消息的即时处理,无法避免重要应用程序消息接收延迟或者运行卡顿,适用性低。



技术实现要素:

本申请提供一种广播消息的管理方法及装置,可提高广播消息的处理效率,提高广播消息的管理的适用性,增强终端的用户体验。

第一方面提供了一种广播消息的管理方法,所述方法用于管理终端的前台应用程序发送的广播消息或者用于管理终端的后台应用程序发送的广播消息,其可包括:接收目标应用程序发送的广播消息;确定目标应用程序的用户体验保障优先级,并从预置的至少2个广播队列中确定出目标应用程序的用户体验保障优先级对应的目标广播队列,其中,所述至少2个广播队列中每个广播队列对应一个广播消息调度优先级;将所述广播消息存储至所述目标广播队列中;当接收到广播消息调度请求时,根据目标广播队列对应的目标广播消息调度优先级调度目标广播队列中存储的所述广播消息。

本申请可接收到广播消息时可根据发送广播消息的目标应用程序的用户体验保障优先级将广播消息存储至目标广播队列,其中,目标广播队列还对应一个广播消息调度优先级。广播消息调度时还可根据广播消息调度优先级进行广播消息的调度处理。本申请通过对广播消息按照应用程序的用户体验保障优先级进行分类存储,提高广播消息的存储的可控性。通过对广播消息存储的广播队列设置广播消息调度优先级,提高广播消息的调度优先级的可控性,进而提高了广播消息的处理效率,增强了应用程序的用户体验。本申请提供的目标应用程序可为后台应用程序也可为前台应用程序,即本申请提供的方法可用于前台应用程序的广播消息的管理,也可用后台应用程序的广播消息的管理,操作灵活,提高了广播消息的管理的适用性。

本申请中提供的用户体验保障优先级用于指示应用程序对用户体验的影响程度,对用户体验的影响程度越高,用户保障优先级越高。具体的,用户体验保障优先级可由应用程序的使用频率,或者应用程序的响应延迟给用户带来的体验影响程度确定。例如,应用程序的使用频率越高,则该应用程序的用户体验保障优先级越高;或者应用程序的广播消息的响应延迟给用户带来的不便越严重,则该应用程序的用户体验保障优先级越高,等。

结合第一方面,在第一种可能的实现方式中,接收目标应用程序发送的广播消息之前,还可将终端的应用程序按照各个应用程序的用户体验保障优先级划分为至少两种用户体验保障优先级的应用程序,所述至少两种用户体验保障优先级的应用程序中包括第一用户体验保障优先级的第一应用程序和第二用户体验保障优先级的第二应用程序,所述第一用户体验保障优先级高于所述第二用户体验保障优先级;进而可建立所述第一应用程序对应的第一广播队列,所述第二应用程序对应的第二广播队列,并设定所述第一广播队列的第一广播消息调度优先级,所述第二广播队列的第二广播消息调度优先级,所述第一广播消息调度优先级高于所述第二广播消息调度优先级;从预置的至少2个广播队列中确定出所述目标应用程序的用户体验保障优先级对应的目标广播队列时,若所述目标应用程序为第一应用程序,则将所述第一广播队列确定为目标广播队列;若所述目标应用程序为第二应用程序,则将所述第二广播队列确定为目标广播队列。

本申请可预先建立多个广播队列,每个广播队列用于存储一种类型的应用程序发送的广播消息,并且每个广播队列对应一个广播消息调度优先级,提高了广播消息存储的操作灵活性,提高了广播消息的调度的可控性和处理效率。

结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一应用程序包括所述终端的系统应用程序和预设应用程序;所述第一广播队列包括用于存储所述系统应用程序的广播消息的第一子队列和用于存储所述预设应用程序的广播消息的第二子队列;从预置的至少2个广播队列中确定出所述目标应用程序的用户体验保障优先级对应的目标广播队列时,若所述目标应用程序为所述终端的系统应用程序,则将所述第一广播队列的第一子队列确定为目标广播队列;若所述目标应用程序为所述预设应用程序,则将所述第一广播队列的第二子队列确定为目标广播队列。

本申请可对终端的系统应用程序或者预设应用程序的广播消息的调度优先级设置为高于其他应用程序的广播消息的调度优先级,可更好地保障系统运行顺畅,增强用户体验。此外,本申请可将系统应用程序和预设应用程序的广播消息进行分开存储,可更好地保障系统应用程序和预设应用程序的广播消息的调度竞争性,广播消息的调度操作更灵活,增强终端的用户体验。

结合第一方面第一种可能的实现方式,在第三种可能的实现方式中,所述至少两种用户体验保障优先级的应用程序中还包括第三用户体验保障优先级的第三应用程序;广播消息的管理过程中,若在预设时间阈值内接收到的指定应用程序的广播消息的数量大于预设数量阈值,则将所述指定应用程序确定为第三应用程序;进而可建立所述第三应用程序对应的第三广播队列,将所述第三广播队列确定为目标广播队列并将所述第三应用程序的广播消息存储至所述第三广播队列;并将所述第三广播队列中存储的广播消息的调度优先级设定为第三广播消息调度优先级;其中,所述第三广播消息调度优先级低于所述第二广播消息调度优先级。

本申请还可对预设时间阈值内发送广播消息的数量超过预期数量的异常应用程序进行单独创建广播队列,通过单独创建的广播队列来存储异常应用程序发送的广播消息,并将该广播队列的广播消息调度优先级设置为低于其他广播队列的广播消息调度优先级,减少调度资源的竞争,可避免异常应用程序发送的大量广播消息影响其他应用程序发的广播消息的处理,增强终端的用户体验。

结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,广播消息的管理过程中,若所述第三广播队列中存储的广播消息被调度执行完,并且检测到所述指定应用程序退出运行,则删除所述第三广播队列。

本申请可在异常应用程序的广播消息处理结束并且异常应用程序退出之后将存储该异常应用程序的广播消息的队列删除,可节省终端的存储空间。

结合第一方面第二种可能的实现方式,在第五种可能的实现方式中,所述广播消息中还携带所述广播消息的消息类型标识;所述目标广播队列包含至少两个广播消息链表,所述至少两个广播消息链表中包含用于存储第一消息类型的广播消息的第一链表,和用于存储第二消息类型的广播消息的第二链表;将所述广播消息存储至所述目标广播队列中时可根据所述广播消息的消息类型标识确定所述广播消息的类型;若所述广播消息的类型为第一消息类型,则将所述广播消息存储至所述第一链表;若所述广播消息的类型为第二消息类型,则将所述广播消息存储至所述第二链表。

本申请可根据广播消息的消息类型设置广播队列中的不同链接,以将不同消息类型的广播消息存储至相应的广播消息链接中,适应了广播消息的类型特点,提高了广播消息的管理方法的适用性。

结合第一方面第三种可能的实现方式,在第六种可能的实现方式中,所述第三广播队列包含至少两个广播消息链表,所述至少两个广播消息链表中包含用于存储第三消息类型的广播消息的第三链表,和用于存储第四消息类型的广播消息的第四链表;广播消息的管理过程中可根据所述第三应用程序发送的指定广播消息中携带的消息类型标识确定所述指定广播消息的类型;若所述指定广播消息的类型为第三消息类型,则将所述指定广播消息存储至第三链表;若所述指定广播消息的类型为第四消息类型,将所述指定广播消息存储至第四链表。

本申请可根据广播消息的消息类型设置广播队列中的不同链接,以将不同消息类型的广播消息存储至相应的广播消息链接中,适应了广播消息的类型特点,提高了广播消息的管理方法的适用性。

第二方面提供了一种广播消息的管理装置,所述管理装置用于管理终端的前台应用程序发送的广播消息或者用于管理终端的后台应用程序发送的广播消息,其可包括:接收模块、确定模块、存储模块和调度模块;接收模块接收目标应用程序发送的广播消息;确定模块确定接收模块接收到广播消息对应的所述目标应用程序的用户体验保障优先级,并从预置的至少2个广播队列中确定出所述目标应用程序的用户体验保障优先级对应的目标广播队列,其中,所述至少2个广播队列中每个广播队列对应一个广播消息调度优先级;存储模块将所述接收模块接收的所述广播消息存储至所述确定模块确定的所述目标广播队列中;调度模块在接收到广播消息调度请求时,根据所述目标广播队列对应的目标广播消息调度优先级调度所述存储模块存储在所述目标广播队列中的所述广播消息。

结合第二方面,在第一种可能的实现方式中,所述管理装置还包括:分类模块和设置模块;分类模块将终端的应用程序按照各个应用程序的用户体验保障优先级划分为至少两种用户体验保障优先级的应用程序,所述至少两种用户体验保障优先级的应用程序中包括第一用户体验保障优先级的第一应用程序和第二用户体验保障优先级的第二应用程序,所述第一用户体验保障优先级高于所述第二用户体验保障优先级;设置模块建立所述分类模块划分得到的所述第一应用程序对应的第一广播队列,所述第二应用程序对应的第二广播队列,并设定所述第一广播队列的第一广播消息调度优先级,所述第二广播队列的第二广播消息调度优先级,所述第一广播消息调度优先级高于所述第二广播消息调度优先级;所述确定模块在确定所述目标应用程序为第一应用程序时,将所述第一广播队列确定为目标广播队列,在确定所述目标应用程序为第二应用程序时,将所述第二广播队列确定为目标广播队列。

结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一应用程序包括所述终端的系统应用程序和预设应用程序;所述第一广播队列包括用于存储所述系统应用程序的广播消息的第一子队列和用于存储所述预设应用程序的广播消息的第二子队列;确定模块在确定所述目标应用程序为所述终端的系统应用程序时,将所述第一广播队列的第一子队列确定为目标广播队列,在确定所述目标应用程序为所述预设应用程序时,将所述第一广播队列的第二子队列确定为目标广播队列。

结合第二方面第一种可能的实现方式,在第三种可能的实现方式中,所述至少两种用户体验保障优先级的应用程序中还包括第三用户体验保障优先级的第三应用程序;确定模块在预设时间阈值内接收到的指定应用程序的广播消息的数量大于预设数量阈值时,将所述指定应用程序确定为第三应用程序;设置模块建立所述确定模块确定的所述第三应用程序对应的第三广播队列,将所述第三广播队列确定为目标广播队列并通过所述存储模块将所述第三应用程序的广播消息存储至所述第三广播队列,将所述第三广播队列中存储的广播消息的调度优先级设定为第三广播消息调度优先级;其中,所述第三广播消息调度优先级低于所述第二广播消息调度优先级。

结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,所述设置模块还可在所述调度模块调度执行完所述第三广播队列中存储的广播消息,并且检测到所述指定应用程序退出运行时,删除所述第三广播队列。

第三方面提供了一种终端,其可包括:存储器和处理器;所述存储器用于存储一种程序代码;所述处理器用于调用所述存储器中存储的程序代码执行如下操作:

接收目标应用程序发送的广播消息;确定所述目标应用程序的用户体验保障优先级,并从预置的至少2个广播队列中确定出所述目标应用程序的用户体验保障优先级对应的目标广播队列,其中,所述至少2个广播队列中每个广播队列对应一个广播消息调度优先级;将所述广播消息存储至所述目标广播队列中;当接收到广播消息调度请求时,根据所述目标广播队列对应的目标广播消息调度优先级调度所述目标广播队列中存储的所述广播消息。

结合第三方面,在第一种可能的实现方式中,所述处理器还可将终端的应用程序按照各个应用程序的用户体验保障优先级划分为至少两种用户体验保障优先级的应用程序,包括第一用户体验保障优先级的第一应用程序和第二用户体验保障优先级的第二应用程序,所述第一用户体验保障优先级高于所述第二用户体验保障优先级;建立所述第一应用程序对应的第一广播队列,所述第二应用程序对应的第二广播队列,并设定所述第一广播队列的第一广播消息调度优先级,所述第二广播队列的第二广播消息调度优先级,所述第一广播消息调度优先级高于所述第二广播消息调度优先级;在所述目标应用程序为第一应用程序时,将所述第一广播队列确定为目标广播队列;在所述目标应用程序为第二应用程序时,将所述第二广播队列确定为目标广播队列。

结合第三方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一应用程序包括所述终端的系统应用程序和预设应用程序;所述第一广播队列包括用于存储所述系统应用程序的广播消息的第一子队列和用于存储所述预设应用程序的广播消息的第二子队列;若所述目标应用程序为所述终端的系统应用程序,处理器则将所述第一广播队列的第一子队列确定为目标广播队列,若所述目标应用程序为所述预设应用程序,则将所述第一广播队列的第二子队列确定为目标广播队列。

结合第三方面第一种可能的实现方式,在第三种可能的实现方式中,所述至少两种用户体验保障优先级的应用程序中还包括第三用户体验保障优先级的第三应用程序;若在预设时间阈值内接收到的指定应用程序的广播消息的数量大于预设数量阈值,处理器则将所述指定应用程序确定为第三应用程序;处理器建立所述第三应用程序对应的第三广播队列,将所述第三广播队列确定为目标广播队列并将所述第三应用程序的广播消息存储至所述第三广播队列;进而将所述第三广播队列中存储的广播消息的调度优先级设定为第三广播消息调度优先级;其中,所述第三广播消息调度优先级低于所述第二广播消息调度优先级。

结合第三方面第三种可能的实现方式,在第四种可能的实现方式中,处理器还可在所述第三广播队列中存储的广播消息被调度执行完,并且检测到所述指定应用程序退出运行时,删除所述第三广播队列。

本申请可接收到广播消息时可根据发送广播消息的目标应用程序的用户体验保障优先级将广播消息存储至目标广播队列,其中,目标广播队列还对应一个广播消息调度优先级。广播消息调度时还可根据广播消息调度优先级进行广播消息的调度处理。本申请通过对广播消息按照应用程序的用户体验保障优先级进行分类存储,提高广播消息的存储的可控性。通过对广播消息存储的广播队列设置广播消息调度优先级,提高广播消息的调度优先级的可控性,进而提高了广播消息的处理效率,增强了应用程序的用户体验。本申请提供的目标应用程序可为后台应用程序也可为前台应用程序,即本申请提供的方法可用于前台应用程序的广播消息的管理,也可用后台应用程序的广播消息的管理,操作灵活,提高了广播消息的管理方法的适用性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例应用的终端设备的结构示意图;

图2是现有的广播消息的传输的交互示意图;

图3是本发明实施例提供的广播消息的管理方法的流程示意图;

图4是本发明实施例提供的广播队列的一示意图;

图5是本发明实施例提供的广播队列的另一示意图;

图6是本发明实施例提供的计算机系统的结构示意图;

图7是本发明实施例提供的广播消息的管理装置的一结构示意图;

图8是本发明实施例提供的广播消息的管理装置的另一结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的广播消息的管理方法主要应用于终端设备,该终端设备也可称之为用户设备(英文:userequipment,ue)、移动台(英文:mobilestation,ms)、移动终端(英文:mobileterminal)等。可选的,该终端设备(以下简称终端)可以具备经无线接入网(英文:radioaccessnetwork,ran)与一个或多个核心网进行通信的能力。例如,终端可以是移动电话(或称为“蜂窝”电话)、或具有移动性质的计算机等。例如,终端还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置。应理解的是,除了终端设备以外,本发明实施例提供的广播消息的管理方法也可以应用于其他类型的计算机系统。

请参考图1,为本发明实施例提供的终端设备的结构示意图。如图1所示,终端设备100包括存储器180、处理器150以及显示设备140。存储器180存储计算机程序(或称程序代码),该计算机程序包括操作系统程序182和应用程序181等。处理器150用于读取存储器180中的计算机程序,然后执行计算机程序定义的方法,例如处理器150读取操作系统程序182从而在该终端设备100上运行操作系统以及实现操作系统的各种功能,或读取一种或多种应用程序181,从而在该终端设备上运行应用或者进行应用程序的广播消息的处理等。

处理器150可以包括一个或多个处理器,例如,处理器150可以包括一个或多个中央处理器,或者包括一个或者多个中央处理器和一个或者多个应用处理器。当处理器150包括多个处理器时,这多个处理器可以集成在同一块芯片上,也可以各自为独立的芯片。一个处理器可以包括一个或多个处理器核(或称处理核),以下实施例均以多核为例来介绍,但是本发明实施例提供的广播消息的管理方法也可以应用于单核处理器,利用单核处理器的分时工作原理执行多个应用程序的并行运行。

另外,存储器180还存储有除计算机程序之外的其他数据183,其他数据183可包括操作系统182或应用程序181被运行后产生的数据等,该数据包括系统数据(例如操作系统的配置参数)和用户数据,例如各个应用程序产生的广播消息就是典型的用户数据。

存储器180一般包括内存和外存。内存可以为随机存储器(ram),只读存储器(rom),以及高速缓存(cache)等。外存可以为硬盘、光盘、usb盘、软盘或磁带机等。计算机程序通常被存储在外存上,处理器在执行处理前会将计算机程序从外存加载到内存。

操作系统程序182中包含了可实现本发明实施例提供的广播消息的管理方法的计算机程序,从而使得处理器150读取到该操作系统程序182并运行该操作系统后,该操作系统可具备本发明实施例提供的广播消息的管理功能。

终端设备100还可以包括输入设备130,用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与终端设备100的用户设置以及功能控制有关的信号输入等。具体地,本发明实施例中,该输入设备130可以包括触控面板131。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给该处理器150,并能接收处理器150发来的命令并加以执行。例如,用户在触控面板131上用手指双击一个应用程序的图标,触摸检测装置检测到此次双击带来的这个信号,然后将该信号传送给触摸控制器,触摸控制器再将这个信号转换成坐标发送给处理器150,处理器150根据该坐标和该信号的类型(如双击)执行启动该应用程序等操作,最后将该应用程序的操作界面显示在显示面板141上,从而实现“打开”应用程序。

触控面板131可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。除了触控面板131,输入设备130还可以包括其他输入设备132,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

终端设备100包括的显示设备140,包括显示面板141,用于显示由用户输入的信息或提供给用户的信息以及终端设备100的各种菜单界面等,在本发明实施例中主要用于显示应用程序的用户操作界面等信息。可选的,可以采用液晶显示器(英文:liquidcrystaldisplay,led)或有机发光二极管(英文:organiclight-emittingdiode,oled)等形式来配置显示面板141。在其他一些实施例中,触控面板131可覆盖显示面板141上,形成触摸显示屏。

除以上之外,终端设备100还可以包括用于给其他模块供电的电源190以及用于拍摄照片或视频的摄像头160。终端设备100还可以包括一个或多个传感器120,例如重力传感器、加速度传感器、光传感器等。终端设备100还可以包括无线射频(英文:radiofrequency,rf)电路110,用于与无线网络设备进行网络通信,还可以包括wifi模块170,用于与其他设备进行wifi通信等。

下面的实施例将以终端为执行主体对本发明实施例提供的广播消息的管理方法及装置进行描述。本发明实施例提供的广播消息的管理方法可以实现在图1所示的操作系统程序182中。

在android操作系统中,各个应用程序运行过程中会产生各种各样的广播消息。例如,终端中包含的用于监控电池的使用状态的应用程序在电池的使用过程中会发出广播消息,短信模块接收到信息也会产生一个广播消息等。应用程序的开发者也可监听应用程序运行过程中发出的广播消息,进而可根据广播消息作出程序逻辑的处理等操作。在广播这种信息传输机制中,广播消息可以被一个或者多个应用程序所接收,也可不被任何应用程序所接收。即,在广播这种信息传输机制中,广播消息的发送方并不关心接收方是否接收到数据,也不关心接收方是如何处理数据的。

在android操作系统中,广播消息的发送方发出的广播消息可预先存储在ams中,再由ams通知广播消息的监听对象(即广播消息的接收方)来处理该广播消息。在ams中,广播消息可存储在ams中设置的队列(下面称广播队列)中,广播消息的入列(即消息存入队列中)和出列(即消息从队列中输出)由不同的进程触发,并且广播消息的入列和出列均需要使用ams锁。具体实现中,串行广播(也称有序广播)消息的处理需要按照串行广播消息入列的时序先后进行处理。并行广播(也称无序广播)消息从队列中调度可并行进行,具体调度优先级可由各个并行广播消息抢占得到ams锁的顺序确定,优先抢占得到ams锁的广播消息优先调度。当某个应用程序发出的串行广播消息(即广播消息的传输采用串行模式)的处理时间较长时,将导致广播队列中后续其他串行广播消息处理的延时,造成其他串行广播消息对应的应用程序的消息接收延迟或者运行卡顿。若应用程序发出的并行广播消息(即广播消息的传输采用并行模式)较多时,则将导致广播消息调度时各个并行广播消息抢占ams导致的ams锁竞争加剧,无法保证各个应用程序的处理时效,容易造成应用程序运行卡顿或者消息接收延迟。

现有技术采用一对全局的广播队列(包含两个广播队列),其中一个广播队列用于存储前台应用程序产生的广播消息,另外一个广播队列用于存储后台应用程序产生的广播消息。通过将前后台应用程序的广播消息进行分开存储,缓解后台应用程序的广播消息的处理对前台应用程序的广播消息的处理的影响,缓解前台应用程序运行卡顿的现象。参见图2,是现有的广播消息的传输的交互示意图。如图2,现有的广播消息的传输方案中,ams使用一对广播队列来存储广播消息。其中,上述广播队列对中包含一个用于存储前台应用程序的广播消息的广播队列(如图2中的广播队列1),和一个用于存储后台应用程序的广播消息的广播队列(如图2中的广播队列2)。其中,每个广播队列包含两个链表,其中一个链表(如图2中的链表11)用于存储有序广播消息(即串行广播消息),另外一个链表(如图2中的链表12)用于存储无序广播消息(即并行广播消息)。

在广播消息传输中,需要监听或者处理广播消息的应用程序(具体也可为进程,如图2中的进程1)需要提前注册一个广播接收器到ams中(如图2中的步骤1)。具体的,进程1可使用广播接收器的注册函数(如registerreceiver)来动态注册一个广播接收器到ams中,或者在androidmanifest.xml(即android应用程序中包含的清单文件)中静态注册一个广播接收器到ams中。ams会保存所有的广播接收器到一个成员变量(例如mreceiverresolver成员变量)中。发送广播消息的应用程序(具体也可表现为一个进程,如图2中的进程2)通过发送广播函数(如sendbroadcast)发送一个广播消息到ams(如图2中的步骤2)。ams首先通过查询mreceiverresolver成员变量,找出该广播消息对应的所有的接收者(即已经在asm中注册的所有广播接收器中包含的监听该广播消息的广播接收器),然后生成一个broadcastrecord(即广播记录)。进一步的,ams根据上述broadcastrecord中记录的该广播消息的接收方的类型和广播消息的类型将上述广播消息放入相应的广播队列链表中。其中,上述广播消息的接收方的类型包括前台应用程序(或者前台进程)或者后台应用程序(或者后台进程)等。上述广播消息的类型包括串行广播消息(即有序广播消息)或者并行广播消息(即无序广播消息)等。

ams将广播消息存入相应的广播队列链表之后,则可按照广播消息的调度时序,通过广播消息调度的线程(英文:handler)依次从串行广播消息的广播队列链表(即串行广播链表)中读取串行广播消息,或者通过广播消息调度的线程从并行广播消息的广播队列链表(即并行广播链表)中读取所有广播消息。进一步的,ams再使用binder等通信机制通知各个广播消息的接收方应用程序来进行广播消息的处理,具体的,ams可使用binder远程调用广播接收方在ams中已注册的广播接收处理函数(即onreceiver函数)来执行广播消息的处理(如图2中的步骤3)。

由上可知,现有的技术方案使用一对广播队列(只区分前后台应用程序),不区分应用程序的类型。当某个应用程序的广播消息(尤其是有序广播消息)过多或者某个广播消息的接收方的数量过多时,该广播消息的处理时间较长,这将导致系统卡顿及其他广播消息的处理延时等问题。例如,系统应用程序和其他所有应用程序共用一对广播消息队列,串行广播消息都存储在串行广播链表中,并行广播消息都存储在并行广播链表中。当后台应用程序发出的串行广播消息过多时,将可能造成串行广播链表过长从而导致ams需要较长的时间处理后台应用程序发出的广播消息,进而使得后台应用程序发出的广播消息的处理占用ams锁的时间较长,导致前台应用程序的广播消息因为抢占不到ams锁而得不到处理,容易引起前台应用程序运行卡顿等问题。进一步的,当前台应用程序或者后台应用程序发出的并行广播消息过多时,由于广播消息的入列管理进程或者广播消息的出列管理进程对并行广播链表进行访问需要持有ams锁,并行广播链表中存储的广播消息过多还将导致抢占ams锁的竞争加剧,容易引起应用程序运行卡顿等问题。

为了实现不同应用类型的应用程序发送的广播消息的区别处理,以保证系统应用程序或者关键应用程序的运行顺畅,本发明实施例提供了一种广播消息的管理方法及装置,可将前台应用程序发送的广播消息或者后台应用程序发送的广播消息按照应用程序的用户体验保障优先级顺序进行区别存储和调度,提高广播消息的管理的适用性。下面将结合图3至图8对本发明实施例提供的广播消息的管理方法及装置进行描述。

参见图3,是本发明实施例提供的广播消息的管理方法的流程示意图。本发明实施例提供的方法,包括步骤:

s201,接收目标应用程序发送的广播消息。

具体实现中,本发明实施例提供的广播消息的管理方法适用于终端的前台应用程序的广播消息的管理,也适用于终端的后台应用程序的广播消息的管理。具体实现中,终端可为前台应用程序和后台应用程序分别设置多个广播队列,前台应用程序和后台应用程序的广播队列可成对设置,也可分别根据需求设置,在此不做限制。前台应用程序对应的多个广播队列,或者后台应用程序对应的多个广播队列中,不同的广播队列用于存储不同类型的应用程序发送的广播消息。其中,每个广播队列包含多个链表,同一个广播队列的不同的链表用于存储相同应用程序类型的不同广播消息类型的广播消息。

在一些可行的实施方式中,终端接收到广播消息之后,可首先判断该广播消息来自前台,还是来自后台,进而可确定是将广播消息存储在前台应用程序对应的广播队列中,还是将广播消息存储在后台应用程序对应的广播队列中。具体的,终端可根据ams中保存的已注册的广播接收器(即广播消息的监听者)的前后台情况,确定广播消息为前台广播消息还是后台广播消息。进一步的,终端可采用本发明实施例提供的广播消息的管理方法确定具体将广播消息存储至哪个广播队列,以实现广播消息的针对性管理,还可通过存储广播消息来确定广播消息的调度优先级等信息。下面将以前台应用程序发送的广播消息为例进行说明,当然,下述具体实现方式也适用于后台应用程序发送的广播消息的管理,在此不做限制。

在一些可行的实施方式中,本发明实施例提供的广播消息的管理方法的执行主体可为终端中的ams等模块,也可为其他具有广播消息的管理功能的模块,在此不做限制,本发明实施例将以ams为例进行描述。具体实现中,终端的应用程序向ams发送广播消息时,可在广播消息中携带应用程序的用户标识(英文:useridentification,uid)或者包名(英文:packagename,pkgname)等标识信息。其中,上述应用程序的uid或者pkgname等标识信息可用于确定应用程序的名称,进而可确定应用程序的类型(简称应用类型)等信息。其中,上述向终端发送广播消息的应用程序可为终端内置的所有应用程序中的一个或者多个,下面将以其中一个应用程序(即目标应用程序)为例进行说明。

在一些可行的实施方式中,终端的ams接收到目标应用程序发送的广播消息之后,可解析上述广播消息,获取广播消息中携带的uid或者pkgname或者使用频率数据或者应用程序类型白名单等应用程序的标识信息。ams获取得到上述广播消息中携带的应用程序的标识信息之后,则可根据上述标识信息确定目标应用程序的类型以及应用程序的用户体验保障优先级。

需要说明的是,本发明实施例提供的应用程序的用户体验保障优先级可由应用程序的使用频率,或者应用程序的响应延迟给用户带来的体验影响程度确定。例如,系统应用程序为系统运行必备的应用程序(通过应用程序的uid,或者pkgname确定),因此系统应用程序的使用频率最高,系统应用程序的运行顺畅与否对用户的影响也最大,由此可确定系统应用程序的用户体验保障优先级最高。即时通讯工具等应用程序为用户每天使用的应用程序,该类应用程序的使用频率也较高,即时通讯工具运行的顺畅与否对用户的影响也较大,由此也可确定即时通讯工具等应用程序的用户体验保障优先级较高。用户较少使用或者应用程序的运行顺畅与否对用户感知的影响不明显的应用程序,则可确定其用户体验保障优先级较低。具体实现中,终端可以以此方式确定终端中各个应用程序的用户体验保障优先级,进而可在各个应用程序发送的广播消息中添加各个应用程序的用户体验保障优先级的标识信息,例如“1”或者“0”等标识符标识第一用户体验保障优先级(可由“1”标识)或者第二用户体验保障优先级(可由“0”标识)。由此可在接收到各个应用程序的广播消息时确定应用程序的用户体验保障优先级。进一步的,终端也可通过上述实现方式确定终端中各个应用程序的用户体验保障优先级,进而可建立各个应用程序的标识与其用户体验保障优先级的对应关系。由此可在确定各个应用程序uid等标识信息时确定应用程序的用户体验保障优先级。具体实现中,终端还可通过更多的实现方式确定应用程序的用户体验保障优先级,具体可根据实际应用场景需求或者技术需求确定,在此不做限制。

进一步的,在一些可行的实施方式中,终端的ams在接收目标应用程序发送的广播消息之前,可预先在将终端内置的所有应用程序进行分类,以对各个应用程序发送的广播消息进行分类管理。具体实现中,终端可通过使用白名单机制确定关键应用程序,或者可根据用户对终端的各个应用程序的使用频率等信息将使用频率高于预设频率阈值的应用程序设定为关键应用程序。终端也可将各个应用程序中的即时通讯类应用程序设定为关键应用程序,或者将对广播消息的收发比较敏感、广播消息的收发对应用程序的用户体验影响比较大的应用程序设定为关键应用程序。其中,上述关键应用程序的设定方式仅为举例,具体可根据实际应用程序确定,在此不做限制。上述关键应用程序可为用户体验保障优先级最高的应用程序,与终端的系统应用程序的用户体验保障优先级相同。或者上述终端的系统应用程序的用户体验保障优先级最高,上述关键应用程序的用户体验保障优先级低于系统应用程序的用户体验保障优先级,高于其他应用程序的用户体验保障优先级,具体可根据实际应用场景确定,在此不做限制。

终端确定了关键应用程序之后,可生成关键应用程序列表并发送给ams,以供ams对关键应用程序的广播消息进行管理,上述关键应用程序列表中包含上述各种设定方式确定的至少一个关键应用程序。进一步的,终端还可根据终端运行过程中新安装的应用程序,或者用户使用习惯等信息适时地更新关键应用程序列表中包含的关键应用程序。例如,可在终端开机或者终端连接无线网络等时间点更新关键应用程序列表中包含的应用程序。

在一些可行的实施方式中,ams接收到关键应用程序列表之后,则可将终端的应用程序与上述关键应用程序列表中包含的应用程序进行比对,将终端内置的应用程序中包含在上述关键应用程序列表中的应用程序确定为第一用户体验保障优先级的第一应用程序。进一步的,为了保障终端系统运行顺畅,ams可将终端的系统应用程序也设定为第一用户体验保障优先级的第一应用程序。不包含在上述关键应用程序列表中,也不是终端的系统应用程序的其他应用程序则可设定为第二用户体验保障优先级的第二应用程序。需要说明的是,上述关键应用程序或者第二应用程序可为终端从应用市场等平台中下载、安装的第三方应用程序,在此不做限制。

进一步的,参见图4,图4是本发明实施例提供的广播队列的一示意图。在一些可行的实施方式中,ams将终端的应用程序进行分类之后,还可分别为各个类型的应用程序建立广播队列,上述广播队列用于存储各个类型的应用程序发送的广播消息。具体实现中,ams可建立第一应用程序对应的第一广播队列,建立第二应用程序对应的第二广播队列等。其中,上述第一广播队列和第二广播队列为两个广播队列,广播队列的队列类型可相同,也可不同,具体可根据实际应用需求确定,在此不做限制。进一步的,ams还可为每个广播队列设定广播消息调度优先级,其中,上述广播消息调度优先级用于确定该广播队列中存储的广播消息的调度优先级。具体的,ams可设定第一广播队列的第一广播消息调度优先级,还可设定第二广播队列的第二广播消息调度优先级,并且第一广播消息调度优先级高于第二广播消息调度优先级。即,ams可设定终端中包含的关键应用程序和系统应用程序发送的广播消息的调度优先级高于其他应用程序发送的广播消息的调度优先级,可保证关键应用程序和系统应用程序的运行顺畅,保障关键应用程序和系统应用程序的用户体验。

具体实现中,ams预先建立了第一应用程序的第一广播队列和第二应用程序的第二广播队列,并设定第一广播消息调度优先级和第二广播消息调度优先级之后,则可在接收到广播消息时,根据发送广播消息的应用程序的类型确定将广播消息存储至第一广播队列还是第二广播队列,同时将广播消息存储至相应的广播队列也决定了该广播消息的调度优先级等信息。

s202,确定所述目标应用程序的用户体验保障优先级,并从预置的至少2个广播队列中确定出所述目标应用程序的用户体验保障优先级对应的目标广播队列。

在一些可行的实施方式中,ams可根据广播消息中携带的应用程序的标识等信息确定目标应用程序,进而可将目标应用程序与上述关键应用程序列表中包含的各个应用程序进行匹配,确定上述目标应用程序是否包含在上述关键应用程序列表中。若目标应用程序包含在上述关键应用程序列表中,则可确定目标应用程序为第一用户体验保障优先级的第一应用程序。若目标应用程序不包含在上述关键应用程序列表中,则可确定上述目标应用程序是否为终端的系统应用程序。若上述目标应用程序为终端的系统应用程序,则可确定上述目标应用程序为第一用户体验保障优先级的第一应用程序,否则可将目标应用程序确定为第二用户体验保障优先级的第二应用程序。

在一些可行的实施方式中,若上述目标应用程序为第一应用程序,则可将第一广播队列确定为目标广播队列。若上述目标应用程序为第二应用程序,则可将第二广播队列确定为目标广播队列。

进一步的,如图4,若上述第一应用程序中包含关键应用程序列表中包含的应用程序(可设定为预设应用程序)和系统应用程序,则可建立第一广播队列的两个子队列,其中一个子队列(可设定为第二子队列)用于存储预设应用程序的广播消息,另外一个子队列(可设定为第一子队列)用于存储系统应用程序的广播消息。具体实现中,上述第一广播队列的第一子队列和第二子队列可为与第二广播队列相同的队列格式的队列,也可为与第二广播队列不同的队列格式的队列,并且第一子队列和第二子队列中存储的广播消息的调度优先级均为预先设定的第一广播队列的第一广播消息调度优先级。即,第一广播队列的第一子队列和第二子队列的广播消息的调度优先级相同,并且均高于第二广播队列的第二广播消息调度优先级。具体实现中,上述第一广播队列的第一子队列和第二子队列的广播消息的调度优先级也可不同,具体两者之间的调度优先级顺序可根据实际应用场景确定,在此不做限制。

具体实现中,若ams确定目标应用程序为终端的系统应用程序,则可将第一广播队列的第一子队列确定为目标广播队列。若ams确定目标应用程序为预设应用程序,则可将第一广播队列的第二子队列确定为目标广播队列。ams确定了目标广播队列之后,则可将广播消息存储至上述目标广播队列中,以供后续调度、处理。

s203,将所述广播消息存储至所述目标广播队列中。

在一些可行的实施方式中,应用程序发送的广播消息中还可分为有序广播消息(也称串行广播消息)和无序广播消息(也称并行广播消息)。ams可将接收到的广播消息按照有序广播消息和无序广播消息进行分开存储。具体实现中,ams建立的第一广播队列和第二广播队列中每个广播队列及其子队列均可包含至少两个广播消息链表。其中,上述至少两个广播消息链表中包含第一链表和第二链表,第一链表用于存储第一消息类型的广播消息(例如有序广播消息),第二链表用于存储第二消息类型的广播消息(例如无序广播消息)。例如,如图4,ams可为第一广播队列中的第一子队列设置两个链表,其中一个链表(如链表31)用于存储系统应用程序发送的有序广播消息,另外一个链表(如链表32)用于存储系统应用程序发送的无序广播消息。ams也可为第一广播队列中的第一子队列设置三个或者四个等多于两个的链表,其中至少一个链表用于存储系统应用程序发送的有序广播消息,至少一个链表用于存储系统应用程序发送的无序广播消息。

在一些可行的实施方式中,终端的应用程序发送广播消息时可在广播消息中携带广播消息的消息类型标识,以供ams对广播消息进行识别和区分存储。具体实现中,ams将广播消息存储至目标广播队列时,可首先判断广播消息的消息类型。如果广播消息为第一消息类型(例如有序广播消息)的广播消息,则可将上述广播消息存储至目标广播队列中的第一链表(即用于存储有序广播消息的链表)。若上述广播消息为第二消息类型(例如无序广播消息)的广播消息,则可将上述广播消息存储至目标广播队列中的第二链表(即用于存储无序广播消息的链表)。

需要说明的是,同一个广播队列中不同链表存储的广播消息的调度优先级相同,具体调度哪个链表中的广播消息可根据实际应用场景中的调度方式确定,也可随机调度。ams将广播消息存储至具体链表之后,该广播消息的调度优先级则由存储该广播消息的链表对应的广播消息调度优先级确定。若该广播消息为有序广播消息,则该广播消息存入链表之后需按照时序先后进行排队等待调度,即,该广播消息需要等待排队在前的其他广播消息调度处理完成之后才能被调度。若该广播消息为无序广播消息,则该广播消息存入链表之后,可依次调度链表中的各个广播消息,而不需要等上一个广播消息处理完成再调度下一个广播消息。

s204,当接收到广播消息调度请求时,根据所述目标广播队列对应的目标广播消息调度优先级调度所述目标广播队列中存储的所述广播消息。

在一些可行的实施方式中,ams将广播消息存储至目标广播队列的具体链表之后,可通过调度处理器按照广播消息调度优先级从目标广播队列的链表中读出广播消息,进而可通过binder等通信机制通知监听当前读出的广播消息的应用程序来处理该广播消息。具体的,ams可调用各个应用程序预先在ams中注册的广播接收器来执行广播消息,以完成广播消息的调度。

进一步的,在一些可行的实施方式中,ams还可对接收到的异常广播消息进行特殊处理。具体实现中,若ams在预设时间阈值内接收到某个应用程序(即指定应用程序)的广播消息大于预设数量阈值,即ams在预设时间阈值内接收到指定应用程序的广播消息过多,则可将该指定应用程序设定为异常应用程序。此时异常广播消息将给用户带来负面的体验效果,因此异常应用程序的用户体验保障优先级可设定为最低优先级。具体的,ams可将上述异常应用程序确定为第三用户体验保障优先级的第三应用程序。进一步的,ams可为第三应用程序建立广播队列(设为第三广播队列),并将第三广播队列中存储的广播消息的调度优先级设定为第三广播消息调度优先级。具体实现中,为了保障正常运行的应用程序发出的广播消息的优先处理,ams可将第三广播消息调度优先级设定为最低优先级,即,第三广播消息调度优先级低于第二广播消息调度优先级。

进一步的,在一些可行的实施方式中,ams也可为第三广播队列设置至少两个广播消息链表。其中,上述至少两个链表中包含用于存储第三消息类型的广播消息的第三链表,和用于存储第四消息类型的广播消息的第四链表。其中,上述第三消息类型具体可为异常应用程序发送的有序广播消息,上述第四消息类型具体可为异常应用程序发送的无序广播消息。如图5,图5是本发明实施例提供的广播队列的另一示意图。ams可为第三应用程序设定一个广播队列,并在该广播队列中设定两个链表,其中一个链表(设为有序广播链表,如图5中的链表41)用于存储第三应用程序发送的有序广播消息,另一个链表(设定无序广播链表,如图5中的链表42)用于存储第三应用程序发送的无序广播消息。

具体实现中,ams接收到异常应用程序发送的广播消息(即指定广播消息)之后,可根据广播消息中携带的消息类型标识确定上述指定广播消息的消息类型。如果上述指定广播消息的类型为第三消息类型(如异常应用程序发送的有序广播消息),则可将上述指定广播消息存储至第三链表(如图5中的有序广播链表)。若上述指定广播消息的类型为第四消息类型(如异常应用程序发送的无序广播消息),则可将上述指定广播消息存储至第四链表(如图5中的无序广播链表)。

进一步的,在一些可行的实施方式中,ams将上述异常应用程序发送的广播消息存储至相关链表之后,可通过调度处理器按照第三广播消息调度优先级的优先级排序从链表中读出广播消息,进而可通过binder等通信机制通知监听该异常应用程序发送的广播消息的应用程序(如图5中的异常进程)来处理该广播消息,完成广播消息的调度。上述第三广播队列中的广播消息被调度执行结束之后,若检测到上述异常应用程序(即指定应用程序)退出运行,则可删除上述第三广播队列,节省内存空间。若后续再接收到异常应用程序发送的广播消息,则再建立应用存储异常应用程序发送的广播消息的广播队列,以避免空置的广播队列造成终端的存储空间的浪费。

在本发明实施例中,终端可根据发送广播消息的应用程序的类型将广播消息进行区分存储,还可为不同类型的应用程序发送的广播消息设定不同的调度优先级,可保障系统应用程序或者预设应用程序等关键应用程序的广播消息优先处理,保障关键应用程序的运行顺畅,提高广播消息的管理的适用性。进一步的,本发明实施例还可对预设时间阈值内发送广播风暴的异常应用程序进行识别,并通过动态建立异常应用程序的广播队列对异常广播消息进行存储的方式进行异常发送的广播消息进行管理,避免异常应用程序对其他应用程序的影响,进一步保障了关键应用程序的运行顺畅,提高了终端的用户体验。

以上主要介绍了本发明实施例提供的方法的具体流程,下面结合图6并以android操作系统为例,介绍本发明实施例提供的方法的实现位置和运行时状态,更具体的方法流程可参考前述实施例。

请参阅图6,为本发明实施例提供的计算机系统的结构示意图。该计算机系统可以是上述本发明实施例提供的终端设备,也可以是其他类型的计算机设备。该计算机系统包括应用层601、操作系统层600和硬件层604。需要说明的是,图6所示的计算机系统的结构示意图中展示的模块的仅是系统的部分模块,并非全部模块。图6所示的结构示意图中包含的各个模块仅是示例,具体结构可根据实际应用确定,在此不做限制。

其中,上述操作系统可以为android操作系统,也可为其他适用于本发明实施例提供的方法的操作系统,在此不做限制。操作系统层600又分为系统框架层602和内核层603。其中,图6中的操作系统层600可以认为是图1中操作系统182的一种具体实现。系统框架层602包括系统服务610、存储服务620、显示服务630和媒体服务640等。系统服务610包括电源管理服务(英文:powermanagerservice,pms)611、通知管理服务(英文:notificationmanagerservice,nms)612、窗口管理服务(英文:windowmanagerservice,wms)613和ams服务614等。其中,ams服务614包括多级广播识别器、多级广播构造器、多级广播调度器和多级广播执行器等。内核层603包括cpu资源调度、内存资源调度和io资源调度等模块。其中,cpu资源调度用于配置不同的广播队列对应的广播执行器的cpu。内存资源调度用于配置不同的广播队列对应的广播执行器的内存。io资源调度用于配置不同的广播队列对应的广播执行器的io资源获取优先级等。

本发明实施例前述任意一个实现方式均可以实现在图6所示的ams服务614中。

在一些可行的实施方式中,在ams服务中,多级广播识别器用于确定目标应用程序以及目标应用程序对应的目标广播队列,例如第一广播队列、第二广播队列或者第三广播队列等。多级广播构造器用于根据预先设定的广播队列的配置信息,创建分别用于存储第一应用程序发送的广播消息的第一广播队列、用于存储第二应用程序发送的广播消息的第二广播队列以及用于存储第三应用程序发送的广播消息的第三广播队列。多级广播构造器还用于配置第一广播队列、第二广播队列和第三广播队列的广播消息调度优先级等资源。例如,多级广播构造器可设定各个广播队列的广播消息调度优先级为第一广播队列的广播消息调度优先级高于第二广播队列,第二广播队列的广播消息调度优先级高于第三广播队列的广播消息调度优先级。多级广播调度器用于根据多级广播识别器处理得到的目标应用程序以及目标应用程序对应的目标广播队列,调度目标广播队列来执行广播消息的分发等处理。例如,对于第一应用程序,多级广播调度器选择多级广播构造器创建的多个广播队列中的第一广播队列来执行广播分发。多级广播执行器用于提供广播分发处理能力,可分别处理第一广播队列、第二广播队列、第三广播队列中的广播。

进一步的,如图6,终端的应用层601可包括电话、短信、照相机、即时通讯、浏览器和地图导航等应用。其中,图6中展示的应用仅是应用层601中的部分应用,并非全部,具体可根据实际应用需求设定,在此不做限制。具体实现中,图6中的应用层601可以认为是图1中应用程序181的一种具体实现,在此不做限制。终端的硬件层604包括中央处理器(即cpu)、传感器、存储器、输入设备和输出设备(具体也可为显示设备)等硬件模块。其中,图6中展示的硬件模块仅是硬件层604中的部分模块,并非全部,具体可根据实际应用需求设定,在此不做限制。其中,中央处理器可相当于图1中的处理器150的一种具体实现,存储器可相当于图1中的存储器180,包括内存和外存。图6中的输入设备可相当于图1中的输入设备132,图6中的输出设备可相当于图1中的显示设备140,例如液晶显示器(英文:liquidcrystaldisplay,lcd)、全息成像(英文:holographic)、投影(英文:projector)等。当然除此之外,硬件层604还可以包括一个或多个传感器(相当于图1中的传感器120)。硬件层604还可以包括图1中示出的电源、摄像头、rf电路和wifi模块,还可以包括图1中也没有示出的其他硬件模块,例如内存控制器和显示控制器等,在此不做限制。

参见图7,是本发明实施例提供的广播消息的管理装置的一结构示意图。本发明实施例提供的广播消息的管理装置具体可为上述实施例中的终端,其可包括:

接收模块71,用于接收目标应用程序发送的广播消息。

确定模块72,用于确定所述目标应用程序的用户体验保障优先级,并从预置的至少2个广播队列中确定出所述目标应用程序的用户体验保障优先级对应的目标广播队列,其中,所述至少2个广播队列中每个广播队列对应一个广播消息调度优先级。

存储模块73,用于将所述接收模块71接收的所述广播消息存储至所述确定模块72确定的所述目标广播队列中。

调度模块74,用于在接收到广播消息调度请求时,根据所述目标广播队列对应的目标广播消息调度优先级调度所述存储模块73存储在所述目标广播队列中的所述广播消息。

在一些可行的实现方式中,参见图8,是本发明实施例提供的广播消息的管理装置的另一结构示意图。本发明实施例提供的管理装置还包括:

分类模块75,用于将终端的应用程序按照各个应用程序的用户体验保障优先级划分为至少两种用户体验保障优先级的应用程序,所述至少两种用户体验保障优先级的应用程序中包括第一用户体验保障优先级的第一应用程序和第二用户体验保障优先级的第二应用程序,所述第一用户体验保障优先级高于所述第二用户体验保障优先级。

设置模块76,用于建立所述分类模块75划分得到的所述第一应用程序对应的第一广播队列,所述第二应用程序对应的第二广播队列,并设定所述第一广播队列的第一广播消息调度优先级,所述第二广播队列的第二广播消息调度优先级,所述第一广播消息调度优先级高于所述第二广播消息调度优先级。

所述确定模块72具体用于:

在确定所述目标应用程序为第一应用程序时,将所述第一广播队列确定为目标广播队列;

在确定所述目标应用程序为第二应用程序时,将所述第二广播队列确定为目标广播队列。

在一些可行的实现方式中,所述第一应用程序包括所述终端的系统应用程序和预设应用程序;

所述第一广播队列包括用于存储所述系统应用程序的广播消息的第一子队列和用于存储所述预设应用程序的广播消息的第二子队列;

所述确定模块72具体用于:

在确定所述目标应用程序为所述终端的系统应用程序时,将所述第一广播队列的第一子队列确定为目标广播队列;

在确定所述目标应用程序为所述预设应用程序时,将所述第一广播队列的第二子队列确定为目标广播队列。

在一些可行的实现方式中,所述至少两种用户体验保障优先级的应用程序中还包括第三用户体验保障优先级的第三应用程序;

所述确定模块72还用于:

在预设时间阈值内接收到的指定应用程序的广播消息的数量大于预设数量阈值时,将所述指定应用程序确定为第三应用程序;

所述设置模块76还用于:

建立所述确定模块72确定的所述第三应用程序对应的第三广播队列,将所述第三广播队列确定为目标广播队列并通过所述存储模块将所述第三应用程序的广播消息存储至所述第三广播队列;

将所述第三广播队列中存储的广播消息的调度优先级设定为第三广播消息调度优先级;

其中,所述第三广播消息调度优先级低于所述第二广播消息调度优先级。

在一些可行的实现方式中,所述设置模块76还用于:

在所述调度模块74调度执行完所述第三广播队列中存储的广播消息,并且检测到所述指定应用程序退出运行时,删除所述第三广播队列。

具体实现中,上述管理装置可通过其内置的各个模块执行上述广播消息的管理方法中各个步骤所描述的实现方式,具体可参见上述各个实施例描述的实现方式,在此不再赘述。

在本发明实施例中,终端可接收到广播消息时可根据发送广播消息的目标应用程序的用户体验保障优先级将广播消息存储至目标广播队列,其中,目标广播队列还对应一个广播消息调度优先级。广播消息调度时还可根据广播消息调度优先级进行广播消息的调度处理。通过对广播消息按照应用程序的用户体验保障优先级进行分类存储,提高广播消息的存储的可控性。通过对广播消息存储的广播队列设置广播消息调度优先级,提高广播消息的调度优先级的可控性,进而提高了广播消息的处理效率,增强了应用程序的用户体验。本发明实施例提供的目标应用程序可为后台应用程序也可为前台应用程序,即本申请提供的方法可用于前台应用程序的广播消息的管理,也可用后台应用程序的广播消息的管理,操作灵活,提高了广播消息的管理的适用性。

本发明的说明书、权利要求书以及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或者单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或者单元,或可选地还包括对于这些过程、方法、系统、产品或设备固有的其他步骤或单元。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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