广播处理方法、装置、电子设备及存储介质与流程

专利2023-01-22  151



1.本技术涉及电子设备技术领域,更具体地,涉及一种广播处理方法、装置、电子设备及存储介质。


背景技术:

2.安卓(android)系统中广播是一种广泛运用在应用程序之间传输信息的机制,android中的广播用于监听系统事件或应用程序事件。广播通常可以分为有序广播、无序广播等,其中,有序广播采用串行方式逐一发送至每个广播接收者。但是,在这样的方式中,由于各个广播接收者的接收广播需要产生耗时,因此广播接收者之间进行广播接收时会相互产生影响。


技术实现要素:

3.本技术提出了一种广播处理方法、装置、电子设备及存储介质,可以实现减少串行广播的不同接收者类型的接收者之间的影响,加快串行广播的处理速度。
4.第一方面,本技术实施例提供了一种广播处理方法,所述方法包括:根据待处理广播的广播接收者的接收者类型,将所述待处理广播划分至多个广播队列,其中,每个广播队列对应一个不同的接收者类型,所述待处理广播于所述每个广播队列中的广播接收者与所述每个广播队列对应的接收者类型对应;若所述待处理广播为有序广播,则并行地将所述多个广播队列中的所述待处理广播进行发送,其中,所述待处理广播于所述每个广播队列中被串行发送至所述待处理广播于所述每个广播队列中的广播接收者。
5.第二方面,本技术实施例提供了一种广播处理装置,所述装置包括:广播划分模块以及广播发送模块,其中,所述广播划分模块用于根据待处理广播对应的广播接收者所属的接收者类型,将所述待处理广播划分至多个广播队列,其中,每个广播队列对应一个不同的接收者类型,所述待处理广播于所述每个广播队列中的广播接收者与所述每个广播队列对应的接收者类型对应;所述广播发送模块用于若所述待处理广播为有序广播,则并行地将所述多个广播队列中的所述待处理广播进行发送,其中,所述待处理广播于所述每个广播队列中被串行发送至所述待处理广播于所述每个广播队列中的广播接收者。
6.第三方面,本技术实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行上述第一方面提供的广播处理方法。
7.第四方面,本技术实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述第一方面提供的广播处理方法。
8.本技术提供的方案,通过根据待处理广播的广播接收者的接收者类型,将待处理广播划分至多个广播队列,每个广播队列对应一个不同的接收者类型,待处理广播于每个
广播队列中的广播接收者与每个广播队列对应的接收者类型对应,若该待处理广播为有序广播,则并行地将多个广播队列中的该待处理广播进行发送,其中,待处理广播于每个广播队列中被串行发送至待处理广播于每个广播队列中的广播接收者。由于待处理广播被划分至不同接收者类型的多个广播队列中,并且并行地对多个广播队列中的待处理广播进行发送,因此能够减少发送有序广播时不同接收者类型的接收者之间的影响,加快串行广播的处理速度。
附图说明
9.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
10.图1示出了本技术实施例提供的一种场景示意图。
11.图2示出了根据本技术一个实施例的广播处理方法流程图。
12.图3示出了根据本技术另一个实施例的广播处理方法流程图。
13.图4示出了根据本技术又一个实施例的广播处理方法流程图。
14.图5示出了根据本技术再一个实施例的广播处理方法流程图。
15.图6示出了本技术实施例提供的一种场景示意图。
16.图7示出了根据本技术一个实施例的广播处理装置的一种框图。
17.图8是本技术实施例的用于执行根据本技术实施例的广播处理方法的电子设备的框图。
18.图9是本技术实施例的用于保存或者携带实现根据本技术实施例的广播处理方法的程序代码的存储单元。
具体实施方式
19.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
20.在android(安卓)系统中,广播作为android四大重要组件之一,主要用来android应用与android系统和其他android应用之间可以相互收发广播消息。广播的使用场景往往是在满足某种条件下发出一个广播broadcast,多处广播接收对象receiver可以监听该广播通知并做出相应的改变。比如亮/灭屏,网络状态切换等事件发生时都会发出相应的广播。
21.广播通常分为有序广播和无序广播,有序广播对应串行发送的方式,无序广播对应并行发送的方式。如图1所示,广播在发送的时候,会根据其广播类型(有序广播或无序广播),进入串行队列和并行队列,然后发送给注册监听该广播的广播接收者。
22.其中,对于并行队列中的广播的处理方式为:每条广播并行地同时发送至广播的所有广播接收者,在该广播的所有广播接收组均接收到广播并处理完毕,再开始对下一条广播进行上述方式进行并行发送。对于串行队列中的广播的处理方式为:每条广播按照系统确定的广播接收者的优先级顺序/或是随机发送的方式,逐一向每个广播接收对象发送,
等待其处理完毕后,再向下一个广播接收者发送,如此进行下去,直到该广播的所有广播接收者均接收到广播并处理完毕,即完成该条广播的处理,再开始对下一条广播按上述方式进行发送。
23.在以上串行发送的方式中,由于广播接收者接收广播的耗时可能不同,部分广播接收者接收广播的耗时可能较长,这样会导致在该广播接收者之后对广播进行接收的时间会较晚,使广播接收者之间进行广播接收时会相互产生影响;另外,也会部分广播接收者的耗时较长时,还会使得该广播的发送总时长较长,因此还会进一步影响到对串行队列中排在当前广播后面的其它广播的处理,降低了串行队列的广播发送效率。
24.针对上述问题,发明人提出了本技术实施例提供的广播处理方法、装置、电子设备以及存储介质,能够减少发送有序广播时串行广播的不同接收者类型的接收者之间的影响,加快串行广播的处理速度。其中,具体的广播处理方法在后续的实施例中进行详细的说明。
25.下面再结合附图对本技术实施例提供的广播处理方法进行详细介绍。
26.请参阅图2,图2示出了本技术一个实施例提供的广播处理方法的流程示意图。在具体的实施例中,所述广播处理方法应用于如图7所示的广播处理装置400以及配置有所述广播处理装置400的电子设备100(图8)。下面将以电子设备为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的电子设备可以为智能手机、平板电脑、智能手表、电子书等,在此不做限定。下面将针对图2所示的流程进行详细的阐述,所述广播处理方法具体可以包括以下步骤:
27.步骤s110:根据待处理广播的广播接收者的接收者类型,将所述待处理广播划分至多个广播队列,其中,每个广播队列对应一个不同的接收者类型,所述待处理广播于所述每个广播队列中的广播接收者与所述每个广播队列对应的接收者类型对应。
28.其中,广播指的是广播发送者发出的,用于广播发送者与广播接收者之间传输得到信息,例如,广播可以是亮/灭屏、网络状态切换、电话类广播等。广播发送者是发送广播的系统或应用,广播接收者是注册过广播的系统或应用,用于接收广播并处理相关业务。应用可以包括软件、程序、组件等;广播接收者可以动态注册广播,也可以静态注册广播,在此不做限定。
29.广播发送者在发送广播时,可以通过调用广播发送函数,例如sendbroadcast函数,将广播发送至广播管理模块,例如活动管理服务(activitymanagerservice),广播管理模块可以在接收到广播后,将广播作为待处理广播放入广播发送队列,也就是说,广播发送队列中的广播即为待处理广播,即待由广播管理模块通过进程通信机制发送至符合接收条件的广播接收者的广播。为方便说明本技术实施例提供的广播处理方法,待处理广播可以为待发送至广播接收者的任一广播。
30.在本技术实施例中,可以根据待处理广播的广播接收者的接收者类型,将广播发送队列中的待处理广播划分至不同的广播队列,并且每个广播队列对应一个不同的接收者类型,后续通过并行地处理各个广播队列中的广播,从而减少广播为有序广播的情况下,不同接收者类型的广播接收者在接收广播时的相互影响。另外,为避免待处理广播重复发送,待处理广播于每个广播队列中的广播接收者与每个广播队列对应的接收者类型对应,也就是说,待处理广播对应的所有接收者中,按照广播队列对应的接收者类型,被划分到不同广
播队列,以使待处理广播位于各个广播队列时,只会发送至该广播队列对应的接收者类型的广播接收者。
31.在一些实施方式中,接收者类型可以为接收者的应用类型,例如可以包括系统应用类型以及第三方应用类型,由此,在待处理广播为有序广播的情况下,通过后续并行地将每个广播队列中的待处理广播串行发送至广播接收者,能够减少系统应用类型的广播接收者与第三方应用类型的广播接收者在接收广播时的相互影响。
32.在另一些实施方式中,接收者类型也可以为预先根据所有可能的广播接收者的接收优先级所划分的类型,不同接收优先级的广播接收者对应的接收者类型不同。由此,通过后续步骤,可以减少不同接收优先级对应的接收者类型的广播接收者在接收广播时的相互影响。
33.在一种可能的实施方式中,上述接收优先级可以根据广播接收者对应的应用的运行次数确定。例如可以根据广播接收者对应的应用的运行次数从大到小的顺序,对所有存在的广播接收者进行排序,得到排序结果,然后再根据排序结果将不同排名区间的广播接收者的优先级确定为不同的优先级。
34.在一种可能的实施方式中,上述接收优先级也可以是各个广播接收者对应的adj优先级。其中,adj优先级用于当内存不够的时候,根据adj优先级的大小依次释放内存,其一定程度上能够反映进程的重要性,因此可以基于此确定广播接收者的接收优先级。
35.在又一些实施方式中,接收者类型可以为广播接收者的进程类型,例如,进程类型包括交互进程、批处理进程、监控进程等。由此,在待处理广播为有序广播的情况下,通过后续并行地将每个广播队列中的待处理广播串行发送至广播接收者,能够减少不同进程类型的广播接收者在接收广播时的相互影响。
36.当然,在本技术实施例中,接收者类型的具体方式划分可以不做限定。
37.步骤s120:若所述待处理广播为有序广播,则并行地将所述多个广播队列中的所述待处理广播进行发送,其中,所述待处理广播于所述每个广播队列中被串行发送至所述待处理广播于所述每个广播队列中的广播接收者。
38.在本技术实施例中,在将待处理广播划分至多个不同的接收者类型对应的广播队列,并且使得待处理广播于每个广播队列中的广播接收者与每个广播队列对应的接收者类型对应之后,则可以按照待处理广播的广播类型,对每个广播队列中的待处理广播进行发送。其中,若待处理广播为有序广播,则可以并行地将多个广播队列中的所述待处理广播进行发送,待处理广播于每个广播队列中被串行发送至待处理广播于每个广播队列中的广播接收者。由此,使得待处理广播在不同接收者类型对应的广播队列中串行发送,能够减少不同进程类型的广播接收者在接收广播时的相互影响,另外,由于待处理广播在多个广播队列被并行地发送,因此还能提升待处理广播的发送速度。
39.在一些实施方式中,若待处理广播为无序广播,则可以并行地将每个广播队列中的待处理广播进行发送,待处理广播于每个广播队列中被并行发送至待处理广播于每个广播队列中的广播接收者。可选地,为避免待处理广播于任一广播队列中的广播接收者较多时,导致广播并发使得资源紧张的问题,还可以对各个广播队列中的待处理广播进行处理,以避免出现运行卡顿的问题。
40.本技术实施例提供的广播处理方法,通过在对待处理广播进行发送之前,将待处
理广播被划分至不同接收者类型的多个广播队列中,并且并行地对多个广播队列中的待处理广播进行发送,因此能够减少发送有序广播时不同接收者类型的接收者之间的影响,加快串行广播的处理速度,避免电子设备的运行卡顿。
41.请参阅图3,图3示出了本技术另一个实施例提供的广播处理方法的流程示意图。该广播处理方法应用于上述电子设备,下面将针对图3所示的流程进行详细的阐述,所述广播处理方法具体可以包括以下步骤:
42.步骤s210:根据待处理广播对应的所有广播接收者的接收者类型中存在的接收者类型,将所述待处理广播划分至多个广播队列,每个广播队列对应一个不同的接收者类型。
43.在本技术实施例中,在对待处理广播进行发送之前,可以获取待处理广播的所有广播接收者,并且确定出所有广播接收者的接收者类型,进而得到所有广播接收者中存在的接收者类型,再根据存在的接收者类型,将待处理广播划分至多个广播队列中,每个广播队列与存在的接收者类型中的其中一个接收者类型对应。也就是说,根据存在的每个接收者类型,将待处理广播划分至每个接收者类型对应的广播队列中。
44.在一些实施方式中,确定出所有广播接收者的接收者类型后,可以判断是否存在多个接收者类型;若存在多个接收者类型,则表示如果待处理广播为有序广播时,直接按照有序广播的发送方式进行发送,会使得不同接收者类型在接收广播时产生影响,因此该情况下,可以执行根据待处理广播对应的所有广播接收者的接收者类型中存在的接收者类型,将所述待处理广播划分至多个广播队列,以及后续步骤。若所有广播接收者的接收者类型中仅存在一个接收者类型,也就是说,待处理广播的所有广播接收者均为同一接收者类型,则该情况下可以直接根据待处理广播的广播类型(有序广播或无序广播),对待处理广播进行串行发送或并行发送,使该待处理广播的所有广播接收者接收到该待处理广播。
45.在一些实施方式中,电子设备中可以预先根据所有可能的接收者类型,创建多个不同的广播队列,并且每个广播队列对应一个接收者类型。在对待处理广播进行处理时,可以确定出广播接收者中存在的接收者类型,然后将待处理广播划分至存在的接收者类型所对应的广播队列中。
46.在一种可能的实施方式中,接收者类型可以是接收者对应的应用类型,应用类型包括系统应用类型以及第三方应用类型。电子设备中可以创建有第一广播队列以及第二广播队列,第一广播队列对应的接收者类型为系统应用类型,第二广播队列对应的接收者类型为第三方应用类型。对待处理广播进行处理时,可以判断待处理广播对应的所有接收者的接收者类型中是否存在系统应用类型,以及是否存在第三方应用类型;若存在系统应用类型以及第三方应用类型,则可以将待处理广播分发至第一广播队列以及第二广播队列,后续则可以针对第一广播队列以及第二广播队列中的待处理广播进行发送。
47.步骤s220:根据所述每个广播队列对应的接收者类型,将所述所有广播接收者分配至所述每个广播队列,得到所述待处理广播于所述每个广播队列中的广播接收者。
48.在本技术实施例中,在将待处理广播划分至多个广播队列后,由于待处理广播同时存在于多个广播队列,为避免待处理广播重复发送至同一广播接收者,因此还可以对待处理广播的广播接收者进行划分,使待处理广播于广播队列中的广播接收者与所处的广播队列对应的接收者类型对应。其中,可以根据每个广播队列对应的接收者类型,将所有广播接收者分配至每个广播队列,从而得到待处理广播于每个广播队列中的广播接收者,使待
处理广播于每个广播队列中的广播接收者与每个广播队列对应的接收者类型对应。由此,后续发送广播队列中的待处理广播时,只会发送至待处理广播于该广播队列中的广播接收者,从而避免待处理广播被重复发送至同一广播接收者。
49.在一些实施方式中,在接收者类型为接收者对应的应用类型的情况下,应用类型包括系统应用类型以及第三方应用类型,并且系统应用类型对应的广播队列为第一广播队列,第三方应用类型对应的广播队列为第二广播队列。在对待处理广播对应的广播接收者进行划分时,可以将所述所有广播接收者中系统应用类型的广播接收者分配至所述第一广播队列,得到所述待处理广播于所述第一广播队列中的广播接收者;将所述所有广播接收者中第三方应用类型的广播接收者分配至所述第二广播队列,得到所述待处理广播于所述第二广播队列中的广播接收者。由此,可以使得待处理广播于第一广播队列中的广播接收者与第一广播队列对应的接收者类型(即系统应用类型)对应,待处理广播于第二广播队列中的广播接收者与第二广播队列对应的接收者类型(即第三方应用类型)对应。
50.步骤s230:若所述待处理广播为有序广播,则并行地将所述多个广播队列中的所述待处理广播进行发送,其中,所述待处理广播于所述每个广播队列中被串行发送至所述待处理广播于所述每个广播队列中的广播接收者。
51.在本技术实施例中,步骤s230可以参阅其他实施例的内容,在此不再赘述。
52.本技术实施例提供的广播处理方法,在对待处理广播进行处理时,通过根据待处理广播对应的所有广播接收者的接收者类型中存在的接收者类型,将待处理广播划分至多个广播队列,每个广播队列对应一个存在的接收者类型,并且根据广播队列对应的接收者类型对所有广播接收者进行划分,使待处理广播于广播队列中的广播接收者与广播队列对应的接收者类型对应,然后在待处理广播为有序广播的情况下,并行地对多个广播队列中的待处理广播进行发送,因此能够减少发送有序广播时不同接收者类型的接收者之间的影响,加快串行广播的处理速度。
53.请参阅图4,图4示出了本技术又一个实施例提供的广播处理方法的流程示意图。该广播处理方法应用于上述电子设备,下面将针对图4所示的流程进行详细的阐述,所述广播处理方法具体可以包括以下步骤:
54.步骤s310:根据待处理广播的广播接收者的接收者类型,将所述待处理广播划分至多个广播队列,其中,每个广播队列对应一个不同的接收者类型,所述待处理广播于所述每个广播队列中的广播接收者与所述每个广播队列对应的接收者类型对应。
55.在本技术实施例中,步骤s310可以参阅其他实施例的内容,在此不再赘述。
56.步骤s320:若所述待处理广播为有序广播,将所述每个广播队列中的所述待处理广播送入所述每个广播队列对应的串行发送队列,所述串行发送队列中的广播均为有序广播。
57.在本技术实施例中,在将待处理广播划分至多个广播队列后,则可以按照待处理广播的广播类型以及待处理广播于每个广播队列中对应的广播接收者,对每个广播队列中的待处理广播进行发送。在待处理广播为有序广播的情况下,则可以将每个广播队列中的待处理广播送入每个广播队列对应的串行发送队列。其中,电子设备可以预先针对每个广播队列创建有串行发送队列以及并行发送队列,串行发送队列用于对广播队列中的有序广播进行发送,并行发送队列用于对广播队列中的无序广播进行发送。
58.步骤s330:并行地执行每个所述串行发送队列中的有序广播的广播发送任务,将每个所述串行发送队列中的所述待处理广播,串行发送至所述待处理广播于所述每个广播队列中的广播接收者。
59.在本技术实施例中,对于多个广播队列对应的串行发送队列中的有序广播,则可以并行地执行每个串行发送队列中的有序广播的广播发送任务,从而可以将每个串行发送队列中的所述待处理广播,串行发送至待处理广播于每个串行发送队列对应的广播队列中的广播接收者。可以理解的是,待处理广播被送入串行发送队列后,则待处理广播于串行发送队列中的广播接收者,则为待处理广播于该串行发送队列对应的广播队列中的广播接收者,例如,广播队列1对应串行发送队列1,将广播队列1中的待处理广播送入串行发送队列1后,则待处理广播于串行发送队列1中的广播接收者,即为待处理广播于广播队列1中的广播接收者,由此,执行串行发送队列1中有序广播的发送任务,即可将待处理广播串行发送至待处理广播于广播队列1中的广播接收者。
60.步骤s340:若所述待处理广播为无序广播,将所述每个广播队列中的所述待处理广播送入所述每个广播队列对应的并行发送队列,所述并行发送队列中的广播均为无序广播。
61.在本技术实施例中,在待处理广播为无序广播的情况下,则可以将每个广播队列中的待处理广播送入每个广播队列对应的并行发送队列,以通过每个广播队列对应的并行发送队列,将待处理广播发送至待处理广播于每个广播队列中的广播接收者。
62.步骤s350:对所述并行发送队列中的无序广播进行预处理。
63.在本技术实施例中,考虑到并行发送队列中的无序广播瞬时发送给各个广播接收者时,若广播接收者数量较大时会引发资源短缺,因此,在对并行发送队列中的无序广播进行发送前,还对无序广播进行预处理。其中,可以采用多种方式对每个并行发送队列中的无序广播进行预处理,以避免出现无序广播瞬时发送引发资源短缺的情况。
64.在一种可能的实施方式中,对每个广播队列对应的并行发送队列中的无序广播进行预处理,可以包括:根据所述并行发送队列中每个无序广播对应的广播接收者的接收者信息,对所述并行发送队列中每个无序广播对应的广播接收者进行过滤。其中,接收者信息可以包括广播接收者对应的包名、action(动作)等。可以理解地,同一应用程序在运行时可能会存在多个模块对同一广播进行监听,因此会分别针对多个模块注册有该广播的广播接收者,但是这些模块对应的接收者信息是一致的,也就是说,这些广播接收者实际上均为同一应用程序。基于此,通过根据广播接收者的接收者信息,可以过滤掉属于同一应用程序的重复的广播接收者,使属于同一应用程序的广播接收者的数量为1个,从而能够减少无序广播的重复发送,进而避免出现无序广播瞬时发送引发资源短缺的情况。
65.在一种可能的实施方式中,对每个广播队列对应的并行发送队列中的无序广播进行预处理,可以包括:根据所述并行发送队列中的每个无序广播在当前时间段内的发送次数,确定所述并行发送队列中的异常广播,所述异常广播对应的所述发送次数大于预设次数;从所述并行发送队列中滤除所述异常广播。
66.该实施方式中,考虑到一些恶意广播可能短时间内被大量次数的进行发送,为避免无序广播瞬时发送引发资源短缺的情况,也可以确定并行发送队列中的每个无序广播在当前时间段内的发送次数,并根据每个无序广播在当前时间段内的发送次数,从并行发送
队列中的所有无序广播中确定出发送次数大于预设次数的广播,作为并行发送队列中的异常广播,并从并行发送队列中滤除确定的异常广播,从而能够避免异常广播的发送占用大量资源。其中,当前时间段指的是当前时刻之前的预设时长内的时间段,预设时长可以为30秒、1分钟、2分钟等,在此不做限定。
67.在一种可能的实施方式中,对每个广播队列对应的并行发送队列中的无序广播进行预处理,可以包括:根据所述并行发送队列中的每个无序广播对应的广播发送者的优先级,对所述并行发送队列中的每个无序广播的发送顺序进行更新。可以理解地,在并行发送队列中存在多个无序广播的情况下,为保证并行广播发送队列中重要程度高的广播发送者所发送的无序广播被优先发送,还可以根据并行发送队列中各个无序广播对应的广播发送者的优先级,对并行发送队列中的无序广播进行排序。其中,广播发送者的优先级越高,则该广播发送者所发送的无序广播在并行发送队列中的顺序越靠前。可选地,广播接收者的优先级可以是进程优先级,例如adj优先级等。
68.可以理解地,上述各个实施方式也可以相互结合,也就是说,可以对并行发送队列中的无序广播进行上述一个或多个实施方式所提供的预处理。
69.步骤s360:并行地执行每个所述并行发送队列中的无序广播的广播发送任务,将每个所述并行发送队列中的所述待处理广播,并行发送至所述待处理广播于所述每个广播队列中的广播接收者。
70.在本技术实施例中,在对并行发送队列中的无序广播进行预处理后,则可以并行地执行每个并行发送队列中的无序广播的广播发送任务,从而可以对每个广播队列对应的并行发送队列中的无序广播进行并行发送,进而可以实现将每个广播队列中的待处理广播并行发送至待处理广播于每个广播队列中的广播接收者。
71.在一些实施方式中,考虑到无序广播瞬时发送可能引发资源短缺,从而导致电子设备运行卡顿的情况,在执行步骤s360之前,还可以确定电子设备的当前运行状态是否满足预设状态条件。其中,预设状态条件作为当前是否执行并行发送队列中的广播发送任务的判断依据,若电子设备的当前运行状态满足预设状态条件,则可以并行地执行每个所述并行发送队列中的无序广播的广播发送任务,将每个所述并行发送队列中的所述待处理广播,并行发送至所述待处理广播于所述每个广播队列中的广播接收者;若电子设备的当前运行状态满足预设状态条件,则当前暂停并行地执行每个所述并行发送队列中的无序广播的广播发送任务。
72.其中,电子设备的当前运行状态可以包括电子设备当前的系统资源状态、运行场景等。电子设备的运行场景可以包括拍照场景、微信视频场景、应用切换场景、游戏场景等;电子设备的系统资源状态可以包括内存资源的状态信息、中央处理器的状态信息、图形处理器的状态信息、输入输出资源的状态信息、温度的状态信息等,在此不做限定。
73.在一种可能的实施方式中,预设状态条件包括以下条件中的至少一个:当前的系统资源状态满足预设资源状态条件;当前的运行场景为预设场景。其中,系统资源状态满足预设资源状态条件,可以是剩余资源量大于预设资源量,例如,系统资源状态包括中央处理器的当前可用率,若当前可用率大于预设可用率,则表示系统资源状态满足预设资源状态条件;又例如,系统资源状态包括剩余内存资源,则在剩余内存资源大于预设内存值时,表示系统资源状态满足预设资源状态条件。
74.在一些实施方式中,电子设备还可以确定所有广播队列对应的并行发送队列中当前待执行发送的无序广播对应的广播接收者的总数量;在总数量大于预设数量的情况下,则可以暂停并行地执行每个所述并行发送队列中的无序广播的广播发送任务。
75.可选地,也可以暂停部分并行发送队列中的无序广播的广播发送任务。例如,可以根据各个并行发送队列对应的广播队列所对应的广播接收者类型,按照广播接收者类型对应的优先级(例如进程优先级)从高到低的顺序,对各个并行发送队列进行排序,并从排序结果中确定末尾的目标数量的并行发送队列,然后暂停该目标数量的并行发送队列中的无序广播的广播发送任务。
76.本技术实施例提供的广播处理方法,通过在对待处理广播进行发送之前,将待处理广播被划分至不同接收者类型的多个广播队列中,按照待处理广播的广播类型,将各个广播队列中的待处理广播送入各个广播队列对应的串行发送队列或并行发送队列中,然后并行执行发送队列中的广播发送任务,因此能够减少发送有序广播时不同接收者类型的接收者之间的影响,加快串行广播的处理速度。另外,还针对各个广播队列对应的并行发送队列中的无序广播进行预处理,从而避免出现无序广播瞬时发送引发资源短缺的情况。
77.请参阅图5,图5示出了本技术再一个实施例提供的广播处理方法的流程示意图。该广播处理方法应用于上述电子设备,下面将针对图5所示的流程进行详细的阐述,所述广播处理方法具体可以包括以下步骤:
78.步骤s410:根据待处理广播的广播接收者的接收者类型,将所述待处理广播划分至多个广播队列,其中,每个广播队列对应一个不同的接收者类型,所述待处理广播于所述每个广播队列中的广播接收者与所述每个广播队列对应的接收者类型对应。
79.步骤s420:若所述待处理广播为有序广播,则并行地将所述多个广播队列中的所述待处理广播进行发送,其中,所述待处理广播于所述每个广播队列中被串行发送至所述待处理广播于所述每个广播队列中的广播接收者。
80.在本技术实施例中,步骤s410以及步骤s420可以参阅前述实施例的内容,在此不再赘述。
81.步骤s430:在所述待处理广播的广播发送者以及所述广播接收者对应的应用程序运行的过程中,获取所述应用程序运行时使用的所有服务组件。
82.在本技术实施例中,为进一步提升电子设备的运行速度,避免运行时的卡顿,还可以获取待处理广播的广播发送者以及广播接收者对应的应用程序在运行过程中,所使用的所有服务组件,即service组件。其中,service组件也是安卓系统的四大组件之一;电子设备可以对以上所有服务组件的组件信息进行存储,以在下一次开始运行以上应用程序时,快速地加载应用程序所需的资源。
83.步骤s440:在下一次开始运行所述应用程序时,并行加载所述所有服务组件。
84.在本技术实施例中,在检测到下一次开始运行以上应用程序时,则可以并行加载以上所有服务组件,也就是说,在开始运行以上应用程序时,使以上所有服务组件被并行地全部加载,从而能够快速地加载以上应用程序运行时所需的资源,进而避免应用程序运行时的卡顿。
85.在一些实施方式中,电子设备还可以对可能使用以上应用程序的时刻进行预测,并在预测出将要运行以上应用程序时,提前加载以上应用程序的activity组件,由此加快
以上应用程序的运行速度,避免应用程序运行时的卡顿。其中,电子设备应用程序可能使用的时刻的具体方式可以不做限定,例如,可以根据用户对电子设备的历史使用数据,训练相应的预测模型,以通过训练的预测模型实时预测将要使用以上应用程序的可能性,从而预测出使用以上应用程序的时刻。
86.本技术实施例提供的广播处理方法,通过在对待处理广播进行发送之前,将待处理广播被划分至不同接收者类型的多个广播队列中,并且并行地对多个广播队列中的待处理广播进行发送,因此能够减少发送有序广播时不同接收者类型的接收者之间的影响,加快串行广播的处理速度,避免电子设备的运行卡顿。另外,还对广播的发送者和接收者对应的应用程序在运行时所使用的所有服务组件进行保存,并在下一次开始运行应用程序时,并行加载所需的服务组件,从而能够快速地加载以上应用程序运行时所需的资源,进而避免应用程序运行时的卡顿。
87.下面再通过图6对前述实施例涉及的广播处理方法进行介绍。
88.如图6所示,对于系统的核心组件中的广播和服务组件,可以对其进行代理。其中,可以对广播进行广播代理,将广播根据广播接收者的接收者类型划分至系统应用类型对应的第一广播队列以及第三方应用类型对应的第二广播队列,广播于所述每个广播队列中的广播接收者与每个广播队列对应的接收者类型对应;进入每个广播队列后的广播,按照广播的广播类型(有序广播或无序广播)送入每个广播队列对应的串行发送队列或并行发送队列,然后对串行发送队列中的有序广播按照串行发送的方式进行发送,对并行发送队列中的无序广播按照并行发送的方式进行发送,并且,针对并行发送队列中的无需广播还进行预处理,以避免出现无序广播瞬时发送引发资源短缺的情况。另外,还对应用程序运行时所启动的service组件进行代理,对service组件的组件信息进行保存,在下次开始启动应用程序时,根据保存的组件信息,并发的加载所需的service组件,从而加速应用程序的资源加载速度。
89.请参阅图7,其示出了本技术实施例提供的一种广播处理装置400的结构框图。该广播处理装置400应用上述的电子设备,该广播处理装置400包括:广播划分模块410以及广播发送模块420。其中,所述广播划分模块410用于根据待处理广播对应的广播接收者所属的接收者类型,将所述待处理广播划分至多个广播队列,其中,每个广播队列对应一个不同的接收者类型,所述待处理广播于所述每个广播队列中的广播接收者与所述每个广播队列对应的接收者类型对应;所述广播发送模块420用于若所述待处理广播为有序广播,则并行地将所述多个广播队列中的所述待处理广播进行发送,其中,所述待处理广播于所述每个广播队列中被串行发送至所述待处理广播于所述每个广播队列中的广播接收者。
90.在一些实施方式中,广播划分模块410可以包括第一划分单元以及第二划分单元。第一划分单元用于根据待处理广播对应的所有广播接收者的接收者类型中存在的接收者类型,将所述待处理广播划分至多个广播队列,每个广播队列对应一个不同的接收者类型;第二划分单元用于根据所述每个广播队列对应的接收者类型,将所述所有广播接收者分配至所述每个广播队列,得到所述待处理广播于所述每个广播队列中的广播接收者。
91.在一种可能的实施方式中,第一划分单元可以具体用于:若待处理广播对应的所有广播接收者的接收者类型中存在系统应用类型以及第三方应用类型,将所述待处理广播分发至第一广播队列以及第二广播队列;其中,所述第一广播队列对应的接收者类型为系
统应用类型,所述第二广播队列对应的接收者类型为第三方应用类型。
92.可选地,第二划分单元可以具体用于:将所述所有广播接收者中系统应用类型的广播接收者分配至所述第一广播队列,得到所述待处理广播于所述第一广播队列中的广播接收者;将所述所有广播接收者中第三方应用类型的广播接收者分配至所述第二广播队列,得到所述待处理广播于所述第二广播队列中的广播接收者。
93.在一些实施方式中,广播发送模块420可以包括第一送入单元以及第一发送单元。第一送入单元用于若所述待处理广播为有序广播,将所述每个广播队列中的所述待处理广播送入所述每个广播队列对应的串行发送队列,所述串行发送队列中的广播均为有序广播;第一发送单元用于并行地执行每个所述串行发送队列中的有序广播的广播发送任务,将每个所述串行发送队列中的所述待处理广播,串行发送至所述待处理广播于所述每个广播队列中的广播接收者。
94.在一些实施方式中,广播发送模块420还可以包括第二送入单元、预处理单元以及第二发送单元。第二送入单元用于若所述待处理广播为无序广播,将所述每个广播队列中的所述待处理广播送入所述每个广播队列对应的并行发送队列,所述并行发送队列中的广播均为无序广播;预处理单元用于对所述并行发送队列中的无序广播进行预处理;第二发送单元用于并行地执行每个所述并行发送队列中的无序广播的广播发送任务,将每个所述并行发送队列中的所述待处理广播,并行发送至所述待处理广播于所述每个广播队列中的广播接收者。
95.在一种可能的实施方式中,预处理单元可以具体用于:根据所述并行发送队列中每个无序广播对应的广播接收者的接收者信息,对所述并行发送队列中每个无序广播对应的广播接收者进行过滤。
96.在一种可能的实施方式中,预处理单元可以具体用于:根据所述并行发送队列中的每个无序广播对应的广播发送者的优先级,对所述并行发送队列中的每个无序广播的发送顺序进行更新。
97.在一种可能的实施方式中,预处理单元可以具体用于:根据所述并行发送队列中的每个无序广播在当前时间段内的发送次数,确定所述并行发送队列中的异常广播,所述异常广播对应的所述发送次数大于预设次数;从所述并行发送队列中滤除所述异常广播。
98.在一种可能的实施方式中,第二发送单元可以具体用于:若电子设备的当前运行状态满足预设状态条件,则并行地执行每个所述并行发送队列中的无序广播的广播发送任务,将每个所述并行发送队列中的所述待处理广播,并行发送至所述待处理广播于所述每个广播队列中的广播接收者。
99.可选地,所述预设状态条件包括以下条件中的至少一个:当前的系统资源状态满足预设资源状态条件;当前的运行场景为预设场景。
100.在一些实施方式中,广播处理模块400还可以包括组件获取模块以及组件加载模块。组件获取模块用于在所述待处理广播的广播发送者以及所述广播接收者对应的应用程序运行的过程中,获取所述应用程序运行时使用的所有服务组件;组件加载模块用于在下一次开始运行所述应用程序时,并行加载所述所有服务组件。
101.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
102.在本技术所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
103.另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
104.综上所述,本技术提供的方案,通过根据待处理广播的广播接收者的接收者类型,将待处理广播划分至多个广播队列,每个广播队列对应一个不同的接收者类型,待处理广播于每个广播队列中的广播接收者与每个广播队列对应的接收者类型对应,若该待处理广播为有序广播,则并行地将多个广播队列中的该待处理广播进行发送,其中,待处理广播于每个广播队列中被串行发送至待处理广播于每个广播队列中的广播接收者。由于待处理广播被划分至不同接收者类型的多个广播队列中,并且并行地对多个广播队列中的待处理广播进行发送,因此能够减少发送有序广播时不同接收者类型的接收者之间的影响,加快串行广播的处理速度。
105.请参考图8,其示出了本技术实施例提供的一种电子设备的结构框图。该电子设备100可以是智能手机、平板电脑、智能手表、电子书等能够运行应用程序的电子设备。本技术中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个应用程序配置用于执行如前述方法实施例所描述的方法。
106.处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器110可集成中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
107.存储器120可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
108.请参考图9,其示出了本技术实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
109.计算机可读存储介质800可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计
算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
110.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。

