广播方法和设备与流程

文档序号:35373280发布日期:2023-09-08 10:34阅读:101来源:国知局
广播方法和设备与流程

本技术涉及电子设备,特别涉及一种广播方法和设备。


背景技术:

1、电子设备在完成系统升级或者检测到用户触发的重启操作后,电子设备会进行开机重启。在电子设备开机完成后的短时间内,如开机后的5分钟内,电子设备容易出现卡顿掉帧现象,严重时还会导致系统界面无响应。因此,在开机场景如何使电子设备稳定运行成为需要解决的问题。


技术实现思路

1、本技术提供了一种广播方法和设备,可在电子设备开机后且系统负载较高时对开机广播进行延时广播,由此以尽量降低电子设备负载,使电子设备在开机场景稳定运行。

2、第一方面,本发明实施例提供了一种广播方法。该方法包括:当电子设备获取到开机广播时,判断所述电子设备的第一系统负载是否大于等于第一设定值。若所述第一系统负载大于等于所述第一设定值,则将所述开机广播添加至代理广播队列;当所述开机广播在所述代理广播队列中停留第一时长后,将所述开机广播发送给第一应用,以启动所述第一应用的进程。

3、电子设备开机后会向应用层的应用发送开机广播,如向第一应用发送开机广播。第一应用是需要监听开机广播的应用。此处描述的第一应用在实际场景可以对应一个或者多个应用。第一应用接收到开机后,启动第一应用的进程。第一应用的进程在电子设备运行。如果运行第一应用的进程时,电子设备本身的系统负载已经比较高,再运行第一应用的进程会进一步推高系统负载,造成电子设备的运行卡顿。

4、在本发明实施例方法中,当电子设备获取到开机广播后,首先判断电子设备的第一系统负载是否大于等于第一设定值。如果电子设备的第一系统负载大于等于第一设定值,表示电子设备当前的系统负载比较高,此时可以对开机广播延时。即暂不将开机广播发送给第一应用。当开机广播延时一段时间(即第一时长)后,再将开机广播发送给第一应用并启动第一应用的进程。由此可以避免在电子设备高负载时通过开机广播拉起应用进程的运行,避免进一步推高电子设备的系统负载,以确保电子设备的稳定运行。

5、上述第一系统负载表示电子设备获取到开机广播时的当前系统负载。在其中一种可能的实现方式中,电子设备设置有负载监控模块。所述负载监控模块用于按照第一时间步长周期性地检测电子设备的系统负载;所述当电子设备获取到开机广播时,所述方法还包括:从所述负载监控模块获取距离当前时间最近的检测周期的系统负载作为所述第一系统负载。在其中一种可能的实现方式中,当电子设备获取到开机广播时,电子设备启动负载监控模块按照第一时间步长周期性地检测电子设备的系统负载。

6、在其中一种可能的实现方式中,负载监控模块按照第一时间步长周期地获取的系统负载包括处理器运行负载。处理器运行负载可以根据处理器的运行时间确定。例如,可以获取处理器在一个检测周期的运行态时间和运行总时间。可选的,处理器在一个检测周期的运行态时间可以包括处理器在该检测周期的用户态时间user、用户态时间nice和内核态时间system。可选的,处理器在一个检测周期的运行总时间包括处理器在该检测周期的用户态时间user、用户态时间nice、内核态时间system和空闲时间idle。可选的,可以将运行态时间和运行总时间的比值作为处理器运行负载。

7、在其中一种可能的实现方式中,电子设备获取到开机广播后获取第一系统负载,所述第一系统负载包括第一处理器运行负载。第一处理器运行负载表示距离当前时间最近的处理器运行负载。相应的,所述第一系统负载大于等于所述第一设定值,包括:所述第一处理器运行负载大于等于所述第一设定值。在此实施例方式中,当第一处理器运行负载大于等于第一设定值时,说明电子设备的系统负载较高,需要对开机广播进行延时。当第一处理器运行负载小于第一设定值时,则不对开机广播延时,并将开机广播发送给第一应用。

8、在其中一种可能的实现方式中,上述第一系统负载除了包括第一处理器运行负载之外,还包括电子设备的屏幕状态。电子设备的屏幕状态包括亮屏状态或者灭屏状态。其中,当电子设备为亮屏状态时,电子设备有亮屏显示界面的开销。而且,当电子设备处于亮屏状态时,还可能会检测到作用于电子设备屏幕的操作动作。当检测到该操作动作时,电子设备需要响应该操作动作并更新显示界面。可见,在电子设备的亮屏场景系统开销较高,而且对界面显示的流畅性也较高。因此,当电子设备亮屏且第一处理器运行负载大于等于第一设定值时,说明在亮屏场景电子设备的系统负载已经较高了,此时再通过开机广播启动应用进程很可能会造成界面卡顿。因此,当电子设备处于亮屏状态且电子设备的第一处理器运行负载大于等于第一设定值时,对开机广播延时。如果电子设备处于亮屏状态但电子设备的第一处理器运行负载小于第一设定值,说明电子设备当前的系统负载仍可以支持亮屏开销和开机广播拉起应用进程,此时无需对开机广播延时,可以直接将开机广播发送给第一应用。

