一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用执行绘制操作的方法及电子设备与流程

2021-10-27 13:59:00 来源:中国专利 TAG:绘制 电子设备 操作方法 执行 电子


1.本技术涉及电子技术领域,尤其涉及应用执行绘制操作的方法及电子设备。


背景技术:

2.随着智能手机、平板电脑、可穿戴设备等电子设备的普及,用户在使用电子设备如智能手机时,往往不经意间就开启了多个乃至数十个应用程序。而在使用时,智能设备的屏幕只能同时展现少数几个应用程序在屏幕上去供用户进行浏览、交互。用户如果没有及时彻底关闭位于后台的应用程序,在使用一段时间后,会感觉到明显的卡顿、发热以及耗电增加。
3.这是因为,应用程序从前台应用变为后台应用后,仍然会占用电子设备的系统资源,如内存、cpu计算负载等,并且进行绘制操作。对于后台应用来说,由于后台应用并不为用户提供可视化的界面或视图,进行的绘制操作为无效的绘制操作。但是,该无效的绘制操作仍然会占用电子设备的系统资源,导致电子设备的耗电增加以及挤占前台应用的系统资源。
4.为了降低后台应用对系统资源的占用,当应用程序变为后台应用时或者一段时间后,电子设备可以主动的冻结该应用,使该应用不会持续的占用系统资源。
5.但是,被冻结的应用常常会被广播、服务等唤醒,唤醒后的后台应用与其他未被冻结的后台应用一样,仍然会占用系统资源,进行无效的绘制操作,导致后台应用挤占前台应用的系统资源,并且导致电子设备的耗电增加。


技术实现要素:

6.本技术实施例提供了一种应用执行绘制操作的方法,通过拦截同步垂直信号或者拦截编舞者(choregrapher)中的回调方法,或者删除编舞者保存的动画事件任务,降低后台应用执行无效的绘制操作的频率,进而减少了后台应用对系统资源的占用,使得电子设备的耗电降低。
7.第一方面,本技术提供了一种应用执行绘制操作的方法,该方法包括:电子设备启动第一应用程序;当该第一应用程序为前台应用时,该电子设备以第一频率执行绘制操作,该绘制操作用于为该第一应用程序绘制视图;当该第一应用程序从前台应用切换为后台应用后,该电子设备以第二频率执行该绘制操作,该第二频率小于该第一频率;其中,该第一频率为该第一应用程序接收垂直同步信号的频率。
8.在上述实施例中,电子设备确定应用程序从前台应用转变为后台应用后,降低应用程序的绘制频率,并且绘制频率低于应用程序接收垂直同步信号的频率,能够降低后台应用对系统资源的占用,并且可以降低电子设备的发热、电量消耗。
9.结合第一方面的一些实施例,在一些实施例中,当该第一应用程序从前台应用切换为后台应用后,该电子设备指示该第一应用程序的编舞者只对接收到的k个垂直同步信号中的n个垂直同步信号作出响应,使得该电子设备以该第二频率执行该绘制操作,该k为
正整数,该n为小于该k的正整数。
10.在上述实施例中,电子设备通过指示应用程序的编舞者只响应部分接收到的垂直同步信号,降低了执行绘制操作的频率,进而降低了后台应用对系统资源的占用,并且降低了电子设备的发热、电量消耗。
11.结合第一方面的一些实施例,在一些实施例中,当该第一应用程序从前台应用切换为后台应用后,该电子设备指示该第一应用程序的编舞者只处理接收到的k个垂直同步信号中n个垂直同步信号所对应的动画事件任务,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于该k的正整数。
12.在上述实施例中,电子设备通过指示应用程序的编舞者只处理接收到的垂直同步信号中部分垂直同步信号对应的动画事件任务,降低了执行绘制操作的频率,进而降低了后台应用对系统资源的占用,并且降低了电子设备的发热、电量消耗。
13.结合第一方面的一些实施例,在一些实施例中,当该第一应用程序从前台应用切换为后台应用后,该电子设备删除该第一应用程序的编舞者接收到的k个垂直同步信号中的k

n个垂直同步信号所对应的动画事件任务,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于该k的正整数。
14.在上述实施例中,电子设备通过删除应用程序的编舞者保存的动画事件任务,使得后台应用执行的绘制操作为空操作,进而降低了后台应用对系统资源的占用,并且降低了电子设备的发热、电量消耗。
15.结合第一方面的一些实施例,在一些实施例中,该n与该k的比值对应于该第二频率与该第一频率的比值。
16.结合第一方面的一些实施例,在一些实施例中,该n与该k的比值等于该第二频率与该第一频率的比值。
17.结合第一方面的一些实施例,在一些实施例中,第一应用程序从前台应用切换为后台应用后,当应用程序没有以该第一频率接收垂直同步信号,而是以该第三频率接收垂直同步信号时,该电子设备以低于第四频率的频率执行该绘制操作,该第三频率小于该第一频率,该第四频率小于等于该第三频率并且大于0。
18.在上述实施例中,允许应用程序以不超过某个值的频率去执行绘制操作,降低了执行绘制操作的频率,进而降低了后台应用对系统资源的占用,并且降低了电子设备的发热、电量消耗。
19.结合第一方面的一些实施例,在一些实施例中,当该第一应用程序接收第一垂直同步信号时,该电子设备确定该第一应用程序接收该第一垂直同步信号与该第一应用程序上一次执行绘制操作时间之间的时间差是否小于该第四频率的倒数;若是,该电子设备拦截第一绘制操作,该第一绘制操作为该第一应用程序响应于第一垂直同步信号后执行的绘制操作;若否,该电子设备执行该第一绘制操作。
20.在上述实施例中,当应用程序出于非刷新界面的目的执行绘制操作时,允许应用程序以不超过某个值的频率去执行绘制操作,降低了执行绘制操作的频率,进而降低了后台应用对系统资源的占用,并且降低了电子设备的发热、电量消耗。并且,在系统的封闭性和性能之间取得动态了平衡。
21.结合第一方面的一些实施例,在一些实施例中,该电子设备根据绘制频率限制策
略和该第一应用程序确定该第二频率。
22.在上述实施例中,电子设备可以根据绘制频率限制策略确定不同应用程序的执行绘制操作的频率,有助于同时实现系统资源的差异化分配,并且降低了电子设备的发热、电量消耗。
23.结合第一方面的一些实施例,在一些实施例中,该电子设备根据活动管理服务和/或该第一应用程序的进程的cpuset参数确定该第一应用程序为前台应用或者后台应用。
24.在上述实施例中,可以根据活动管理服务和/或应用程序的进程的cpuset参数确定应用程序是否从前台应用转变为后台应用,进而可以提高后台应用的识别准确性,更精确的降低后台应用的绘制操作的执行频率,进而降低电子设备的发热、电量消耗。
25.结合第一方面的一些实施例,在一些实施例中,该n等于0。
26.在上述实施例中,当应用程序为后台应用时,电子设备可以指示应用程序不执行绘制操作,使得应用程序释放系统资源,进而降低电子设备的发热、电量消耗。
27.结合第一方面的一些实施例,在一些实施例中,该n等于k。
28.在上述实施例中,当应用程序为后台应用时,每当应用程序收到垂直同步信号时/后,可以删除该应用程序保存的动画事件任务,使得应用程序执行的绘制操作全部为空操作,进而释放更多的系统资源,进而降低电子设备的发热、电量消耗。
29.第二方面,本技术提供了一种应用执行绘制操作的方法,该方法包括:电子设备启动第一应用程序;该电子设备显示该第一应用程序的界面,该电子设备以第一频率执行绘制操作,该绘制操作用于为该第一应用程序绘制视图;该电子设备关闭该第一应用程序的界面的显示,该电子设备以第二频率执行该绘制操作,该第二频率小于该第一频率;其中,该第一频率为该第一应用程序接收垂直同步信号的频率。
30.在上述实施例中,当应用程序关闭界面显示时,没必要通过执行绘制操作去刷新界面,电子设备可以降低应用执行绘制操作的频率,能够降低后台应用对系统资源的占用,并且可以降低电子设备的发热、电量消耗。
31.结合第二方面的一些实施例,在一些实施例中,该电子设备关闭该第一应用程序的界面的显示,该第一应用程序为后台应用。
32.在上述实施例中,当应用程序不显示界面时,并且为后台应用时,没必要通过执行绘制操作去刷新界面,电子设备可以降低应用执行绘制操作的频率,能够降低后台应用对系统资源的占用,并且可以降低电子设备的发热、电量消耗。
33.结合第二方面的一些实施例,在一些实施例中,该电子设备指示该第一应用程序的编舞者只对接收到的k个垂直同步信号中的n个垂直同步信号作出响应,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于k的正整数。
34.在上述实施例中,该电子设备指示该第一应用程序的编舞者只处理接收到的k个垂直同步信号中n个垂直同步信号所对应的动画事件任务,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于k的正整数。
35.结合第二方面的一些实施例,在一些实施例中,该电子设备不显示该第一应用程序的界面时,该电子设备指示该第一应用程序的编舞者只处理接收到的k个垂直同步信号中n个垂直同步信号所对应的动画事件任务,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于k的正整数。
36.在上述实施例中,电子设备通过指示应用程序的编舞者只处理接收到的垂直同步信号中部分垂直同步信号对应的动画事件任务,降低了执行绘制操作的频率,进而降低了后台应用对系统资源的占用,并且降低了电子设备的发热、电量消耗。
37.结合第二方面的一些实施例,在一些实施例中,该电子设备删除该第一应用程序的编舞者接收到的k个垂直同步信号中的k