技术特征:
1.一种广播处理方法,其特征在于,所述方法包括:根据待处理广播的广播接收者的接收者类型,将所述待处理广播划分至多个广播队列,其中,每个广播队列对应一个不同的接收者类型,所述待处理广播于所述每个广播队列中的广播接收者与所述每个广播队列对应的接收者类型对应;若所述待处理广播为有序广播,则并行地将所述多个广播队列中的所述待处理广播进行发送,其中,所述待处理广播于所述每个广播队列中被串行发送至所述待处理广播于所述每个广播队列中的广播接收者。2.根据权利要求1所述的方法,其特征在于,所述根据待处理广播的广播接收者的接收者类型,将所述待处理广播划分至多个广播队列,包括:根据待处理广播对应的所有广播接收者的接收者类型中存在的接收者类型,将所述待处理广播划分至多个广播队列,每个广播队列对应一个不同的接收者类型;根据所述每个广播队列对应的接收者类型,将所述所有广播接收者分配至所述每个广播队列,得到所述待处理广播于所述每个广播队列中的广播接收者。3.根据权利要求2所述的方法,其特征在于,所述根据待处理广播对应的所有广播接收者的接收者类型中存在的接收者类型,将所述待处理广播划分至多个广播队列,包括:若待处理广播对应的所有广播接收者的接收者类型中存在系统应用类型以及第三方应用类型,将所述待处理广播分发至第一广播队列以及第二广播队列;其中,所述第一广播队列对应的接收者类型为系统应用类型,所述第二广播队列对应的接收者类型为第三方应用类型。4.根据权利要求3所述的方法,其特征在于,所述根据所述每个广播队列对应的接收者类型,将所述所有广播接收者分配至所述每个广播队列,得到所述待处理广播于所述每个广播队列中的广播接收者,包括将所述所有广播接收者中系统应用类型的广播接收者分配至所述第一广播队列,得到所述待处理广播于所述第一广播队列中的广播接收者;将所述所有广播接收者中第三方应用类型的广播接收者分配至所述第二广播队列,得到所述待处理广播于所述第二广播队列中的广播接收者。5.根据权利要求1所述的方法,其特征在于,所述若所述待处理广播为有序广播,则并行地将所述每个广播队列中的所述待处理广播,串行发送至所述待处理广播于所述每个广播队列中的广播接收者,包括:若所述待处理广播为有序广播,将所述每个广播队列中的所述待处理广播送入所述每个广播队列对应的串行发送队列,所述串行发送队列中的广播均为有序广播;并行地执行每个所述串行发送队列中的有序广播的广播发送任务,将每个所述串行发送队列中的所述待处理广播,串行发送至所述待处理广播于所述每个广播队列中的广播接收者。6.根据权利要求1-5任一项所述的方法,其特征在于,在所述根据待处理广播的广播接收者的接收者类型,将所述待处理广播划分至多个广播队列之后,所述方法还包括:若所述待处理广播为无序广播,将所述每个广播队列中的所述待处理广播送入所述每个广播队列对应的并行发送队列,所述并行发送队列中的广播均为无序广播;对所述并行发送队列中的无序广播进行预处理;
并行地执行每个所述并行发送队列中的无序广播的广播发送任务,将每个所述并行发送队列中的所述待处理广播,并行发送至所述待处理广播于所述每个广播队列中的广播接收者。7.根据权利要求6所述的方法,其特征在于,所述对所述并行发送队列中的无序广播进行预处理,包括:根据所述并行发送队列中每个无序广播对应的广播接收者的接收者信息,对所述并行发送队列中每个无序广播对应的广播接收者进行过滤。8.根据权利要求6所述的方法,其特征在于,所述对所述并行发送队列中的无序广播进行预处理,包括:根据所述并行发送队列中的每个无序广播对应的广播发送者的优先级,对所述并行发送队列中的每个无序广播的发送顺序进行更新。9.根据权利要求6所述的方法,其特征在于,所述对所述并行发送队列中的无序广播进行预处理,包括:根据所述并行发送队列中的每个无序广播在当前时间段内的发送次数,确定所述并行发送队列中的异常广播,所述异常广播对应的所述发送次数大于预设次数;从所述并行发送队列中滤除所述异常广播。10.根据权利要求6所述的方法,其特征在于,所述并行地执行每个所述并行发送队列中的无序广播的广播发送任务,将每个所述并行发送队列中的所述待处理广播,并行发送至所述待处理广播于所述每个广播队列中的广播接收者,包括:若电子设备的当前运行状态满足预设状态条件,则并行地执行每个所述并行发送队列中的无序广播的广播发送任务,将每个所述并行发送队列中的所述待处理广播,并行发送至所述待处理广播于所述每个广播队列中的广播接收者。11.根据权利要求10所述的方法,其特征在于,所述预设状态条件包括以下条件中的至少一个:当前的系统资源状态满足预设资源状态条件;当前的运行场景为预设场景。12.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:在所述待处理广播的广播发送者以及所述广播接收者对应的应用程序运行的过程中,获取所述应用程序运行时使用的所有服务组件;在下一次开始运行所述应用程序时,并行加载所述所有服务组件。13.一种广播处理装置,其特征在于,所述装置包括:广播划分模块以及广播发送模块,其中,所述广播划分模块用于根据待处理广播对应的广播接收者所属的接收者类型,将所述待处理广播划分至多个广播队列,其中,每个广播队列对应一个不同的接收者类型,所述待处理广播于所述每个广播队列中的广播接收者与所述每个广播队列对应的接收者类型对应;所述广播发送模块用于若所述待处理广播为有序广播,则并行地将所述多个广播队列中的所述待处理广播进行发送,其中,所述待处理广播于所述每个广播队列中被串行发送至所述待处理广播于所述每个广播队列中的广播接收者。
14.一种电子设备,其特征在于,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-12任一项所述的方法。15.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-12任一项所述的方法。

技术总结
本申请公开了一种广播处理方法、装置、电子设备及存储介质,该广播处理方法包括:根据待处理广播的广播接收者的接收者类型,将所述待处理广播划分至多个广播队列,其中,每个广播队列对应一个不同的接收者类型,所述待处理广播于所述每个广播队列中的广播接收者与所述每个广播队列对应的接收者类型对应;若所述待处理广播为有序广播,则并行地将所述多个广播队列中的所述待处理广播进行发送,其中,所述待处理广播于所述每个广播队列中被串行发送至所述待处理广播于所述每个广播队列中的广播接收者。本方法可以实现减少串行广播的不同接收者类型的接收者之间的影响,加快串行广播的处理速度。播的处理速度。播的处理速度。


技术研发人员:吏渊 刘桦 张剑秋
受保护的技术使用者:OPPO广东移动通信有限公司
技术研发日:2022.07.25
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-346.html

最新回复(0)