9、在其中一种可能的实现方式中,当获取到开机广播时,电子设备处于灭屏状态,说明电子设备没有显示界面和更新界面的需求,此时可以无需对开机广播延时,可以直接将开机广播发送给第一应用。

10、在其中一种可能的实现方式中,在决策是否对开机广播进行延时的场景中,除了考虑系统负载的因素之外,还需要考虑开机广播本身的广播参数。本发明实施例对开机广播设置第一条件。当开机广播的广播参数满足第一条件且所述第一系统负载大于等于所述第一设定值时,将所述开机广播添加至代理广播队列。

11、可选的,开机广播满足第一条件,说明开机广播是电子设备开机非必要的广播、或者开机广播拉起的应用是电子设备开机非必要的应用。通过设置的第一条件,可以避免对开机必要广播、必要应用执行延时,确保电子设备的正常开机运行。可选的,在对开机广播进行延时决策时,还可以考虑开机广播在当前开机后是否已经设置过延时。如果开机广播在电子设备开机后的预设时间内已经设置过延时,则不对开机广播再次执行延时。由此可以避免对开机广播进行多次延时,避免该开机广播的正常广播。基于上述考虑,开机广播的广播参数满足第一条件可以包括满足以下中的一项或多项的组合:广播消息类型为预设类型、广播消息的广播接收者包含于预设白名单或者在当前开机完成后广播消息未进行过延时。

12、在其中一种可能的实现方式中,上述广播方法应用于电子设备开机后的预设时间内。所述预设时间可以根据实际需要设置,如开机完成后的5分钟、6分钟、7分钟或者其它可能的时间内。可选的,可以将获取到开机广播的时间作为该预设时间的起点。可选的,电子设备获取到开机广播后,继续检测其它广播消息。如果电子设备在获取到所述开机广播后的预设时间内,若还检测到第一广播消息,则获取电子设备的第二系统负载。可选的,电子设备可以通过上述负载监控模块获取第二系统负载。第二系统负载为负载监控模块检测到的距离当前时间最近的检测周期的系统负载。之后,电子设备判断所述第二系统负载是否大于等于所述第一设定值。若所述第二系统负载大于等于所述第一设定值,则将所述第一广播消息添加至所述代理广播队列的队尾。

13、可选的,第二系统负载的表示方式与第一系统负载相同。可选的,电子设备判断所述第二系统负载是否大于等于所述第一设定值的方式与第一系统负载的判断方式相同,此处不再赘述。可选的,电子设备在决策是否将第一广播消息添加至代理广播队列时,还可以判断第一广播消息的广播参数是否满足第一条件,其判断方式与开机广播的判断方式相同,此处不再赘述。

14、在其中一种可能的实现方式中,当确定对开机广播进行延时后,将开机广播添加至代理广播队列。开机广播在代理广播队列的停留时间表示开机广播的延时时长(也称为第一时长)。同理,当确定对上述第一广播消息信息延时后,将第一广播消息添加至代理广播队列的队尾。第一广播消息在代理广播队列的停留时间表示第一广播消息的延时时长。

15、在其中一种可能的实现方式中,当开机广播在代理广播队列停留的第一时长大于等于延时阈值时,表示开机广播已经延时了较长时间,此时可以将开机广播发送给第一应用。

16、在其中一种可能的实现方式中,当开机广播在代理广播队列停留第一时长,第一时长小于延时阈值时,可以获取电子设备的第三系统负载。如果第三系统负载小于等于第二设定值,说明经过第一时长后电子设备的系统负载回落到了较低水平,此时可以将开机广播发送给第一应用。

17、在其中一种可能的实现方式中,若所述第一时长小于所述延时阈值,并且经过所述第一时长后所述电子设备的第三系统负载仍大于所述第二设定值,说明开机广播的延时时长仍在可允许的范围且电子设备的系统负载还未回落到较低水平,此时所述开机广播继续停留在所述代理广播队列。并且,根据开机广播在代理广播队列的停留时间,可以进一步更新所述第一时长以及更新所述第三系统负载。根据更新后的所述第一时长或者更新后的所述第三系统负载,可以再次判断是否将所述开机广播发送给第一应用。