n个垂直同步信号所对应的动画事件任务,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于k的正整数。
38.在上述实施例中,电子设备通过删除应用程序的编舞者保存的动画事件任务,使得后台应用执行的绘制操作为空操作,进而降低了后台应用对系统资源的占用,并且降低了电子设备的发热、电量消耗。
39.结合第二方面的一些实施例,在一些实施例中,该n与该k的比值对应于该第二频率与该第一频率的比值。
40.结合第二方面的一些实施例,在一些实施例中,该n与该k的比值等于该第二频率与该第一频率的比值。
41.结合第二方面的一些实施例,在一些实施例中,该电子设备关闭该第一应用程序的界面的显示后,当应用程序没有以该第一频率接收垂直同步信号,而是以该第三频率接收垂直同步信号时,该电子设备以低于第四频率的频率执行该绘制操作,该第三频率小于该第一频率,该第四频率小于等于该第三频率并且大于0。
42.在上述实施例中,允许应用程序以不超过某个值的频率去执行绘制操作,降低了执行绘制操作的频率,进而降低了后台应用对系统资源的占用,并且降低了电子设备的发热、电量消耗。
43.结合第二方面的一些实施例,在一些实施例中,当该第一应用程序接收第一垂直同步信号时,该电子设备确定该第一应用程序接收该第一垂直同步信号与该第一应用程序上一次执行绘制操作时间之间的时间差是否小于该第四频率的倒数;若是,该电子设备拦截第一绘制操作,该第一绘制操作为该第一应用程序响应于第一垂直同步信号后执行的绘制操作;若否,该电子设备执行该第一绘制操作。
44.在上述实施例中,当应用程序出于非刷新界面的目的执行绘制操作时,允许应用程序以不超过某个值的频率去执行绘制操作,降低了执行绘制操作的频率,进而降低了后台应用对系统资源的占用,并且降低了电子设备的发热、电量消耗。
45.结合第二方面的一些实施例,在一些实施例中,该电子设备根据绘制频率限制策略和该第一应用程序确定该第二频率。
46.在上述实施例中,电子设备可以根据绘制频率限制策略确定不同应用程序的执行绘制操作的频率,有助于同时实现系统资源的差异化分配,并且降低了电子设备的发热、电量消耗。
47.结合第二方面的一些实施例,在一些实施例中,该电子设备根据活动管理服务和/或该第一应用程序的进程的cpuset参数确定电子设备是否显示该第一应用程序的界面或者确定该第一应用程序是前台应用还是后台应用。
48.在上述实施例中,可以根据活动管理服务和/或应用程序的进程的cpuset参数确定应用程序是否从前台应用转变为后台应用,进而可以提高后台应用的识别准确性,更精确的降低后台应用的绘制操作的执行频率,进而降低电子设备的发热、电量消耗。
49.结合第二方面的一些实施例,在一些实施例中,该n等于0。
50.在上述实施例中,当应用程序为后台应用时,电子设备可以指示应用程序不执行绘制操作,使得应用程序释放系统资源,进而降低电子设备的发热、电量消耗。
51.结合第二方面的一些实施例,在一些实施例中,该n等于k。
52.在上述实施例中,当应用程序为后台应用时,每当应用程序收到垂直同步信号时/后,可以删除该应用程序保存的动画事件任务,使得应用程序执行的绘制操作全部为空操作,进而释放更多的系统资源,进而降低电子设备的发热、电量消耗。
53.第三方面,本技术实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:
54.启动第一应用程序;当该第一应用程序为前台应用时,以第一频率执行绘制操作,该绘制操作用于为该第一应用程序绘制视图;当该第一应用程序从前台应用切换为后台应用后,以第二频率执行该绘制操作,该第二频率小于该第一频率;其中,该第一频率为该第一应用程序接收垂直同步信号的频率。
55.结合第三方面的一些实施例,在一些实施例中,当该第一应用程序从前台应用切换为后台应用后,指示该第一应用程序的编舞者只对接收到的k个垂直同步信号中的n个垂直同步信号作出响应,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于k的正整数。
56.结合第三方面的一些实施例,在一些实施例中,当该第一应用程序从前台应用切换为后台应用后,指示该第一应用程序的编舞者只处理接收到的k个垂直同步信号中n个垂直同步信号所对应的动画事件任务,使得该电子设备以该第二频率执行该绘制操作,该n为小于k的正整数。
57.结合第三方面的一些实施例,在一些实施例中,当该第一应用程序从前台应用切换为后台应用后,删除该第一应用程序的编舞者接收到的k个垂直同步信号中的k

n个垂直同步信号所对应的动画事件任务,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于k的正整数。
58.结合第三方面的一些实施例,该n与该k的比值对应于该第二频率与该第一频率的比值。
59.结合第三方面的一些实施例,该n与该k的比值等于该第二频率与该第一频率的比值。
60.结合第三方面的一些实施例,在一些实施例中,当该第一应用程序从前台应用切换为后台应用后,并且当应用程序没有以该第一频率接收垂直同步信号,而是以该第三频率接收垂直同步信号时,该电子设备以低于第四频率的频率执行该绘制操作,该第三频率小于该第一频率,该第四频率小于等于该第三频率并且大于0。
61.结合第三方面的一些实施例,在一些实施例中,当该第一应用程序接收第一垂直同步信号时,该电子设备确定该第一应用程序接收该第一垂直同步信号与该第一应用程序上一次执行绘制操作时间之间的时间差是否小于该第四频率的倒数;若是,该电子设备拦截第一绘制操作,该第一绘制操作为该第一应用程序响应于第一垂直同步信号后执行的绘
制操作;若否,该电子设备执行该第一绘制操作。
62.结合第三方面的一些实施例,在一些实施例中,根据绘制频率限制策略和该第一应用程序确定该第二频率。
63.结合第三方面的一些实施例,在一些实施例中,根据活动管理服务和/或该第一应用程序的进程的cpuset参数确定该第一应用程序为前台应用或者后台应用。
64.结合第三方面的一些实施例,在一些实施例中,该n等于0;
65.结合第三方面的一些实施例,在一些实施例中,该n等于k;
66.第四方面,本技术实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:
67.启动第一应用程序;所述电子设备显示所述第一应用程序的界面,以第一频率执行绘制操作,所述绘制操作用于为所述第一应用程序绘制视图;关闭所述第一应用程序的界面的显示,以第二频率执行所述绘制操作,所述第二频率小于所述第一频率;其中,所述第一频率为所述第一应用程序接收垂直同步信号的频率。
68.结合第四方面的一些实施例,关闭所述第一应用程序的界面的显示,该第一应用程序为后台应用。
69.结合第四方面的一些实施例,在一些实施例中,当该电子设备不显示该第一应用程序的界面时,指示该第一应用程序的编舞者只对接收到的k个垂直同步信号中的n个垂直同步信号作出响应,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于该k的正整数。
70.结合第四方面的一些实施例,在一些实施例中,当该电子设备不显示该第一应用程序的界面时,指示该第一应用程序的编舞者只处理接收到的k个垂直同步信号中n个垂直同步信号所对应的动画事件任务,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于该k的正整数。
71.结合第四方面的一些实施例,在一些实施例中,当该电子设备不显示该第一应用程序的界面时,以第二频率执行该绘制操作,该电子设备删除该第一应用程序的编舞者接收到的k个垂直同步信号中的k

