画面绘制方法、装置、存储介质以及终端与流程

文档序号:30389392发布日期:2022-06-11 13:30阅读:111来源:国知局
画面绘制方法、装置、存储介质以及终端与流程

1.本技术涉及计算机技术领域,尤其涉及一种画面绘制方法、装置、存储介质以及终端。


背景技术:

2.安卓系统中,屏幕刷新过程主要可以概括为三部分:中央处理器(central processing unit,简称cpu)计算屏幕数据、图形处理器(graphics processing unit,简称gpu)进一步处理和缓存、最后由显示器将缓存中的数据显示出来。通常,在屏幕的刷新率为60hz时,终端每隔16ms左右刷新一次屏幕,也就是说,底层每隔16ms左右发出一个vsync信号,每当vsync信号到来时,显示器将缓存中的数据显示出来,与此同时,处理器开始计算下一帧画面的数据,然后将下一帧画面的数据存储在缓存中,当又一个vsync信号到来时,显示器从缓存中将这一帧画面的数据显示出来。


技术实现要素:

3.本技术实施例提供了一种画面绘制方法、装置、计算机存储介质以及终端,可以减小因动画回调耗时太久导致界面绘制超时完成的概率,进而可以减小应用刷新超时的概率,进而可以减小掉帧的概率。所述技术方案如下:
4.第一方面,本技术实施例提供了一种画面绘制方法,所述方法包括:
5.确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻;
6.在所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同步周期的界面绘制。
7.第二方面,本技术实施例提供了一种画面绘制装置,所述装置包括:
8.时间确定模块,用于确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻;
9.画面绘制模块,用于在所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同步周期的界面绘制。
10.第三方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
11.第四方面,本技术实施例提供了一种终端,可包括:存储器和处理器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述存储器加载并执行上述的方法步骤。
12.本技术实施例提供的技术方案带来的有益效果至少包括:
13.本技术实施例的方案在执行时,确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻,在所述当前界面绘制完成时刻与所述下一
同步信号到达时刻之间的空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同步周期的界面绘制。本技术通过将下一同步周期的动画回调,提前至当前同步周期内的空闲时间内开始执行的方式,并在下一同步周期的动画回调完成后执行下一同步周期的界面绘制,可以减小因动画回调耗时太久导致界面绘制超时完成的概率,进而可以减小应用刷新超时的概率,进而可以减小掉帧的概率。
附图说明
14.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.图1是本技术实施例提供的一种画面绘制方法的流程示意图;
16.图2是本技术实施例提供的一种画面绘制的原理示意图;
17.图3是本技术实施例提供的另一种画面绘制方法的流程示意图;
18.图4是本技术实施例提供的另一种画面绘制的原理示意图;
19.图5是本技术实施例提供的又一种画面绘制的原理示意图;
20.图6是本技术实施例提供的又一种画面绘制的原理示意图;
21.图7是本技术实施例提供的又一种画面绘制的原理示意图;
22.图8是本技术实施例提供的一种画面绘制装置的结构示意图;
23.图9是本技术实施例提供的一种终端的结构示意图。
具体实施方式
24.为使得本技术实施例的发明目的、特征、优点能够更加的明显和易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而非全部实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.在本技术的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本技术的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本技术中的具体含义。此外,在本技术的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
26.安卓系统中,现有的用户界面(user interface,简称ui)刷新方案主要是每隔一段时间刷新一次的方式。如刷新率为60hz时,每隔16ms左右底层会发送一个vsync信号,显
示器会从buffer里取数据,然后显示出来一帧画面。而在vsync信号到来时,处理器会去执行下一帧画面的工作,主要包括执行应用动画(animation)回调,以及执行ui绘制,这些工作需要在相应的时间内完成(刷新率为60hz时,时间为16ms左右)。如果在当前16ms的时间周期内,animation回调和ui绘制在此期间没有执行完成,即工作超时,在下一个vsync信号到来时,显示器从buffer里无法取到这帧画面的数据,就无法显示这帧画面,就会出现掉帧的问题。出现工作超时的问题,主要是由于animation回调耗时较多,很多情况下都是由于animation回调耗时太久,然后导致下一个vsync信号到来时,ui绘制未完成,导致应用刷新超时,从而出现掉帧的问题。
27.下面结合具体的实施例对本技术进行详细说明。
28.在下述方法实施例中,为了便于说明,仅以各步骤的执行主体为终端进行介绍说明。
29.请参见图1,为本技术实施例提供的一种画面绘制方法的流程示意图。如图1所示,本技术实施例的所述方法可以包括以下步骤:
30.s101,确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻。
31.可以理解的是,同步周期指的是两个vsync信号之间的时间段所对应的一个时间周期。当前同步周期,可以为当前时刻正在经历的一个同步周期。下一同步周期,可以为当前同步周期之后的下一个同步周期。在ui刷新的过程中,比如屏幕刷新率为60hz,每隔16ms左右到来一个vsync同步信号,在每一个vsync同步信号到来时,显示器需要从buffer里获取当前帧画面的数据,然后将当前帧画面显示出来,与此同时,处理器需要做下一帧画面的刷新准备工作,主要包括animation回调和ui绘制。因此,当前界面绘制可以为当前同步周期内终端需要执行的ui绘制,当前界面绘制完成时刻可以为当前ui绘制完成时所对应的时间点。下一同步信号可以为下一个vsync信号,下一同步信号到达时刻可以为下一个vsync信号到来时所对应的时间点。
32.比如,可参见图2所示的画面绘制的原理示意图,在图2中,同步信号表示vsync信号,在每一个同步信号到来时,显示器需要从buffer里获取“当前帧画面”的数据,然后将“当前帧画面”进行显示,与此同时,处理器需要开始执行“下一帧画面”的准备工作,主要包括动画回调和界面绘制,等到下一个同步信号到来时,显示器就可以获取“下一帧画面”的数据,然后将“下一帧画面”进行显示,处理器同时执行相应的工作,按照前述操作重复执行,便可实现屏幕刷新。在图2中,可以将同步信号1和同步信号2之间的时间周期称为当前同步周期,那么,同步信号2和同步信号3之间的时间周期称为下一同步周期,同步信号2的到达时刻就为下一同步信号的到达时刻。
33.在一些实施例中,在终端的屏幕刷新过程中,终端可以直接获取到当前同步周期内,当前界面绘制执行完成的时间点,即当前界面绘制完成时刻。终端还可以计算得到下一同步周期的下一同步信号到来的时间点,即下一同步信号到来时刻。通常,一个同步周期对应的持续时长可以为屏幕刷新率的倒数,下一同步信号到来时刻可以在当前同步信号到来时刻的基础上加上一个同步周期对应的持续时长得到。
34.s102,在所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同
步周期的界面绘制。
35.在一些实施例中,在当前同步周期内,处理器通常先执行animation回调,将animation回调执行完成后,会开始执行当前界面绘制,在将当前界面绘制执行完成后,当前同步周期还没有结束,即当前界面绘制完成时所对应的时间点还在当前同步周期的时间内,那么当前界面绘制完成时刻与下一同步信号到达时刻之间的时间段就可以称为空闲时间,下一同步信号到达时刻为下一同步周期的起始点。相关技术中,在当前同步周期内,若存在空闲时间,处理器会等到下一同步信号到达时刻开始执行下一同步周期的animation回调,并在下一同步周期的animation回调执行完成后执行下一同步周期的界面绘制。而在本技术实施例的方案中,在当前同步周期内,若存在空闲时间,可以在空闲时间内开始执行下一同步周期的动画回调,并在动画回调完成后执行下一同步周期的界面绘制。
36.本技术实施例的方案在执行时,确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻,在所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同步周期的界面绘制。本技术通过将下一同步周期的动画回调,提前至当前同步周期内的空闲时间内开始执行的方式,并在下一同步周期的动画回调完成后执行下一同步周期的界面绘制,可以减小因动画回调耗时太久导致界面绘制超时完成的概率,进而可以减小应用刷新超时的概率,进而可以减小掉帧的概率。
37.请参见图3,为本技术实施例提供的一种画面绘制方法的流程示意图。如图3所示,本技术实施例的所述方法可以包括以下步骤:
38.s301,接收针对显示界面的滑动操作,获取在当前同步周期内动画回调的执行次数。
39.可以理解的是,显示界面可以为终端上显示的ui界面。滑动操作可以是用户ui界面上所执行的触控操作,比如,滑动操作可以是在垂直方向进行滑动的触控操作,可以是在水平方向进行滑动的触控操作,还可以是在任意方向任意角度进行滑动的触控操作。
40.执行次数,可以表示为当前同步周期内执行了多少次动画回调。
41.同步周期,可以为两个vsync信号之间的时间段所对应的一个时间周期。
42.在一些实施例中,所适用的应用场景可以为,用户在显示界面执行滑动操作。通常,用户在显示界面上执行滑动操作,响应于滑动操作,终端需要加载大量的内容并显示,如果应用程序设计优化不好,在此场景下进行屏幕刷新时,会出现animation回调太久,导致应用刷新超时,出现掉帧的问题。那么为减小此场景下出现掉帧的概率,可以在接收到用户针对显示界面的滑动操作时,获取在当前同步周期内动画回调的执行次数。在特定场景下,执行本方案的步骤,可以节省终端的资源,避免在一些不需要优化掉帧的场景下执行本方案造成的资源消耗。
43.s302,若所述执行次数小于预设次数,则确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻。
44.可以理解的是,预设次数可以设置为2次,那么执行次数只能为1次或者0次,保证本方案的步骤在执行之前,当前同步周期内仅能执行当前同步周期的动画回调。
45.当前同步周期,可以为当前时刻正在经历的一个同步周期。
46.下一同步周期,可以为当前同步周期之后的下一个同步周期。下一同步信号为下
一同步周期的起始点,下一同步信号也为vsync信号。
47.在一些实施例中,当确定执行次数满足预设条件,即小于预设次数时,终端可以直接获取当前绘制界面完成时所对应的时间点,即当前界面绘制完成时刻,进一步的,由于已知屏幕刷新率,自然可以知道屏幕刷新周期,屏幕刷新周期的持续时长就为同步周期的持续时长,在已知当前同步周期的持续时长的基础上,自然可以知道下一同步周期的起始点所对应的时间点,即可以知道下一同步信号的到达时刻。
48.需要说明的是,当执行次数大于或者等于预设次数时,不需要执行确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻的步骤,可以等待当前同步周期过去之后,下一同步周期到来时,将下一同步周期当做当前同步周期,并执行接收针对显示界面的滑动操作,获取在当前同步周期内动画回调的执行次数的步骤。
49.s303,在当前同步周期内,获取所述当前同步周期的动画回调对应的第一工作时长,以及获取所述当前同步周期的当前界面绘制对应的第二工作时长。
50.s304,计算所述第一工作时长和所述第二工作时长的和值,基于所述当前同步周期的总时长和所述和值确定所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间。
51.下面对s303和s304进行解释说明。
52.可以理解的是,第一工作时长,可以为终端完成当前同步周期的动画回调所持续的时长。第二工作时长,可以为完成当前同步周期的当前界面绘制所持续的时长。
53.当前同步周期的总时长,可以为当前同步周期所对应的周期内时长。比如,当屏幕刷新率为60hz时,一个同步周期的周期内时长就为16ms左右。
54.空闲时间,可以为当前同步周期内本不需要执行任务(不需要执行animation回调和ui绘制)的时间段。
55.在一些实施例中,在当前同步周期内,终端应当执行当前同步周期的动画回调,在当前同步周期的动画回调完成后,应该执行当前同步周期的当前界面绘制。进一步的,可以获取执行当前同步周期的动画回调所对应的第一工作时长,以及当前同步周期的当前界面绘制对应的第二工作时长,由于当前同步周期内,仅执行了一次动画回调,通常当前同步周期的动画回调在当前同步周期的当前同步信号到来时开始执行,那么可以计算出第一工作时长和第二工作时长的和值,自然可以由当前同步周期的总时长对应的时间段,减去和值所对应的在当前同步周期内由起点开始的时间段,即可得到当前同步周期内的空闲时间段,即当前界面绘制完成时刻与下一同步信号到达时刻之间的空闲时间。
56.s305,在所述空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后,开始执行所述下一同步周期的界面绘制。
57.在一些实施例中,在当前同步周期的空闲时间内,可以开始执行下一同步周期的动画回调,即将下一同步周期的动画回调提前至当前同步周期的空闲时间内开始执行,进一步的,待下一同步周期的动画回调完成后,此时还处于当前同步周期的空闲时间内,可以开始执行下一同步周期的界面绘制,即可以将下一同步周期的界面绘制提前至当前同步周期的空闲时间内执行。比如,可参见图4所示的画面绘制的原理示意图。在图4中,同步信号1和同步信号3之间的实线框表示当前同步周期的动画回调和界面绘制,虚线框表示下一同
步周期的动画回调和界面绘制,将当前同步周期内的动画回调和界面绘制执行完成后,在空闲时间内,开始执行下一同步周期的动画回调,并在下一同步周期的动画回调完成后,开始执行下一同步周期的界面绘制。
58.s306,在所述空闲时间内,确定所述下一同步周期的界面绘制完成时刻,以及确定所述界面绘制完成时刻与所述下一同步信号到达时刻之间的剩余空闲时间。
59.s307,若所述剩余空闲时间的持续时长大于预设时长,则在所述剩余空闲时间内,开始执行位于所述下一同步周期之后的相邻同步周期的动画回调,并在所述相邻同步周期的动画回调执行完成后执行所述相邻同步周期的界面绘制。
60.s308,若所述剩余空闲时间的持续时长小于或者等于预设时长,则在所述下一同步周期内,开始执行位于所述下一同步周期之后的相邻同步周期的动画回调,并在所述相邻同步周期的动画回调执行完成后执行所述相邻同步周期的界面绘制。
61.下面对s306~s308进行解释说明。
62.在一些实施例中,在当前同步周期的空闲时间内,开始执行下一同步周期的界面绘制,待下一同步周期的界面绘制完成后,若此时还处于当前同步周期的空闲时间内,则可以根据下一同步周期的界面绘制完成时刻与下一同步信号到达时刻,来确定这两个时刻之间的剩余空闲时间。进一步的,一方面,若确定剩余空闲时间的持续时长大于预设时长(表示剩余空闲时间充足,还可以再提前执行后面同步周期的动画回调),则可以在剩余空闲时长内开始执行位于下一同步周期之后的再下一个同步周期(即相邻同步周期)的动画回调,待相邻同步周期的动画回调执行完成后,不管当前处于当前同步周期内,还是处于下一同步周期内,都可以在相邻同步周期内开始执行相邻同步周期的界面绘制。比如,可参见图5所示的画面绘制的原理示意图。在图5中,同步信号1和同步信号3之间的实线框表示当前同步周期内的动画回调和界面绘制,虚线框表示下一同步周期内的动画回调和界面绘制,灰色框表示相邻同步周期的动画回调和界面绘制,下一同步周期的动画回调和界面绘制都在空闲时间内完成,并且空闲时间内还有充足的剩余空闲时间,在剩余空闲时间内可以开始执行相邻同步周期的动画回调。采用上述方法,在时间充足的基础上,选择将当前同步周期之后的两个同步周期的动画回调都提前执行,可以更进一步减小后面同步周期内动画回调超时完成的概率,进而可以更进一步减小由动画回调超时导致的掉帧的概率。
63.另一方面,若确定剩余空闲时间的持续时长小于或者等于预设时长(表示剩余空闲时间不足,不必再提前执行后面同步周期的动画回调),可以将位于下一同步周期之后的再一个同步周期(即相邻同步周期)的动画回调提前至下一同步周期内去执行,并在相邻同步周期的动画回调执行完成后执行相邻同步周期的界面绘制。在此种情况下,相邻同步周期的动画回调在下一同步周期内执行,可以待时间进入下一同步周期内时,将此方案参照s301~s307的步骤去执行,此时下一同步周期为上述步骤中的当前同步周期,相邻同步周期为上述步骤中的相邻同步周期。比如,可参见图6所示的画面绘制的原理示意图。图6中,同步信号1和同步信号3之间的实线框表示当前同步周期内的动画回调和界面绘制,虚线框表示下一同步周期内的动画回调和界面绘制,灰色框表示相邻同步周期的动画回调和界面绘制,下一同步周期的动画回调和界面绘制都在当前同步周期的空闲时间内完成,而此时剩余空闲时间不足,可以不再提前执行相邻同步周期的动画回调,可以将相邻同步周期的动画回调放在下一同步周期内去执行。采用上述方法,在时间不充足的基础上,保证提前执
行下一同步周期的动画回调,可以减小因动画回调耗时太久导致界面绘制超时完成的概率,进而可以减小应用刷新超时的概率,进而可以减小掉帧的概率,进而可以减小由掉帧引起卡顿的概率。
64.s309,在所述空闲时间内,开始执行所述下一同步周期的动画回调,所述下一同步周期的动画回调在所述空闲时间内完成,在所述下一同步周期内,并且在所述下一同步周期的下一同步信号到来时,开始执行所述下一同步周期的界面绘制。
65.在一些实施例中,在当前同步周期的空闲时间内,可以开始执行下一同步周期的动画回调,即将下一同步周期的动画回调提前至当前同步周期的空闲时间内开始执行,进一步的,待下一同步周期的动画回调完成后,此时还处于当前同步周期的空闲时间内,终端可以不再去执行任何一个同步周期的动画回调或者界面绘制,直至进入下一同步周期内,在下一同步周期的下一同步信号到来时,再开始执行下一同步周期的界面绘制。
66.可选的,在另外的实施例中,在当前同步周期的空闲时间内,可以开始执行下一同步周期的动画回调,即将下一同步周期的动画回调提前至当前同步周期的空闲时间内开始执行。进一步的,待下一同步周期的动画回调完成后,此时还处于当前同步周期的空闲时间内,终端可以开始执行位于下一同步周期之后的再下一个同步周期的动画回调,即将位于下一同步周期之后的再下一个同步周期的动画回调提前至当前同步周期的空闲时间内开始执行,直至进入下一同步周期内,在下一同步周期的下一同步信号到来时,再开始执行下一同步周期的界面绘制。采用上述方法,选择将当前同步周期之后的两个同步周期的动画回调都提前执行,可以更进一步减小因动画回调耗时太久导致界面绘制超时完成的概率,进而可以更进一步减小由界面绘制超时导致的掉帧的问题。
67.s310,在所述空闲时间内,开始执行所述下一同步周期的动画回调,在所述下一同步周期内,并且在所述下一同步周期的动画回调完成后,开始执行所述下一同步周期的界面绘制。
68.在一些实施例中,在当前同步周期的空闲时间内,可以开始执行下一同步周期的动画回调,即将下一同步周期的动画回调提前至当前同步周期的空闲时间内开始执行。进一步的,待下一同步周期的动画回调完成后,此时已处于下一同步周期内,可以开始执行下一同步周期的界面绘制。比如,可参见图7所示的画面绘制的原理示意图。在图7中,同步信号1和同步信号3之间的实线框表示当前同步周期的动画回调和界面绘制,虚线框表示下一同步周期的动画回调和界面绘制,在当前同步周期的空闲时间内开始执行下一同步周期的动画回调,待下一同步周期的动画回调完成后,此时已处于下一同步周期内,那么可以开始执行下一同步周期的动画回调。采用上述方法,在当前同步周期内,将下一同步周期的动画回调提前执行,可以减小因动画回调耗时太久导致界面绘制超时完成的概率,进而可以减小由界面绘制超时导致的掉帧的概率,进而可以减小由掉帧引起的卡顿的概率。
69.本技术实施例在接收针对显示界面的滑动操作时,获取在当前同步周期内动画回调的执行次数,可以在节省终端资源的情况下执行本方案,然后在确定执行次数小于预设次数的情况下,将下一同步周期的动画回调提前至当前同步周期的空闲时间内执行,接着在下一同步周期的动画回调完成后执行下一同步周期的界面绘制,在保证不影响终端内存的基础上,可以减小因动画回调耗时太久导致界面绘制超时完成的概率,进而可以减小应用刷新超时的概率,进而可以减小掉帧的概率,进而可以减小由掉帧引起卡顿的概率。并
且,本技术将动画回调的执行时机提前,并不涉及调整处理器的频率,不需要像相关技术中,通过提高处理器频率来解决卡顿的问题,提高处理器频率会增加终端的功耗,而本技术并不影响终端的功耗。另外,本技术将动画回调的执行时机提前,除了在当前同步周期内提前执行下一同步周期的动画回调,还可以在当前同步周期内提前执行下一同步周期的动画回调和界面绘制,甚至还可以在当前同步周期内执行下一同步周期的动画回调以及再下一同步周期的动画回调,可以更进一步减小因动画回调耗时太久导致界面绘制超时完成的概率,进而可以更进一步减小由界面绘制超时导致的掉帧的问题。
70.请参见图8,为本技术实施例提供的一种画面绘制装置的结构示意图。画面绘制装置800可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。装置800包括:
71.时间确定模块810,用于确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻;
72.画面绘制模块820,用于在所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同步周期的界面绘制。
73.可选的,时间确定模块810包括:
74.时间确定单元,用于接收针对显示界面的滑动操作,确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻。
75.可选的,装置800还包括:
76.次数判断模块,用于获取在当前同步周期内动画回调的执行次数;若所述执行次数小于预设次数,则执行确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻的步骤。
77.可选的,画面绘制模块820包括:
78.时长计算单元,用于在当前同步周期内,获取所述当前同步周期的动画回调对应的第一工作时长,以及获取所述当前同步周期的当前界面绘制对应的第二工作时长;
79.空闲时间确定单元,用于计算所述第一工作时长和所述第二工作时长的和值,基于所述当前同步周期的总时长和所述和值确定所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间;
80.画面绘制单元,用于在所述空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同步周期的界面绘制。
81.可选的,画面绘制模块820包括:
82.第一绘制单元,用于在所述空闲时间内,并且在所述下一同步周期的动画回调完成后,开始执行所述下一同步周期的界面绘制;
83.或,
84.第二绘制单元,所述下一同步周期的动画回调在所述空闲时间内完成,用于在所述下一同步周期内,并且在所述下一同步周期的下一同步信号到来时,开始执行所述下一同步周期的界面绘制;
85.或,
86.第三绘制单元,用于在所述下一同步周期内,并且在所述下一同步周期的动画回调完成后,开始执行所述下一同步周期的界面绘制。
87.可选的,第一绘制单元还包括:
88.第一绘制子单元,用于在所述空闲时间内,确定所述下一同步周期的界面绘制完成时刻;
89.第二绘制子单元,用于确定所述界面绘制完成时刻与所述下一同步信号到达时刻之间的剩余空闲时间;
90.第三绘制子单元,用于若所述剩余空闲时间的持续时长大于预设时长,则在所述剩余空闲时间内,开始执行位于所述下一同步周期之后的相邻同步周期的动画回调,并在所述相邻同步周期的动画回调执行完成后执行所述相邻同步周期的界面绘制。
91.可选的,第一绘制单元还包括:
92.第四绘制子单元,用于若所述剩余空闲时间的持续时长小于或者等于预设时长,则在所述下一同步周期内,开始执行位于所述下一同步周期之后的相邻同步周期的动画回调,并在所述相邻同步周期的动画回调执行完成后执行所述相邻同步周期的界面绘制。
93.请参考图9,图9为本技术实施例提供的一种终端的结构示意图。如图9所示,终端1300可以包括:至少一个处理器1301,至少一个网络接口1304,用户接口1303,存储器1305,显示屏组件1306,至少一个通信总线1302。
94.其中,通信总线1302用于实现这些组件之间的连接通信。
95.其中,用户接口1303可以包括显示屏(display)、摄像头(camera),可选用户接口1303还可以包括标准的有线接口、无线接口。
96.其中,网络接口1304可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
97.其中,处理器1301可以包括一个或者多个处理核心。处理器1301利用各种借口和线路连接整个终端1300内的各个部分,通过运行或执行存储在存储器1305内的指令、程序、代码集或指令集,以及调用存储在存储器1305内的数据,执行终端1300的各种功能和处理数据。可选的,处理器1301可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1301可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1301中,单独通过一块芯片进行实现。
98.其中,存储器1305可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器1305包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1305可用于存储指令、程序、代码、代码集或指令集。存储器1305可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1305可选的还可以是至少一个位于远离前述处理器1301的存储装置。如图9所示,作为一种计算机存储介质的存储器1305中可以包括操作系统、网络通信模块、用户接口模块以及画面绘制方法的程序。
99.在图9所示的终端1300中,用户接口1303主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1301可以用于调用存储器1305中存储的画面绘制方法的程序,并具体执行以下操作:
100.确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻;
101.在所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同步周期的界面绘制。
102.在一个实施例中,处理器1301在所述确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻的步骤时,具体执行以下操作:
103.接收针对显示界面的滑动操作,确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻。
104.在一个实施例中,处理器1301在执行所述确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻之前,还执行以下操作:
105.获取在当前同步周期内动画回调的执行次数;
106.若所述执行次数小于预设次数,则执行确定当前同步周期的当前界面绘制完成时刻,以及确定下一同步周期的下一同步信号到达时刻的步骤。
107.在一个实施例中,处理器1301在执行所述在所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同步周期的界面绘制的步骤时,具体执行以下操作:
108.在当前同步周期内,获取所述当前同步周期的动画回调对应的第一工作时长,以及获取所述当前同步周期的当前界面绘制对应的第二工作时长;
109.计算所述第一工作时长和所述第二工作时长的和值,基于所述当前同步周期的总时长和所述和值确定所述当前界面绘制完成时刻与所述下一同步信号到达时刻之间的空闲时间;
110.在所述空闲时间内,开始执行所述下一同步周期的动画回调,并在所述动画回调完成后执行所述下一同步周期的界面绘制。
111.在一个实施例中,处理器1301在执行所述在所述动画回调完成后执行所述下一同步周期的界面绘制的步骤时,具体执行以下操作:
112.在所述空闲时间内,并且在所述下一同步周期的动画回调完成后,开始执行所述下一同步周期的界面绘制;
113.或,
114.所述下一同步周期的动画回调在所述空闲时间内完成,在所述下一同步周期内,并且在所述下一同步周期的下一同步信号到来时,开始执行所述下一同步周期的界面绘制;
115.或,
116.在所述下一同步周期内,并且在所述下一同步周期的动画回调完成后,开始执行所述下一同步周期的界面绘制。
117.在一个实施例中,处理器1301在执行所述在所述空闲时间内,并且在所述下一同
步周期的动画回调完成后,开始执行所述下一同步周期的界面绘制之后,还执行以下操作:
118.在所述空闲时间内,确定所述下一同步周期的界面绘制完成时刻;
119.确定所述界面绘制完成时刻与所述下一同步信号到达时刻之间的剩余空闲时间;
120.若所述剩余空闲时间的持续时长大于预设时长,则在所述剩余空闲时间内,开始执行位于所述下一同步周期之后的相邻同步周期的动画回调,并在所述相邻同步周期的动画回调执行完成后执行所述相邻同步周期的界面绘制。
121.在一个实施例中,处理器1301还执行以下操作:
122.若所述剩余空闲时间的持续时长小于或者等于预设时长,则在所述下一同步周期内,开始执行位于所述下一同步周期之后的相邻同步周期的动画回调,并在所述相邻同步周期的动画回调执行完成后执行所述相邻同步周期的界面绘制。
123.除此之外,本领域技术人员可以理解,上述附图所示出的终端1300的结构并不构成对终端1300的限定,用户终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端1300中还包括射频电路、音频电路、wifi组件、电源、蓝牙组件等部件,在此不再赘述。
124.本技术实施例还提供了一种计算机可读存储介质,该计算机存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述各个实施例所述的画面绘制方法。
125.本技术实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的画面绘制方法。
126.本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
127.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1