18、在其中一种可能的实现方式中,第三系统负载可以表示距离当前时间最近的系统负载。此处的当前时间为开机广播延时第一时长后的当前时间。可选的,第三系统负载可以包括第二处理器运行负载、电子设备的屏幕状态或者作用于电子设备屏幕的操作动作。所述第三系统负载小于等于第二设定值,包括:所述第二处理器运行负载小于等于所述第二设定值,此时说明电子设备的系统负载回落到了较低水平,可以将开机广播发送给第一应用。可选的,上述第二处理器运行负载的计算方式可以参见第一处理器运行负载,此处不再赘述。或者,所述电子设备的屏幕状态为灭屏状态,此时电子设备没有界面更新显示需求,也即没有界面卡顿问题,因此可以将开机广播发送给第一应用。或者,所述电子设备的屏幕状态为亮屏状态且所述第二处理器运行负载小于等于所述第二设定值,说明电子设备的系统负载回落到了较低水平,可以支持亮屏开销,因此可以将开机广播发送给第一应用。或者,所述电子设备的屏幕状态为亮屏状态、未检测到作用于所述电子设备屏幕的操作动作且所述第二处理器运行负载小于等于所述第二设定值。说明在电子设备的亮屏状态没有响应操作动作和界面更新的开销,并且系统负载回落到了较低水平,因此可以将开机广播发送给第一应用。在其中一种可能的实现方式中,

19、在其中一种可能的实现方式中,所述代理广播队列关联有定时机制,所述定时机制用于按照第二时间步长周期性地触发定时消息;所述方法还包括:当接收到所述定时机制触发的定时消息时,计算所述开机广播在所述代理广播队列停留的所述第一时长。

20、在其中一种可能的实现方式中,每次接收到定时机制触发的定时消息时均计算第一时长。每次计算第一时长后均判断是否将开机广播发送给第一应用。例如,在t1时间接收到定时消息,则将t1时间-开机广播添加至代理广播队列的时间,得到第一时长。如果第一时长大于等于延时阈值或者电子设备在t1时间的第三系统负载小于等于第二设定值,则将开机广播发送给第一应用。如果第一时长小于延时阈值并且电子设备在t1时间的第三系统负载大于第二设定值,则等待下一个定时消息。假设在t2时间接收到下一个定时消息,则重新计算第一时长,并重新获取电子设备在t2时间的第三系统负载。根据更新后的第一时长或者第三系统负载,再次判断是否将开机广播发送给第一应用。

21、在其中一种可能的实现方式中,将所述开机广播发送给第一应用之后,所述代理广播队列还包括第一广播消息、第二广播消息……第n广播消息,所述方法还包括:将所述第一广播消息、所述第二广播消息……第x广播消息逐个发送给待接收相应广播消息的应用直至接收到所述定时机制的下一个定时消息,x小于n。响应于所述下一个定时消息,根据第x+1广播消息在所述代理广播队列停留的第一时长将所述第x+1广播消息发送给待接收所述第x+1广播消息的应用。在此方式中,将开机广播发送给第一应用后,说明电子设备当前的系统负载或者剩余的广播消息满足延时要求,此时可以对开机广播后续的广播消息逐个广播,直至接收到下一个定时消息。当接收到下一个定时消息时,再次根据延时时长和系统负载判断是否对第x+1广播消息进行广播。

22、在其中一种可能的实现方式中,将所述开机广播发送给第一应用之后,所述代理广播队列还包括第一广播消息、第二广播消息……第n广播消息,所述方法还包括:根据各个广播消息的延时时长和延时后的系统负载决策是否将广播消息发送给对应的应用。

23、在其中一种可能的实现方式中,所述将所述开机广播添加至代理广播队列,包括:根据开机广播的广播参数,复制ams维护的广播队列中的开机广播。将复制的所述开机广播添加至所述代理广播队列并删除ams维护的广播队列中的开机广播。通过此方式,可以实现对开机广播的延时,并且可以不影响ams对其维护的广播队列的下一个广播消息的分发。

24、在其中一种可能的实现方式中,所述将所述开机广播发送给第一应用,包括:根据所述开机广播的广播参数,复制所述代理广播队列的所述开机广播。将复制的所述开机广播添加至ams维护的广播队列,并将所述代理广播队列的所述开机广播删除,所述ams用于将所述开机广播发送给第一应用。通过此方式,可以将代理广播队列的开机广播提供给ams,以通过ams将开机广播发送给第一应用。

25、第二方面,本发明实施例提供了一种电子设备,包括:所述电子设备包括用于存储程序指令的存储器和用于执行所述程序指令的处理器,其中,当所述程序指令被所述处理器执行时,触发所述电子设备执行如上述第一方面或者第一方面任一项所述的方法。

26、第三方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在电子设备上运行时,使得电子设备执行如上述第一方面或者第一方面任一项所述的方法。

27、应当理解的是,本发明实施例第二至三方面与本技术的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。

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