n个垂直同步信号所对应的动画事件任务,使得该电子设备以该第二频率执行该绘制操作,该k为正整数,该n为小于该k的正整数。
72.结合第四方面的一些实施例,在一些实施例中,该n与该k的比值对应于该第二频率与该第一频率的比值。
73.结合第四方面的一些实施例,在一些实施例中,该n与该k的比值等于该第二频率与该第一频率的比值。
74.结合第四方面的一些实施例,在一些实施例中,关闭所述第一应用程序的界面的显示后,当应用程序没有以该第一频率接收垂直同步信号,而是以该第三频率接收垂直同步信号时,该电子设备以低于第四频率的频率执行该绘制操作,该第三频率小于该第一频率,该第四频率小于等于该第三频率并且大于0。
75.结合第四方面的一些实施例,在一些实施例中,当该第一应用程序接收第一垂直同步信号时,该电子设备确定该第一应用程序接收该第一垂直同步信号与该第一应用程序
上一次执行绘制操作时间之间的时间差是否小于该第四频率的倒数;若是,该电子设备拦截第一绘制操作,该第一绘制操作为该第一应用程序响应于第一垂直同步信号后执行的绘制操作;若否,该电子设备执行该第一绘制操作。
76.结合第四方面的一些实施例,在一些实施例中,根据绘制频率限制策略和该第一应用程序确定该第二频率。
77.结合第四方面的一些实施例,在一些实施例中,根据活动管理服务和/或该第一应用程序的进程的cpuset参数确定电子设备是否显示该第一应用程序的界面,或者确定该第一应用程序是前台应用还是后台应用。
78.结合第四方面的一些实施例,在一些实施例中,该n等于0;
79.结合第四方面的一些实施例,在一些实施例中,该n等于k;
80.第五方面,本技术实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法,或如第二方面以及第二方面中任一可能的实现方式描述的方法。
81.第六方面,申请实施例提供一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法,或如第二方面以及第二方面中任一可能的实现方式描述的方法。
82.第七方面,申请实施例提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,得该电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法,或如第二方面以及第二方面中任一可能的实现方式描述的方法。
83.可以理解地,上述第三方面、第四方面提供的电子设备,第五方面提供的芯片系统,第六方面提供的计算机程序产品和第七方面提供的计算机存储介质均用于执行本技术实施例所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
84.图1为本技术涉及的前台应用与后台应用转换的一个示例性示意图。
85.图2为本技术涉及的活动的生命周期的一个示例性示意图。
86.图3为本技术涉及的四种事件任务的一个示例性示意图。
87.图4为本技术涉及的编舞者执行绘制操作的一个示例性示意图。
88.图5为本技术涉及的前台应用与后台应用执行绘制操作的一个示例性示意图。
89.图6为本技术涉及的一种后台应用的系统调度方法的一个示例示意图。
90.图7为本技术涉及的另一种后台应用的系统调度方法的一个示例示意图。
91.图8为本技术实施例提供的电子设备100的一个结构示意图。
92.图9为本技术实施例提供的电子设备100的另一个结构示意图。
93.图10为本技术实施例中电子设备100的一个软件结构示意框图。
94.图11为本技术实施例中电子设备100的另一个软件结构示意框图。
95.图12为本技术提供的应用执行绘制操作的方法的一个示例性示意图。
96.图13为本技术提供的绘制频率限制策略界面的一个示例性示意图。
97.图14为本技术实施例中拦截编舞者接收垂直同步信号方法的一个示例性示意图。
98.图15为本技术实施例中拦截编舞者处理动画事件任务方法的一个示例性示意图。
99.图16为本技术实施例中拦截编舞者绘制操作的一个示例性示意图。
100.图17为本技术实施例中管控后台应用的无效的绘制操作场景的一个示例性示意图。
101.图18为本技术实施例中管控后台应用的无效的绘制操作场景的另一个示例性示意图。
具体实施方式
102.本技术以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“该”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本技术中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
103.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
104.为了便于理解,下面先对本技术实施例涉及的相关术语及相关概念进行介绍。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
105.(1)前台应用、后台应用
106.根据应用程序是否可以直接与用户交互,可以将应用程序分为包括:前台应用、后台应用。前台应用和后台应用为对应用程序运行状态的描述,其中,前台应用为用户放置在前台的、可以直接交互的应用程序,后台应用为用户放置在后台的、不可以直接交互的应用程序。
107.在本技术的实施例中,可以根据应用程序是否直接可见,可以确定该应用是前台应用或后台应用。具体的,当应用程序可见时为前台应用,当应用程序不可见时为后台应用。
108.例如,当电子设备的屏幕上显示应用的界面时,该应用为前台应用;当电子设备的屏幕上没有显示应用的界面时,该应用为后台应用。其中,应用的界面不包括操作系统的顶部状态栏、通知栏。
109.可选的,在本技术的一些实施例中,可以根据应用程序是否满足某些条件进而可以确定该应用是前台应用还是后台应用。具体的,若该应用程序满足一下三个条件中的任意一个,该应用程序为前台应用,否则该应用程序为后台应用。其中,三个条件分别为:该应用具有可见的活动(activity)、该应用具有前台服务、其他前台应用关联到该应用。其中,活动的概念可以参考术语解释(2)活动中的文字描述,此处不再赘述。
110.电子设备可以有多种方法,去确定一个应用在某一时刻是否具有可见的活动,进而确定该应用是前台应用还是后台应用,在此不作限定。
111.例如,可以根据该应用程序的主活动的生命周期确定该应用程序是前台应用还是后台应用。具体的,通过判断该应用程序的主活动是否执行onstop方法、onresume方法、topresumedactivitychangeditem方法等多种方法确定。当该应用的活动执行onstop方法后,认为该应用为后台应用,当该应用的活动执行onresume方法、topresumedactivitychangeditem方法后,认为该应用为前台应用。其中onstop方法、onresume方法、topresumedactivitychangeditem方法等术语的概念可以参考下述术语解释中(2)活动中的文字描述,此处不再赘述。
112.例如,可以通过cpuset参数确定该应用程序为前台应用还是后台应用。具体的,当应用程序所对应的进程的cpuset参数为background或key

background时,该应用程序为后台应用;对应的,当应用程序所对应的进程的cpuset参数不为background和key

background时,该应用程序为前台应用。
113.值得说明的是,响应于用户的操作,一个应用程序可以在前台应用和后台应用之间进行转换。
114.值得说明的是,对于用户来说,当用户可以看到应用程序的界面时,认为该应用为前台应用;当用户没有看到应用程序的界面时,认为该应用为后台应用。
115.下面以图1所示的内容为例,介绍如何通过设备是否显示应用程序的界面确定该应用程序是前台应用还是后台应用。
116.图1为本技术涉及的前台应用与后台应用转换的一个示例性示意图。
117.如图1中(a)所示,当前用户打开音乐听歌时,此时,手机上显示的界面为音乐的界面,音乐为前台应用。结合图1中(b)所示的内容,可以得知,用户可以打开多任务栏,看到当前手机上运行有三个应用程序,即除了音乐外还包括图库、浏览器。在图1中(a)所示的场景中,电子设备没有显示图库和浏览器的界面,图库和浏览器为后台应用。如图1中(c)所示,响应于用户的操作,用户将音乐切换到后台并将图库切换到前台,此时电子设备显示图库的界面,图库为前台应用,音乐和浏览器为后台应用。如图1中(d)所示,响应于用户的操作,用户可以在图1(c)所示的基础上打开浏览器的小窗,同时浏览网页和照片,此时手机上同时显示浏览器和图库的界面,此时图库和浏览器为前台停用,音乐为后台应用。
118.如图1中(e)所示,当用户打开视频应用时,可以开启小窗模式后,将该应用切换至后台。如图1中(f)所示,此时电子设备上显示的为桌面和视频应用的小窗。此时,该视频类应用为前台应用。
119.值得说明的是,在本技术实施例中,当一个应用的主界面被用户切换到后台时,但设备仍然显示该应用的小窗界面(主界面或该应用的其他界面),认为该应用为前台应用。
120.值得说明的是,在本技术一些实施例中,当电子设备关闭应用程序的部分界面的显示时,认为电子设备没有关闭应用程序的界面的显示;相对的,当电子设备关闭应用程序的全部的界面的显示时,认为电子设备关闭应用程序的界面的显示。
121.对于用户来说,在图1中(a)所示的场景中,用户可以看到电子设备显示的音乐的界面,故音乐为前台应用;在图1中(b)所示的场景中,用户可以看到电子设备显示的图库的界面,故图库为前台应用;在图1中(d)所示的场景中,用户可以看到电子设备显示的图库和浏览器界面,故图库和浏览器界面为前台应用;在图1中(e)和(f)所示的场景中,用户可以看到电子设备显示的视频软件的界面,故视频软件为前台应用。
122.(2)活动
123.活动是android操作系统的基本组件之一,可以用于在应用程序中为用户提供可交互的界面或视图。其中,一个应用程序可以有多个活动,应用通过任务栈装载活动,其中任务栈顶端的活动为用户可以直接交互的活动。
124.活动本身具有生命周期,通过判断应用程序的主活动(main activity)的生命周期可以判断该应用为前台应用或者为后台应用。其中,主活动为开发人员在开发该应用时指定的活动,可以用于承载应用程序的主界面。
125.图2为本技术涉及的活动的生命周期的一个示例性示意图。
126.如图2所示,应用程序的开发人员在开发应用程序的活动时,需要实现至少七个回调方法(method)。其中,回调方法又可以称为回调函数,可以被调用去实现特定的功能。其中,七个回调方法分别为:oncreate回调方法、onstart回调方法、onresume回调方法、onpaused回调方法、onstop回调方法、ondestroy回调方法、onrestart回调方法。活动通过调用上述七个回调方法,可以实现活动的生命周期。
127.具体的,当活动第一次被创建的时候,活动会调用oncreate回调方法以完成活动的初始化;当活动从不可见变为可见时,活动会调用onstart回调方法;当活动准备好和用户进行交互的时候,活动会调用onresume回调方法;当活动离开任务栈顶时,活动会调用onpause回调方法以保存一些关键数据和释放一些资源;当活动变为完全不可见时,活动会调用onstop回调方法;当活动销毁自己前,活动会调用ondestroy回调方法以释放资源;当活动从停止状态变为运行状态时,活动会调用onrestart回调方法。
128.结合活动的生命周期,可以确定活动所属的应用程序是前台应用还是后台应用,当该应用的主活动执行onstop回调方法后,可以认为该应用变为后台应用;对应的,当应用的主活动执行onresume回调方法后,可以认为该应用变为前台应用。
129.值得说明的是,在一些情况下,应用程序恢复前台时,该应用程序的主活动会执行topresumedactivitychangeitem回调方法,故可以通过判断应用程序的主活动是否已经执行topresumedactivitychangeitem回调方法确定当前应用是否变为前台应用。
130.在本技术的实施例中,可以通过操作系统提供的活动管理服务(activitymanagerservice,ams)去监控当前正在运行的应用程序的主活动的生命周期,进而通过活动管理服务确定任意一个应用程序当前是前台应用还是后台应用。
131.可选的,在本技术一些实施例中,应用程序的开发者在开发应用程序时,可以在该主活动的生命周期中添加接口,向该应用程序的编舞者或其他模块、对象传递信息以确定该应用程序是前台应用还是后台应用。
132.(3)编舞者(choreographer)、绘制操作
133.编舞者为操作系统中的一个类,用于请求垂直同步信号,并响应于请求得到的垂直同步信号去执行绘制操作。其中,类是一种数据结构,用于定义一个对象的状态和行为。其中,垂直同步信号为操作系统提供的,用于协调并同步编舞者操作和surfaceflinger操作的信号。
134.当应用程序被启动后,会初始化编舞者,其中初始化编舞者的过程包括:活动会依据编舞者类生成一个实例化的编舞者对象。该编舞者可以去执行绘制操作。其中,绘制操作可以包括:编舞者处理输入事件任务、动画事件任务、布局事件任务以及提交事件任务。编
舞者执行绘制操作后,可以将绘制操作的结果提交给应用程序的其他模块,进而在电子设备的屏幕上显示刷新后的界面或视图。
135.下面首先具体的介绍编舞者的产生、以及编舞者执行绘制操作的触发条件:
136.每个应用程序在被用户启动后,当该应用程序第一次需要展示可视化的界面或视图时,都会生成属于该应用程序的至少一个编舞者。其中,编舞者的数量可以与该应用程序使用的线程的数量有关。其中,线程为操作系统调度的最小资源。例如,应用程序的ui线程会生成一个绑定该线程的编舞者,其中ui线程也可以称为主线程,主要用于承载界面显示、更新和控件交互等功能实现的计算开销。
137.当应用程序需要刷新界面或者视图时,编舞者会向surfaceflinger请求垂直同步信号(vsync),以寻求合适的时机进行绘制操作。编舞者在接收到surfaceflinger发送的垂直同步信号后,就会开始执行绘制操作。其中,编舞者会使用onvsync回调方法去接收垂直同步信号,该onvsync回调方法为编舞者内部类framedisplayeventreceiver提供的回调方法。编舞者在使用onvsync回调方法成功接收到垂直同步信号后,会通知编舞者可以开始绘制操作。
138.其中,应用程序为前台应用/后台应用时,编舞者向surfaceflinger请求垂直同步信号的频率不变。
139.其中,surfaceflinger是操作系统底层提供的服务,用于接收不同应用程序的编舞者的请求,并响应于该请求向应用程序分发垂直同步信号。其中,垂直同步信号的产生可以由软件模拟产生,也可以由电子设备的硬件产生。例如,垂直同步信号可以由硬件编写器(hardware composer,hwc)产生。hwc产生垂直同步信号后可以通过回调方法将垂直同步信号发送到surfaceflinger,故surfaceflinger可以向编舞者转发垂直同步信号。编舞者在接收到surfaceflinger发送的垂直同步信号后,就会开始执行绘制操作。
140.其中,电子设备产生垂直同步信号的频率可以与电子设备的屏幕的刷新率有关。例如,当电子设备产生垂直同步信号的频率为90hz时,电子设备的屏幕刷新率可以为90hz。
141.其次,下面介绍绘制操作包括的内容:
142.具体的,应用程序在生成编舞者后,会将四种事件任务按照时间顺序存储到编舞者内部配置的四个单向链表(callbackqueue)中。编舞者在收到垂直同步信号后,会通过doframe回调方法去处理当前时间对应的四种事件任务。其中,四种事件任务分别为callback_input、callback_animation、callback_traversal和callback_commit。
143.其中,doframe回调方法中包括四个docallbacks回调方法,分别用于处理上述四种事件任务。
144.其中,callback_input为输入事件任务,其中,输入事件任务为应用程序将输入事件封装、分发到编舞者的数据。输入事件可以为应用程序收到的用户与该应用程序的交互,例如,输入事件可以是用户点击该应用程序中的某个可交互的控件、或者是用户在应用程序中的滑动(上下滑动、左右滑动等)、或者是用户的语音输入等,在此不做限定。应用程序在确定输入事件后,对该输入事件进行初步处理,并生成该输入事件对应的输入事件任务,并将该输入事件任务传递给编舞者。
145.其中,callback_animation为动画事件任务,动画事件任务为应用程序计算动画(animation)所需的数据。其中,动画可以包括:视图动画(view animation)、帧动画
(drawable animation)、属性动画(property animation)等。
146.其中,callback_traversal为布局事件任务,用于参与编舞者计算视图或界面的绘制数据。其中,计算确定的绘制数据会被提交给应用程序的其他模块去确定视图中显示内容的宽高、位置、形状等。
147.其中,callback_commit为提交事件任务,用于标志编舞者完成了某个垂直同步信号所对应的绘制操作。
148.再次,下面以图3所示的内容为例,具体的介绍上述四种事件任务。
149.图3为本技术涉及的四种事件任务的一个示例性示意图。
150.某应用程序的主界面如图3中(a)所示,其中,主界面包括三个矩形控件,分别为1号矩形控件301、2号矩形控件302、3号矩形控件303。其中,1号矩形控件301和2号矩形控件302可以相应用户的点击操作,3号矩形控件303可以向用户展示当前的数字。当用户点击1号矩形控件301时,3号矩形控件303展示的数字会加1;当用户点击2号矩形控件302时,3号矩形控件303展示的数字会减1。并且,响应于用户点击1号矩形控件301或者2号矩形控件302时,被用户点击的矩形控件会呈现一个渐变的灰色动画用于告知用户点击成功。
151.图3中(b)所示的内容为用户点击2号矩形控件302后所展示的界面。相比于图3中(a)所示的应用程序的界面,2号矩形控件302变为灰色且3号矩形控件303展示的数字由4变成3。
152.在图3所示的内容中,可以认为对1号矩形控件301或者2号矩形控件302的点击事件为输入事件。电子设备的屏幕获取输入事件后,上报到对应的驱动,并分发给对应的应用程序。应用程序获取到该输入事件后,会将该事件包装成输入事件任务分发到编舞者。类似的,需要呈现的渐变的灰色动画为动画事件,被包装成动画事件任务分发到编舞者。类似的,布局事件任务用于确定2号矩形控件302在视图中的位置、大小、形状。类似的,提交事件任务用于确定完成一次绘制操作。
153.最后,下面以图4所示的内容为例,介绍编舞者执行绘制操作的数据流程。
154.图4为本技术涉及的编舞者执行绘制操作的一个示例性示意图。
155.如图4所示,应用程序在第一次被启动后,应用程序的主活动会按照活动的生命周期执行onstart回调方法和onresume回调方法等回调方法。其中,应用程序在执行onresume回调方法后,若需要展示可视化的界面或视图,可以使用activity.makevisible回调方法绘制界面或视图。其中,在活动使用activity.makevisible回调方法绘制界面或视图的过程中,编舞者会被初始化。
156.编舞者被初始化后,当应用程序需要刷新视图时,会使用scheduletraversals回调方法向编舞者发送绘制请求。被scheduletraversals回调方法唤醒的编舞者会不断的按照时间顺序接收并使用不同的单向链表存储对应的事件任务。
157.并且,编舞者收到绘制请求后,会向surfaceflinger请求垂直同步信号。编舞者接收到surfaceflinger发送的垂直同步信号后,可以通过doframe回调方法执行绘制操作,即通过doframe回调方法处理输入事件任务、动画事件任务、布局事件任务和提交事件任务。
158.其次,下面介绍本技术涉及的场景。
159.操作系统没有提供回调方法去判定请求垂直同步信号的应用是否真的需要进行绘制操作,任一应用程序在向surfaceflinger请求垂直同步信号后,都会被分发垂直同步
信号。用户在使用电子设备如智能手机时,可以开启多个应用程序。但是,受限于电子设备的屏幕的尺寸,在某一时刻,用户只能将一个或少数几个应用展现在屏幕上进行交互(如分屏),而其他应用程序会转变为后台应用。对任意一个后台应用来说,由于该后台应用并没有被销毁,仍然持有编舞者,该后台应用在后台执行某些操作时,会触发编舞者进行绘制操作。
160.首先,由于后台应用没有可以用来向用户展示的视图或界面,后台应用执行绘制操作的结果并不会被用户感知到。其次,由于后台应用的编舞者只会被分发动画事件任务,后台应用在执行绘制操作时,实际上只处理了动画事件任务。
161.综合上述两点,可以认为后台应用执行的绘制操作为无效的绘制操作。
162.值得说明的是,对于任一应用程序来说,当该应用程序为前台应用时,该应用程序的编舞者会被分发输入事件任务、动画事件任务、布局事件任务、提交事件任务;当该应用程序为后台应用时,由于该应用程序没有提供可够交互的界面或视图,故该应用程序不会被分发输入事件任务、布局事件任务、提交事件任务。
163.值得说明的是,对于用户来说,当电子设备显示应用程序界面时,该应用程序执行绘制操作去刷新界面是有必要的;而当电子设备关闭应用程序界面的显示后至电子设备再次显示该应用程序的界面前,该应用程序执行绘制操作去刷新界面浪费操作系统的资源,增加电子设备的发热、耗电。
164.图5为本技术涉及的前台应用与后台应用执行绘制操作的一个示例性示意图。
165.如图5所示,电子设备上运行有多个应用程序,包括:图库、音乐、浏览器。当图库为前台应用时,音乐和浏览器为后台应用。图库、音乐和浏览器的编舞者均接受到垂直同步信号,并且响应于垂直同步信号,图库、音乐和浏览器的编舞者均执行绘制操作。其中,编舞者执行的绘制操作的计算资源由ui线程提供。
166.可以理解的是,后台应用执行无效的绘制操作,会挤占前台应用的系统资源,并且会导致电子设备的发热以及耗电增加,进而导致电子设备的卡顿,恶化了用户体验。
167.再次,下面介绍本技术涉及的两种针对后台应用的系统调度方法。
168.结合图5所示的内容,应用程序转变为后台应用后,由于该应用程序仍然持有编舞者,故应用的编舞者仍然会接收surfaceflinger发送的垂直同步信号,并且执行无效的绘制操作。为了减少后台应用去执行无效的绘制操作,主要有两种针对后台应用的系统调度方法。
169.其中,第一种有关后台应用的系统调度方法主要通过结合电子设备的cpu硬件架构特点,将系统资源差异化的分配给前台应用和后台应用:
170.图6为本技术涉及的一种后台应用的系统调度方法的一个示例示意图。
171.如图6所示,以cpu麒麟9000为例,麒麟9000包括一个a77架构的大核、三个a77架构的中核以及四个a55架构的小核。结合电子设备cpu的硬件架构特点,当应用程序为前台应用,优先使用大核承载该应用的计算资源,而当应用程序为后台应用时,优先使用中核和小核承载该应用的计算资源。
172.可以理解的是,应用程序在执行绘制操作时,会消耗cpu的计算资源,所以将系统资源差异化的分配给前台应用和后台应用,有助于减少后台应用挤占前台应用的计算资源。但是,当用户开启较多应用时或者用户正在使用的前台应用需要占用大量的系统资源
时,即需要cpu的中核、小核提供一些计算资源时,后台应用的无效的绘制操作则会挤占系统的计算资源,导致前台应用出现卡顿,降低了用户体验。其次,由于不同电子设备的硬件特点不同,以cpu为例,一套系统调度方法不能适配不同厂家不同型号的cpu。
173.可以理解的是,上述针对后台应用的系统调度方法,通过结合电子设备的硬件特定进行差异化的调度去尽可能的保证前台应用的系统资源。
174.但是该系统调度方法并没有阻止后台应用去执行无效的绘制操作,浪费了系统资源,增加电子设备的耗电。
175.其中,第二种有关后台应用的系统调度方法主要通过及时冻结后台应用,使得后台应用无法占用系统资源:
176.图7为本技术涉及的另一种后台应用的系统调度方法的一个示例示意图。
177.当应用程序从前台应用转变为后台应用时,电子设备可以冻结该应用程序。应用程序需要向电子设备请求系统资源去进行绘制操作,但电子设备不会向被冻结的应用程序分配系统资源,故被冻结的应用程序不会进行无效的绘制操作。但是被冻结的后台应用经常会被广播、服务等唤醒,唤醒后的后台应用仍然会执行无效的绘制操作,占据系统资源,增加电子设备耗电。
178.如图7所示,当将浏览器应用切换到后台时,浏览器应用会被冻结。冻结后的浏览器应用不能占用电子设备的系统资源,故不能执行绘制操作。但是被冻结的浏览器应用常常会被操作系统或其他应用的广播、服务唤醒,唤醒后的浏览器应用仍然会执行无效的绘制操作。
179.可以理解的是,通过冻结后台应用虽然可以使后台应用不去执行无效的绘制操作。但
180.但是被冻结的后台应用常常会被唤醒,唤醒后的后台应用仍然可以执行无效的绘制操作,占用了系统资源,并且增加了电子设备的耗电。
181.为了使后台应用不去执行无效的绘制操作,进而减少对系统资源的占用,降低电子设备的耗电,本技术提供应用执行绘制操作的方法及电子设备,当应用程序从前台应用变为后台应用时,该应用程序根据绘制频率限制策略确定后台绘制频率,并根据该确定的后台绘制频率去拦截垂直同步信号或者拦截编舞者处理动画事件任务,有效的降低了后台应用执行无效的绘制操作,进而降低了后台应用对于系统资源的占用,并且降低了电子设备的耗电。
182.下面介绍本技术提供的电子设备:
183.本技术实施例中电子设备可以为手机、平板电脑等移动电子设备,也可以为智能电视、个人电脑(personal computer,pc)等设备,此处不作限定。
184.示例性的,图8为本技术实施例提供的电子设备100的一个结构示意图。
185.下面以电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
186.电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池
142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
187.可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
188.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural

network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
189.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
190.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
191.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter

integrated circuit,i2c)接口,集成电路内置音频(inter

integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general

purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
192.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现电子设备100的触摸功能。
193.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
194.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音
频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
195.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
196.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备100的显示功能。
197.gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
198.sim接口可以被用于与sim卡接口195通信,实现传送数据到sim卡或读取sim卡中数据的功能。
199.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间数据传输。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
200.可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
201.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
202.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
203.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
204.天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
205.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电
磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
206.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
207.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi

fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
208.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time

division code division multiple access,td

scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi

zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
209.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
210.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light

emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active

matrix organic light emitting diode,amoled),柔性发光二极管(flex light

emitting diode,fled),miniled,microled,micro

oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n
为大于1的正整数。
211.电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
212.isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
213.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal

oxide

semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头193,n为大于1的正整数。
214.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
215.视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
216.npu为神经网络(neural

network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
217.内部存储器121可以包括一个或多个随机存取存储器(random access memory,ram)和一个或多个非易失性存储器(non

volatile memory,nvm)。
218.随机存取存储器可以包括静态随机存储器(static random

access memory,sram)、动态随机存储器(dynamic random access memory,dram)、同步动态随机存储器(synchronous dynamic random access memory,sdram)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,ddr sdram,例如第五代ddr sdram一般称为ddr5 sdram)等;
219.非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
220.快闪存储器按照运作原理划分可以包括nor flash、nand flash、3d nand flash等,按照存储单元电位阶数划分可以包括单阶存储单元(single

level cell,slc)、多阶存储单元(multi

level cell,mlc)、三阶储存单元(triple

level cell,tlc)、四阶储存单元(quad

level cell,qlc)等,按照存储规范划分可以包括通用闪存存储(英文:universal flash storage,ufs)、嵌入式多媒体存储卡(embedded multi media card,emmc)等。
221.随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
222.非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
223.外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
224.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
225.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
226.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
227.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
228.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
229.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
230.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180a检测所述触摸操作强度。电子设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
231.陀螺仪传感器180b可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备
100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
232.气压传感器180c用于测量气压。在一些实施例中,电子设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
233.磁传感器180d包括霍尔传感器。电子设备100可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
234.加速度传感器180e可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
235.距离传感器180f,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180f测距以实现快速对焦。
236.接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180g检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
237.环境光传感器180l用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测电子设备100是否在口袋里,以防误触。
238.指纹传感器180h用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
239.温度传感器180j用于检测温度。在一些实施例中,电子设备100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,电子设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
240.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
241.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
242.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振
动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
243.指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
244.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。电子设备100通过sim卡和网络交互,实现通话以及数据通信等功能。
245.本技术实施例中,该处理器110可以通过调用该内部存储器121中存储的计算机指令,以使得该电子设备100执行本技术实施例中的应用执行绘制操作的方法。
246.示例性的,图9为本技术实施例提供的电子设备100的另一个结构示意图。
247.该电子设备100包括:
248.输入装置201、输出装置202、处理器203和存储器204(其中电子设备100中的处理器203的数量可以一个或多个,图9中以一个处理器203为例)。在本技术的一些实施例中,输入装置201、输出装置202、处理器203和存储器204可通过总线或其它方式连接。
249.其中,处理器203通过调用存储器204存储的操作指令以使得电子设备200执行本技术实施例中的应用执行绘制操作的方法。
250.示例性的,图10为本技术实施例中电子设备100的一个软件结构示意框图。
251.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,运行时和系统库,以及内核层。
252.应用程序层可以包括一系列应用程序包。
253.如图10所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用)。
254.其中,应用程序层还可以包括性能优化应用。该性能优化应用可以提供可视化的界面或视图,也可以不提供可视化的界面或视图。当电子设备被启动后,该性能优化应用可以自动启动,而无需用户的操作。该性能优化应用中存有绘制频率限制策略,用于确定应用程序和后台绘制频率的对应关系。该性能优化应用在启动后可以通过网络访问服务器以确定绘制频率限制策略中的参数,或者可以读取操作系统本地的配置文件以确定绘制频率限制策略中的参数。性能优化应用配置有接口,其他应用可以通过接口访问该性能优化应用以确定本身的后台绘制频率。
255.或者,应用程序在被启动后,会生成绘制频率限制模块去读取系统本地的配置文件以获取绘制频率限制策略,并根据该绘制频率限制策略确定本身的后台绘制频率。
256.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
257.如图10所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器,本地profile管理助手(local profile assistant,lpa)等。
258.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
259.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
260.电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
261.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
262.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话界面形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
263.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
264.应用程序框架层还可以包括性能优化系统,性能优化系统中可以存有绘制频率限制策略。当应用程序被启动后,可以通过操作系统提供的回调方法直接访问该性能优化系统以确定该应用程序本身的后台绘制频率。
265.运行时包括核心库和虚拟机。运行时负责安卓系统的调度和管理。
266.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是核心库。
267.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
268.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),二维图形引擎(例如:sgl)等。
269.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维(2

dimensional,2d)和三维(3

dimensional,3d)图层的融合。
270.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
271.三维图形处理库用于实现3d图形绘图,图像渲染,合成,和图层处理等。
272.2d图形引擎是2d绘图的绘图引擎。
273.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,虚拟卡驱动。
274.本技术涉及的编舞者可以位于应用程序框架层的视图系统中,当应用程序需要刷新界面时,该应用程序调用视图系统中的编舞者,生成该应用程序独有的编舞者对象,并执
行绘制操作。编舞者在执行绘制操作时,可以通过回调方法利用核心库中的表面管理器、二维图形引擎等实现绘制操作。
275.值得说明的是,随着操作系统版本更新,服务器可以在新版本的文件中更新配置文件以更新绘制频率限制策略。
276.示例性的,图11为本技术实施例中电子设备100的另一个软件结构示意框图。
277.在一些实施例中,将系统分为四层,从上至下分别为应用层,框架层,系统服务库,以及内核层。
278.应用层包括系统应用和第三方非系统应用。
279.其中,系统应用可以包括性能优化应用。该性能优化应用可以提供可视化的界面或视图,也可以不提供可视化的界面或视图。当电子设备被启动后,该性能优化应用可以自动启动,而无需用户的操作。该性能优化应用中存有绘制频率限制策略,用于确定应用程序和后台绘制频率的对应关系。该性能优化应用在启动后可以通过网络访问服务器以确定绘制频率限制策略中的参数,或者可以读取操作系统本地的配置文件以确定绘制频率限制策略中的参数。性能优化应用配置有接口,其他应用可以通过接口访问该性能优化应用以确定本身的后台绘制频率。
280.或者,应用程序在被启动后,会生成绘制频率限制模块去读取系统本地的配置文件以获取绘制频率限制策略,并根据该绘制频率限制策略确定本身的后台绘制频率。
281.框架层为应用层的应用程序提供java/c/c /js等多语言的用户程序框架和能力框架,以及各种软硬件服务对外开放的多语言框架api。
282.系统服务层包括:系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集。
283.其中,系统基本能力子系统集支持操作系统在多设备上运行、调度、迁移等操作。系统基本能力子系统集可以包括:分布式软总线、分布式数据管理、分布式任务调度、公共基础子系统等。系统服务层和框架层联合实现了多模输入子系统、图形子系统等。图形子系统中可以存有绘制频率限制策略,当应用程序被启动后,可以通过操作系统提供的回调方法直接访问该图形子系统以确定该应用程序本身的后台绘制频率。本技术涉及的编舞者可以位于图形子系统中。当应用程序需要刷新界面时,该应用程序调用视图系统中的编舞者,生成该应用程序独有的编舞者对象,并执行绘制操作。
284.其中,基础软件服务子系统集为操作系统提供公共的、通用的软件服务,可以包括:事件通知子系统、多媒体子系统等。
285.其中,增强软件服务子系统集为不同设备提供差异化的软件服务,可以包括:iot专有业务子系统。
286.其中,硬件服务子系统集为操作系统提供硬件服务,可以包括:iot专有硬件服务子系统。
287.值得说明的是,根据不同设备形态的部署环境,上述系统基本能力子系统集、基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集可以按照其他功能粒度进行重新划分。
288.内核层包括内核抽象层和驱动子系统。其中,内核抽象层包括多种内核,并且通过屏蔽多内核差异,对上层提供基础的内核能力,例如,线程/进程管理、内存管理、文件系统、
网络管理等。其中,驱动子系统为软件开发者提供统一外设访问能力和驱动开发、管理框架。
289.值得说明的是,根据操作系统的不同以及未来可能的升级换代,电子设备的软件结构可以根据操作系统进行其他方式的划分。
290.下面介绍本技术提供的应用执行绘制操作的方法。
291.图12为本技术提供的应用执行绘制操作的方法的一个示例性示意图。
292.如图12所示,本技术提供的应用执行绘制操作的方法可以包括:
293.s1201:应用程序根据频率限制策略确定后台绘制频率。
294.应用程序从前台应用转变为后台应用时,该应用程序根据频率限制策略确定后台绘制频率。
295.具体的,首先,应用程序需要确定应用程序本身何时从前台应用转变为后台应用。操作系统提供一个绘制频率限制模块用于确定应用程序为前台应用或后台应用。该绘制频率限制模块可以通过配置接口去直接监听应用程序的主活动的生命周期,进而可以确定应用程序的运行状态,即确定该应用程序是前台应用还是后台应用。或者,绘制频率限制模块可以通过活动管理服务确定应用程序的运行状态,即确定该应用程序是前台应用还是后台应用。
296.其次,在确定应用程序从前台应用转变为后台应用时,应用程序可以根据绘制频率限制策略确定该应用程序的后台绘制频率。后台绘制频率是指应用程序变为后台应用后,该应用程序的编舞者执行绘制操作的频率。
297.本技术实施例中,绘制频率限制策略为预先配置的,用于设置不同应用变为后台应用时的后台绘制频率。
298.绘制频率限制策略可以配置在绘制频率限制模块中,其中,绘制频率限制模块可以通过接口与应用程序的编舞者进行通信。具体的,绘制频率限制模块可以为操作系统预配置的,即绘制频率限制模块可以配置在每个应用程序的内部。或者,绘制频率限制模块可以配置在操作系统的服务中/或者配置在其他一直保持在运行状态的应用,应用程序可以通过接口访问绘制频率限制模块以确定应用程序自己的后台绘制频率。
299.其中,应用程序确定的后台绘制频率小于垂直同步信号的产生频率(或屏幕刷新率)。
300.考虑到应用程序的开发者在开发该应用程序时,有可能需要借助编舞者执行的绘制操作向应用程序的活动或其他模块传递一些参数的情况。即,在应用程序出于非界面刷新的目的执行绘制操作的情况。在该情况下,应用程序为后台应用时,该后台应用请求垂直同步信号的频率小于垂直同步信号的产生频率(或屏幕刷新率)。在该情况下,步骤s1201应用程序确定的后台绘制频率可以小于等于垂直同步信号的产生频率(或屏幕刷新率)。
301.可选的,在本技术一些实施例中,当应用程序请求垂直同步信号的频率小于垂直同步信号的产生频率(或屏幕刷新率),应用程序根据频率限制策略确定后的后台绘制频率可以等于垂直同步信号的产生频率(或屏幕刷新率)。
302.可选的,在本技术一些实施中,应用程序可以在被启动时或者被启动后就确定该应用程序本身的后台绘制频率。
303.可选的,在本技术一些实施中,绘制频率限制模块向应用程序提供修改自身后台
绘制频率的接口,通过该接口,应用程序可以配置自身的后台绘制频率。
304.示例性的,如下表1所示,表1为本技术实施例中绘制频率限制策略的一个示意表。
[0305][0306]
表1
[0307]
如上表1所示,当音乐转变为后台应用时,绘制频率限制策略配置音乐的后台绘制频率为垂直同步信号频率的1/6;而当图库转变为后台应用时,绘制频率限制策略配置图库的后台绘制频率为0。
[0308]
可以理解的是,绘制频率限制策略可以为不同应用或者不同类型的应用(社交类应用、游戏应用、其他应用等)配置不同的后台绘制频率,有助于合理的分配系统资源,降低电子设备的耗电。
[0309]
可选的,如下图13中的内容所示,在本技术的一些实施例中,用户可以结合电子设备的性能和使用需求,个性化的配置绘制频率限制策略中的参数。
[0310]
图13为本技术提供的绘制频率限制策略界面的一个示例性示意图。
[0311]
如图13中(a)所示,用户可以在电子设备的主界面通过长按的方式选择一个应用程序,如选择“华为应用市场”;进一步的,如图13中(b)所示,用户长按选择应用程序后,可以通过点击的方式选择信息选项;进一步的,如图13中(c)所示,用户选择信息选项后,可以看到该应用的相关信息,其中包括负责调度应用程序的省电管理选项;进一步的,如图13中(d)所示,用户可以通过配置该省电管理选项中具体参数,配置绘制频率限制策略中该应用程序对应的绘制限制频率;进一步的,如图13中(e)所示,用户可以具体配置该应用程序转变为后台应用时的后台绘制频率。
[0312]
值得说明的是,如图13中(d)所示,当用户选择智能省电时,该应用程序按照预配置的绘制频率限制策略中的参数确定该应用程序的后台绘制频率。
[0313]
其中,前台应用、后台应用、编舞者、主活动等术语的概念可以参考上述术语解释中(1)前台应用、后台应用、(2)活动、(3)编舞者(choreographer)、绘制操作中的文字描述,此处不再赘述。
[0314]
s1202:应用程序根据后台绘制频率去执行绘制操作。
[0315]
具体的,应用程序的编舞者在确定后台绘制频率后,根据后台绘制频率去拦截垂直同步信号或者拦截编舞者的绘制操作,使得编舞者按照后台绘制频率去执行无效的绘制操作。
[0316]
其中,无效的绘制操作等术语的概念可以参考术语解释中编舞者(choreographer)、绘制操作(3)中的文字描述,此处不在赘述。
[0317]
下面结合图12所示的内容,以图14以及图15所示的内容为例,分别具体的介绍根据后台绘制频率拦截垂直同步信号以及根据后台绘制频率拦截编舞者执行绘制操作的方法:
[0318]
图14为本技术实施例中拦截编舞者接收垂直同步信号方法的一个示例性示意图。
[0319]
如图14中(a)所示,应用程序的编舞者使用onvsync回调方法接收到垂直同步信号后,首先进行判断该编舞者所属的应用程序是前台应用还是后台应用。若该应用程序为前台应用,则执行默认的绘制操作;若该应用程序为后台应用,则记录该垂直同步信号为应用程序转变为后台应用后的第k个垂直同步信号,并判断k与第一阈值的大小。若k小于第一阈值,则跳过默认的绘制操作,若k等于第一阈值,则将k清零后重新计数,并且执行默认的绘制操作。其中,跳过默认的绘制操作可以是指使编舞者不去调用doframe回调方法,进而实现拦截绘制操作。
[0320]
电子设备可以根据绘制频率限制策略确定该应用程序的后台绘制频率或者第一阈值。当电子设备根据绘制频率限制策略确定该应用程序的后台绘制频率后,可以确定该对后台绘制频率对应的第一阈值;当电子设备根据绘制频率限制策略确定该应用程序的第一阈值后,可以确定该第一阈值对应的后台绘制频率。
[0321]
例如,当电子设备的垂直同步信号的产生频率和屏幕刷新率均为90hz,并且该应用程序根据绘制频率限制策略确定后台绘制频率为18hz。则电子设备可以确定该后台绘制频率18hz所对应的第一阈值。第一阈值可以为垂直同步信号的产生频率(或屏幕刷新率)除以应用程序的后台应用绘制频率,即第一阈值为5。则,当应用程序变为后台应用后,应用程序的编舞者每接收到5个垂直同步信号,才执行一次默认的绘制操作。
[0322]
又例如,对应的,若该应用程序根据绘制频率限制策略确定该应用程序的第一阈值为5,则电子设备可以确定该第一阈值5所对应的后台绘制频率为18hz。
[0323]
值得说明的是,若后台绘制频率为0,则第一阈值可以为一个较大的整数,例如2
10
。或者可以改变图14中(a)所示的内容,在应用程序收到垂直同步信号后,将k清零,使得应用程序不去执行默认的绘制操作;或者,在应用程序收到垂直同步信号后,不去对垂直同步信号进行计数,使得k一直等于0,进而使得应用程序不去执行默认的绘制操作。
[0324]
具体的,如图14中(b)所示,若该应用程序为前台应用时,应用程序执行绘制操作的间隔为1/90秒,即应用程序接收到垂直同步信号后都会执行绘制操作;若该应用程序为后台应用时,应用程序执行绘制操作的间隔为5/90秒,即应用程序接收到5个垂直同步信号后才会执行默认的绘制操作。例如,应用程序从第0秒开始,每隔1/90秒,该应用程序的编舞者请求垂直同步信号。若在第0秒时,该应用程序变为后台应用。在第0秒、在第1/90秒、第2/90秒、第3/90秒、第4/90秒时,由于k小于5,所以应用程序的编舞者的绘制操作被拦截,在第5/90秒,应用程序编舞者收到垂直同步信号,此时k=5,故应用程序的绘制操作没有被拦截,执行一次默认的绘制操作。其中,应用程序为后台应用时执行的绘制操作为无效的绘制操作。
[0325]
值得说明的是,编舞者执行绘制操作每次的耗时可以不相同,也可以相同,本技术不对此进行限定。
[0326]
图15为本技术实施例中拦截编舞者处理动画事件任务方法的一个示例性示意图。
[0327]
如图15所示,应用程序的编舞者使用onvsync回调方法接收到垂直同步信号后,开始执行绘制操作。其中,绘制操作包括处理输入事件任务、动画事件任务、布局事件任务以及提交事件任务。由于后台应用的编舞者并不会获取到输入事件任务、布局事件任务以及处理事件任务。故可以通过拦截编舞者处理动画事件任务,进而拦截编舞者执行无效的绘制操作。
[0328]
具体的,应用程序在接收到垂直同步信号后,开始执行绘制操作前,判断该编舞者所属的应用程序是否是后台应用。若该编舞者所属的应用程序为前台应用,则可以继续执行默认的绘制操作;若该编舞者所属的应用程序为后台应用,则可以在doframe回调方法中跳过对动画事件任务的处理或者可以直接结束绘制操作,使得该编舞者不去执行无效的绘制操作。
[0329]
例如,当后台绘制频率为0时,可以在编舞者的doframe回调方法的开始去判断该编舞者所属的应用程序是前台应用还是后台应用。若判断结果为后台应用,则可以让编舞者跳过执行doframe回调方法中处理动画事件任务的docallbacks回调方法。在该情况下,虽然编舞者仍然会调用docallbacks回调方法去处理输入事件任务、布局事件任务、提交事件任务,但由于输入事件任务、布局事件任务、提交事件任务为空,所以可以通过跳过编舞者处理的动画事件任务去等价的实现拦截编舞者执行本次无效的绘制操作。
[0330]
若判断结果为前台应用,则执行默认的绘制操作。
[0331]
值得说明的是,当后台绘制频率大于0时,也可以通过拦编舞者处理动画事件任务同样能实现图14中(b)所示的降低后台应用执行无效绘制操作的频率。例如,在调用docallbacks回调方法去处理动画事件任务前,判断编舞者收到的垂直同步信号为第k个垂直同步信号。当k小于第一阈值时,使编舞者跳过处理动画事件任务;当k等于第一阈值时,允许编舞者处理动画事件任务,并将k清零后重新计数。
[0332]
可以理解的是,通过拦截编舞者接收垂直同步信号或者拦截编舞者处理动画事件任务,可以降低后台应用执行无效绘制操作的频率。
[0333]
当步骤s1201中确定的后台绘制频率等于垂直同步信号的产生频率(或屏幕刷新率)时,即应用程序不以界面刷新目的执行绘制操作,此时可以根据后台绘制频率确定最小时间间隔t1,并根据t1去确定需要被拦截的绘制操作,以及根据t1确定可以被执行的绘制操作。
[0334]
具体的,当应用程序转变为后台应用后,若应用程序的编舞者请求垂直同步信号的频率小于垂直同步信号的产生频率(或屏幕刷新率),可以认为该应用为出于非刷新界面的目的进行绘制操作的。在该情况下,当应用程序的编舞者接收到第一个垂直同步信号时,执行默认的绘制的操作;当应用程序接收到的非第一个垂直同步信号时,可以去判断该垂直同步信号与上一个垂直同步信号之间的时间间隔。若时间间隔小于后台绘制频率对应的时间间隔阈值,则拦截该垂直同步信号对应的绘制操作;若时间间隔大于后台绘制频率对应的时间间隔阈值,则执行该垂直同步信号对应的绘制操作。
[0335]
下面以图16所示的内容为例,具体的介绍,当应用程序出于非刷新界面目的进行绘制操作时,是如何拦截无效的绘制操作的。
[0336]
图16为本技术实施例中拦截编舞者绘制操作的一个示例性示意图。
[0337]
当应用程序的后台绘制频率为30hz时,其参数t1为3/90秒。如图16中(a)所示,应用程序的编舞者每隔1/90秒请求并接收到surfaceflinger发送的垂直同步信号。故在图16中(a)所示的情况中,该应用程序是出于刷新界面目的进行绘制操作。应用程序在第2/90秒执行了一次无效的绘制操作的情况下,下一次执行无效绘制操作的时间为第5/90秒。
[0338]
与图16中(a)所示的内容不同,如图16中(b)所示,当应用程序的编舞者在第2/90秒请求并接收到垂直同步信号1,在第6/90秒请求并接收到垂直同步信号2,在第7/90秒请
求并接收到垂直同步信号3。
[0339]
可以有多种方式确定应用程序是否是出于非刷新界面的目的请求进行绘制操作的。
[0340]
在图16中(b)所示的内容中,例如,在第0秒至第8/90秒内,由于应用程序向surfaceflinger请求垂直同步信号的频率为4/15hz低于垂直同步信号的产生频率90hz(或屏幕刷新率),该应用程序是出于非刷新界面目的进行绘制操作。其中,应用程序请求垂直同步信号的频率为单位时间内应用程序请求垂直同步信号的次数。
[0341]
又例如,应用程序在第2/90秒时接收到垂直同步信号后,在第3/90秒没有接收到垂直同步信号,可以确定该应用程序是出于非刷新界面的目的请求进行绘制操作的。
[0342]
在第2/90秒时,应用程序的编舞者接收到垂直同步信号1,并在第2/90秒前,该应用程序的编舞者没有接收到其他垂直同步信号,故编舞者可以在第2/90秒执行该垂直同步信号1对应的绘制操作;在第6/90秒时,应用程序的编舞者接收到垂直同步信号2,由于该应用程序的编舞者上一次接收垂直同步信号1在第2/90秒,时间间隔为4/90秒,大于t1,故编舞者可以在第6/90秒执行该垂直同步信号1对应的绘制操作。在第7/90秒时,应用程序的编舞者接收到垂直同步信号3,由于该应用程序的编舞者上一次接收垂直同步信号1在第6/90秒,时间间隔为1/90秒,小于t1,故该应用程序的绘制操作会被拦截。
[0343]
可选的,在本技术一些实施例中,可以参考图13以及图14所示的内容,在onvsync方法中/前拦截编舞者接收垂直同步信号,进而使得应用程序变为后台应用后执行无效的绘制操作的频率降低。
[0344]
可选的,在本技术一些实施例中,可以参考图13以及图14所示的内容,通过拦截编舞者向surfaceflinger请求垂直同步信号,进而使得应用程序变为后台应用后执行无效的绘制操作的频率降低。
[0345]
值得说明的是,若通过拦截编舞者向surfaceflinger请求垂直同步信号,或者在onvsync方法前拦截编舞者接收垂直同步信号,需要对编舞者进行解耦以使得仅仅阻止编舞者执行绘制操作,而不会影响到编舞者的其他功能的正常工作。
[0346]
可选的,在本技术一些实施例中,可以参考图13以及图14所示的内容,通过删除存储动画事件任务的单向链表中的数据,进而使得应用程序变为后台应用后执行无效的绘制操作的频率降低。
[0347]
下面结合图12所示的应用执行绘制操作的方法,以图16以及图17所示的内容为例,对本技术实施例中的应用执行绘制操作的方法进行示例性描述。
[0348]
图17为本技术实施例中管控后台应用的无效的绘制操作场景的一个示例性示意图。
[0349]
如图17所示,用户启动应用程序时,活动管理服务可以获取到应用程序的注册信息。注册信息用于唯一标识该应用程序。例如,注册信息可以是该应用程序的包名,或者是该应用程序的进程名,在此不作限定。
[0350]
用户启动应用程序后,该应用程序会初始化至少一个编舞者和绘制频率限制模块。
[0351]
用户启动应用程序后,应用程序初始化编舞者和绘制频率限制模块。其中,绘制频率限制模块可以通过接口回调活动管理服务中的方法,进而确定该应用程序的运行状态,
即该应用程序是前台应用还是后台应用。并且,绘制频率限制模块还可以通过活动管理服务获取该应用程序的注册信息。其中,注册信息用于唯一标识该应用程序。例如,注册信息可以是应用程序的包名,或者注册信息可以是应用程序对应的进程名,在此不做限定。
[0352]
当该应用程序为前台应用时,编舞者可以执行默认的绘制操作。或者编舞者在执行默认的绘制操作前,向绘制频率限制模块请求是否允许进行本次绘制,绘制频率限制模块在没有收到后台应用标识前,会一直允许编舞者进行默认的绘制操作。
[0353]
当该应用程序转变为后台应用时,活动管理服务监听到该应用程序的主活动执行了onstop方法或/和该应用程序的进程的cpuset参数为background或key

background时,确定该应用程序转变为后台应用。活动服务管理会告知绘制频率限制模块该应用程序转变为后台应用。在活动管理服务确定该应用程序为后台应用后,会将后台应用标识发送给绘制频率限制模块。其中后台应用标识中可以包括应用程序的注册信息。绘制频率限制模块收到后台应用标识后,可以根据绘制频率限制策略确定后台绘制频率。
[0354]
当该应用程序变为后台应用后,由于该应用程序没有被冻结,该应用程序的编舞者会向surfaceflinger发送请求垂直同步信号。并且响应于应用程序的请求,surfaceflinger会向该应用程序的编舞者发送垂直同步信号。
[0355]
应用程序的编舞者在接收到垂直同步信号后,执行绘制操作前,会向绘制频率限制模块发送请求绘制信息。当编舞者收到绘制频率限制模块的允许绘制请求时,编舞者继续执行本次无效的绘制操作;而当编舞者没有收到绘制频率限制模块的允许绘制请求时,编舞者直接结束本次无效的绘制操作。其中,绘制频率限制模块根据后台绘制频率确定是否允许编舞者进行本次无效的绘制操作可以参考上文图12中所示的内容,此处不再赘述。
[0356]
值得说明的是,绘制频率限制模块可以位于应用的编舞者内部,也可以位于操作系统的服务中。
[0357]
结合图12中的内容以及上文中表1所示的绘制频率限制策略,以音乐这一应用程序为例,具体的介绍图17所示的场景。
[0358]
当用户启动音乐时,活动管理服务可以获取音乐的包名为com.android.mediacenter,进程名为hwmusic。活动管理服务器将音乐的包名或/和进程名发送给绘制频率限制模块。绘制频率限制模块根据当前垂直同步信号频率(60hz)和音乐的注册信息,确定音乐的后台绘制频率为10hz。
[0359]
当用户将音乐切换至后台时,活动管理服务器将后台应用标识发送到绘制频率限制模块。此时当音乐的编舞者接收到垂直同步信号后,该编舞者向绘制频率限制模块请求绘制。绘制频率限制模块每接收到编舞者的5次绘制请求,允许编舞者执行绘制操作一次,使得音乐的编舞者的执行无效的绘制操作的频率降低为10hz。
[0360]
当用户将音乐从后台切换至前台时,活动管理服务器通知绘制频率限制模块:该音乐转变为前台应用。此时,绘制频率限制模块每次接收到编舞者的绘制请求,都会运行编舞者进行绘制操作。
[0361]
图18为本技术实施例中管控后台应用的无效的绘制操作场景的另一个示例性示意图。
[0362]
如图18所示,与图17所示内容类似的,用户启动应用程序后,会初始化该应用程序的编舞者,并在初始化编舞者的过程中,初始化该编舞者中的绘制频率限制模块。在初始化
绘制频率限制模块后,绘制频率限制模块根据绘制频率限制策略,确定该应用程序的后台绘制频率。
[0363]
当该应用程序为前台应用时,应用程序的编舞者执行默认的绘制操作。
[0364]
当该应用程序转变为后台应用时,活动管理服务将后台应用标识传给绘制频率限制模块。绘制频率限制模块收到后台应用标识后,确定该应用程序为后台应用。
[0365]
当该应用程序转变为后台应用后,编舞者请求、并接收到垂直同步信号后,可以使用doframe方法执行绘制操作。绘制频率限制模块可以拦截编舞者处理动画事件任务,使得编舞者实质上没有执行本次无效的绘制操作。
[0366]
当应用程序从后台应用转变为前台应用后,活动管理服务向该应用程序的编舞者发送前台应用标识。绘制频率限制模块在接收到前台应用标识后,确定该编舞者所属的应用程序转变为前台应用,进而不会拦截编舞者处理动画事件任务,使得编舞者可以执行默认的绘制操作。
[0367]
上述实施例中所用,根据上下文,术语“当

时”可以被解释为意思是“如果
…”
或“在

后”或“响应于确定
…”
或“响应于检测到
…”
。类似地,根据上下文,短语“在确定

时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定
…”
或“响应于确定
…”
或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
[0368]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘)等。
[0369]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