动效绘制方法和装置与流程
未命名
09-13
阅读:81
评论:0

1.本技术涉及终端技术领域,尤其涉及一种动效绘制方法和装置。
背景技术:
2.目前,带有图形用户接口(graphical user interface,gui)的应用程序通常包含动效这一界面特性。动效是通过终端设备在特定时间段内播放若干帧连续的视图,由于用户(人类)的视觉暂留的原因,用户会将非连续的视图识别为连续的动画,在视觉上会达到连续的效果。通常情况下,终端设备需要在1秒内绘制60帧以上连续的视图。当终端设备的显示界面的组件的形状和/或位置可能发生变化时,例如窗口大小改变、显示新的窗口、窗口颜色变化等,终端设备需要进行重绘,即重新绘制显示界面的视图。
3.然而,现有的动效绘制方法,终端设备重绘次数较多,使得动效绘制效率较低,终端设备的功耗较大,用户体验感较差。
技术实现要素:
4.本技术提供一种动效绘制方法和装置,能够提高动效绘制效率,降低终端设备的功耗。
5.第一方面,提供了一种动效绘制方法,所述方法应用于包括第一类目标视图和第二类目标视图的视图绘制场景,所述第一类目标视图中的重绘区域包括第一逻辑对应的控件,所述第二类目标视图的重绘区域包括所述第一逻辑对应的控件和第二逻辑对应的控件,所述方法包括:按照绘制周期绘制所述第一类目标视图;在所述第一类目标视图绘制完成之后,判断所述第二类目标视图中的第一帧视图的预绘制时间是否为所述绘制周期中的绘制时间;若否,则不在所述预绘制时间绘制所述第二类目标视图;在所述绘制周期中的绘制时间绘制所述第二类目标视图。
6.本技术实施例提供的动效绘制方法,终端设备根据绘制周期和目标视图中的第一帧视图的绘制时间确定绘制周期包括的绘制时间,终端设备在绘制周期包括的绘制时间绘制视图。这样,即使由于终端设备执行逻辑后,需要增加重绘次数,也会先判断增加的视图的绘制时间是否是上述的绘制周期包括的绘制时间,如果不是,终端设备将不进行重绘,而是在绘制周期包括的绘制时间重绘视图。这样,能够减少终端设备在绘制周期包括的绘制时间之外的时间的重绘次数,能够在保证用户视觉效果的前提下,提高重绘效率,减小终端设备的功耗。
7.应理解,逻辑可以指开发者向终端设备输入的,以使终端设备能够据此绘制动效的依据。逻辑也可以称为代码,当终端设备执行逻辑时,将按照逻辑的规定绘制视图。目标视图指终端设备播放动效需要的显示所有视图,目标视图的数量为多个。第一类目标视图和第二类目标视图中包括的控件的不同,或者,第一类目标视图和第二类目标视图中包括的控件相同,但是该控件的变化维度不同。
8.在第一方面的某些实现方式中,所述视图绘制场景还包括第三类目标视图,所述
第三类目标视图不包括所述第一逻辑对应的控件、包括所述第二逻辑对应的控件;所述方法还包括:在所述第二类目标视图绘制完成之后,在所述绘制周期中的绘制时间绘制所述第三类目标视图,或者,在所述第三类目标视图的预绘制时间绘制所述第三类目标视图。
9.应理解,终端设备先显示第一类目标视图,再显示第二类目标视图,最后显示第三类目标视图。第三类目标视图不包括第一逻辑对应的控件、包括第二逻辑对应的控件,说明当终端设备开始显示第三类目标视图时,在动效中不显示第一逻辑对应的控件发生的变化,动效中只显示第二逻辑对应的控件发生的变化。
10.在第一方面的某些实现方式中,所述绘制所述第二类目标视图,包括:确定所述第一逻辑对应的控件和所述第二逻辑对应的控件的绘制顺序;按照所述绘制顺序,绘制所述第二类目标视图。
11.应理解,绘制顺序为终端设备绘制控件的顺序。示例性地,假设视图中包括圆形按钮和方形按钮,圆形按钮和方形按钮均为控件,则终端设备绘制该视图需要依据圆形按钮和方形按钮的绘制顺序进行绘制。
12.在第一方面的某些实现方式中,所述确定所述第一逻辑对应的控件和所述第二逻辑对应的控件的绘制顺序,包括:基于所述第一逻辑对应的控件与所述第二逻辑对应的控件在所述第二类目标视图中的位置关系,确定所述绘制顺序。
13.应理解,位置关系可以指第一逻辑对应的控件与第二逻辑对应的控件在同一视图中的上下层关系,此时,终端设备先绘制位于下层的控件,再绘制位于上层的控件。位置关系还可以指第一逻辑对应的控件与第二逻辑对应的控件在同一视图中的方位关系。
14.在第一方面的某些实现方式中,所述第一逻辑对应的控件包括多个第一绘制任务,所述第二逻辑对应的控件包括多个第二绘制任务;所述方法还包括:确定所述多个第一绘制任务的第一绘制顺序;确定所述多个第二绘制任务的第二绘制顺序;所述按照所述绘制顺序,绘制所述第二类目标视图,包括:按照所述绘制顺序、所述第一绘制顺序以及所述第二绘制顺序,绘制所述第二类目标视图。
15.应理解,绘制任务指绘制一个控件需要执行的任务,例如,绘制框架、填充颜色、绘制文字、绘制材质等。终端设备绘制视图,需要按照绘制顺序依次绘制每个控件。终端设备绘制控件通常需要执行多个绘制任务,因此,终端设备需要根据多个绘制任务的绘制顺序绘制该控件。
16.在第一方面的某些实现方式中,所述确定所述多个第一绘制任务的第一绘制顺序,包括:基于所述多个第一绘制任务之间的关联关系,确定所述第一绘制顺序。
17.应理解,第一绘制任务指终端设备绘制第一逻辑对应的控件需要执行的任务。
18.在第一方面的某些实现方式中,所述确定所述多个第二绘制任务的第二绘制顺序,包括:基于所述多个第二绘制任务之间的关联关系,确定所述第二绘制顺序。
19.应理解,第二绘制任务指终端设备绘制第二逻辑对应的控件需要执行的任务。
20.在第一方面的某些实现方式中,所述在所述绘制周期中的绘制时间绘制所述第二类目标视图,包括:若所述第二类目标视图中存在第一视图,所述第一视图未在所述第一视图的下一帧视图对应的绘制时间之前绘制完成,则不在所述下一帧视图对应的绘制时间绘制所述下一帧视图;等所述第一视图绘制完成之后,绘制所述下一帧视图。
21.应理解,第一视图指第二类目标视图中除最后一帧视图之外的任意一帧视图,第
一视图的下一帧视图指终端设备在第一视图绘制完成后,下一次绘制的视图。
22.第二方面,提供了一种动效绘制装置,用于执行上述第一方面中任一种可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面中任一种可能的实现方式中的方法的模块。
23.第三方面,提供了又一种动效绘制装置,包括处理器,该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面中任一种可能实现方式中的方法。可选地,该装置还包括存储器。可选地,该装置还包括通信接口,处理器与通信接口耦合。
24.在一种实现方式中,该装置为终端设备。当该装置为终端设备时,上述通信接口可以是收发器,或,输入/输出接口。
25.在另一种实现方式中,该装置为配置于终端设备中的芯片。当该装置为配置于终端设备中的芯片时,上述通信接口可以是输入/输出接口。
26.第四方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。所述处理电路用于通过所述输入电路接收信号,并通过所述输出电路发射信号,使得所述处理器执行上述第一方面中任一种可能实现方式中的方法。
27.在具体实现流程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本技术实施例对处理器及各种电路的具体实现方式不做限定。
28.第五方面,提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行上述第一方面中任一种可能实现方式中的方法。
29.可选地,所述处理器为一个或多个,所述存储器为一个或多个。
30.可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
31.在具体实现流程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,rom),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术对存储器的类型以及存储器与处理器的设置方式不做限定。
32.应理解,相关的数据交互流程例如发送指示信息可以为从处理器输出指示信息的流程,接收能力信息可以为处理器接收输入能力信息的流程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
33.上述第五方面中的处理装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
34.第六方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行上述第一方面中
任一种可能实现方式中的方法。
35.第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
36.图1为本技术实施例提供的一种终端设备的结构示意图;
37.图2为本技术实施例提供的一种终端设备的软件结构框图;
38.图3为本技术实施例提供的一种动效的界面显示示意图;
39.图4为本技术实施例提供的现有动效绘制方法中视图的绘制时间示意图;
40.图5为本技术实施例提供的动效绘制方法的流程示意图;
41.图6为本技术实施例提供的视图的绘制时间的示意图;
42.图7为本技术实施例提供的一种笔记本电脑的显示界面示意图;
43.图8为本技术实施例提供的另一种笔记本电脑的显示界面示意图;
44.图9为本技术实施例提供的又一种笔记本电脑的显示界面示意图;
45.图10为本技术实施例提供的又一种终端设备的软件结构框图;
46.图11为本技术实施例提供的一种动效绘制装置的结构示意图;
47.图12为本技术实施例提供的另一种动效绘制装置的结构示意图。
具体实施方式
48.下面将结合附图,对本技术中的技术方案进行描述。
49.在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一数值和第二数值仅仅是为了区分不同的数值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
50.需要说明的是,本技术实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
51.本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a
‑‑
c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
52.本技术实施例提供的终端设备为安装有windows操作系统的终端设备,具体可以为笔记本电脑、平板电脑(pad)、台式电脑等。本技术的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
53.终端设备中可以安装有多种应用程序,例如音乐、图库、视频等。目前,终端设备中
的应用程序通常具有动效特性,即终端设备在特定时间段内播放若干帧连续的视图,由于用户(人类)的视觉暂留的原因,用户会将非连续的视图识别为连续的动画,在视觉上会达到连续的效果。
54.为了更好的理解本技术实施例中的终端设备,下面结合图1对本技术实施例的终端设备的硬件结构进行详细说明。
55.图1为本技术实施例提供的终端设备100的结构示意图。如图1所示,终端设备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等。
56.可以理解的是,本技术实施例示意的结构并不构成对终端设备100的具体限定。在本技术另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
57.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
58.控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
59.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
60.在一些实施例中,处理器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)接口等。
61.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含
多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现终端设备100的触摸功能。
62.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
63.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
64.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
65.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现终端设备100的显示功能。
66.gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
67.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如ar设备等。
68.可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本技术另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
69.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备供电。
70.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏
194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
71.终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
72.天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
73.移动通信模块150可以提供应用在终端设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
74.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
75.无线通信模块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转为电磁波辐射出去。
76.在一些实施例中,终端设备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)。
77.终端设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
78.显示屏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的正整数。
79.终端设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
80.isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
81.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,终端设备100可以包括1个或n个摄像头193,n为大于1的正整数。
82.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
83.视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
84.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
85.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
86.内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括
指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。
87.终端设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
88.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
89.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备100可以通过扬声器170a收听音乐,或收听免提通话。
90.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
91.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。终端设备100可以设置至少一个麦克风170c。在另一些实施例中,终端设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
92.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动终端设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
93.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。终端设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端设备100根据压力传感器180a检测所述触摸操作强度。终端设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
94.陀螺仪传感器180b可以用于确定终端设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定终端设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感
器180b可以用于拍摄防抖。示例性地,当按下快门,陀螺仪传感器180b检测终端设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
95.气压传感器180c用于测量气压。在一些实施例中,终端设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
96.磁传感器180d包括霍尔传感器。终端设备100可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当终端设备100是翻盖机时,终端设备100可以根据磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
97.加速度传感器180e可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
98.距离传感器180f,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180f测距以实现快速对焦。
99.接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。终端设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端设备100附近有物体。当检测到不充分的反射光时,终端设备100可以确定终端设备100附近没有物体。终端设备100可以利用接近光传感器180g检测用户手持终端设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
100.环境光传感器180l用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测终端设备100是否在口袋里,以防误触。
101.指纹传感器180h用于采集指纹。终端设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
102.温度传感器180j用于检测温度。在一些实施例中,终端设备100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,终端设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端设备100对电池142加热,以避免低温导致终端设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,终端设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
103.触摸传感器180k,也称“触控器件”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于终端设备100的表面,与显示屏194所处的位置不同。
104.骨传导传感器180m可以获取振动信号。在一些实施例中,骨传导传感器180m可以获取人体声部振动骨块的振动信号。骨传导传感器180m也可以接触人体脉搏,接收血压跳
动信号。在一些实施例中,骨传导传感器180m也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180m获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180m获取的血压跳动信号解析心率信息,实现心率检测功能。
105.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
106.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
107.指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
108.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卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用esim,即:嵌入式sim卡。esim卡可以嵌在终端设备100中,不能和终端设备100分离。终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的android系统为例,示例性说明终端设备100的软件结构。
109.图2为本技术实施例的终端设备100的windows系统的软件结构框图。
110.如图2所示,windows系统的分层架构主要分为用户态和内核态,用户态可以包括用户应用程序进程,以及系统进程与服务进程等;内核态可以包括内核和设备驱动层,以及硬件抽象层等。
111.用户应用程序进程可以执行一系列应用程序,例如,音乐,图库,蓝牙,wlan,游戏,备忘录,视频等。
112.系统进程与服务进程中可以包括输入管理器、资源管理器、视图系统、绘制触发器、动效触发器、时间管理器、任务管理器等,可以为用户应用程序进程的执行提供相应服务。
113.输入管理器用于获取和传递用户的多种输入信息。
114.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
115.视图系统可以负责应用程序的界面绘制和事件处理。
116.任务管理器,用于将多个控件的绘制任务、每个控件的多个绘制任务进行排序,并将排序结果发送至时间管理器。
117.时间管理器,用于监控终端设备中视图所对应的绘图任务的绘制时间,并根据来
自任务管理器的排序结果,确定多个绘制任务的绘制时间,当到达绘制任务的绘制时间时,向绘制触发器发送任务绘制通知消息,以使绘制触发器执行绘制任务。
118.绘制触发器,用于根据来自时间管理器的任务绘制通知消息,触发终端设备的绘图任务,例如绘制边框,填充颜色等。
119.动效触发器,用于在视图绘制完成后,触发动效。
120.内核层和设备驱动层可以包括绘图引擎、图像处理器(graphics processing unit,gpu)驱动、显示驱动、中央处理器(central processing unit,cpu)驱动等,硬件抽象层可以包括图形应用程序编程接口(application programming interface,api)、gpu模块、硬件配置模块、cpu模块等,本技术实施例对此不做限制。
121.图形api可以为图形设备接口(graphics device interface,gdi)、多媒体编程接口(direct extension,dx)、开放图形库(open graphics library,opengl)等,用于调用绘图引擎。绘图引擎可以为skia等,用于将绘图任务转换为绘图指令,以使终端设备通过调用图形api调用cpu和/或gpu根据绘图指令绘图,绘图任务可以为绘制边框,填充颜色等。
122.通常情况下,当终端设备的显示界面中的视图中包括的组件的形状和/或位置发生变化时,例如窗口大小改变、显示新的窗口、窗口颜色变化等,终端设备需要对视图进行重绘,即重新绘制显示界面的视图。终端设备通常需要在1秒内重绘60帧以上连续的视图,以使用户在视觉上达到终端设备的显示界面连续变化的效果。在本技术实施例中,终端设备为用户显示一段动效,动效中包括运动的第一控件和第二控件。控件可以指动效播放过程中终端设备显示的视图中所包括的一个完整的图形。一帧视图中可以包括一个或者多个控件,多个控件之间可以相互重叠或者远离,本技术实施例对此不作限定。
123.下面以终端设备是笔记本电脑为例,结合图3对本技术实施例的动效进行详细说明。
124.图3为本技术实施例提供的一种动效300的界面显示示意图。笔记本电脑所显示的视图中的第一控件为圆形按钮,第二控件为方形按钮。笔记本电脑显示给用户的动效包括以下内容:如图3(a)所示,一个圆形按钮从笔记本电脑显示屏的右侧,沿水平方向向左侧滑动。如图3(b)所示,在圆形按钮滑动至显示屏的中间位置时,显示屏右侧出现方形按钮,方形按钮与圆形按钮以相同的速度向显示屏的左侧滑动。如图3(c)所示,当圆形按钮滑动至显示屏的最左侧时,方形按钮滑动至显示屏的中间位置,然后,圆形按钮在显示屏中消失,方形按钮继续向左侧滑动。如图3(d)所示,方形按钮滑动至显示屏最左侧后,将同样在显示屏中消失。
125.为了向用户呈现出圆形按钮和方形按钮移动的效果,笔记本电脑需要绘制多帧不同的视图,并且多帧视图中的每两帧视图均不相同。笔记本电脑每更新一帧视图,圆形按钮和方形按钮的位置均会发生变化。
126.应理解,动效300仅是一种示例,动效300中包括的控件的数量可以为一个或者多个,控件可以为任意形状,控件可以按照任意方向移动,或者变换任意形状,本技术实施例对此不做具体限定。需要说明的是,当动效300中包括的控件的数量为一个时,在动效300显示过程中,该控件至少存在两个维度发生变化,维度可以为位置、形状、颜色等。示例性地,当动效300中仅包括圆形按钮时,动效300可以为圆形按钮向左滑动的过程中,其直径不断变大。
127.然而,现有的动效绘制方法,终端设备重绘次数较多,使得动效绘制效率较低,终端设备的功耗较大,用户体验感较差。
128.下面结合图3和图4对现有的动效绘制方法进行详细说明。
129.假设在动效300中只出现圆形按钮的情况下,笔记本电脑需重绘10帧视图显示圆形按钮从显示屏右侧向左侧的滑动过程;在动效300中只出现方形按钮的情况下,笔记本电脑需重绘10帧视图显示方形按钮从显示屏右侧向左侧的滑动过程。按照现有的动效绘制方法,笔记本电脑显示动效300共需重绘20帧视图。伴随上述20帧视图的播放,用户能够看到圆形按钮先出现于显示屏(如图3(a)所示),然后伴随着圆形按钮的向左滑动,方形按钮出现于显示屏(如图3(b)所示),伴随着方形按钮和圆形按钮的向左滑动,圆形按钮滑动至显示屏的最左侧(如图3(c)所示),然后圆形按钮从显示屏消失,方形按钮向左滑动至显示屏的最左侧(如图3(d)所示),最后方形按钮从显示屏消失。
130.按照现有的动效绘制方法,假设笔记本电脑按照10ms的绘制周期绘制视图,并且笔记本电脑开始绘制动效300中包括的第一帧视图的时间为0ms,则在动效300中只出现圆形按钮的情况下,笔记本电脑绘制动效300包括的十帧视图的时间如图4(1)所示。
131.如图4中(1)所示,第一帧视图的开始绘制时间为0ms,后面9帧视图的绘制时间依次分别为10ms,20ms,30ms,40ms,50ms,60ms,70ms,80ms,90ms。
132.在动效300中包括圆形按钮和方形按钮的情况下,笔记本电脑绘制20帧视图的时间如图4(2)所示。第一帧视图对应于图3(a)中笔记本电脑显示的界面,即圆形按钮开始出现于显示屏的界面。第一帧视图至第五帧视图对应圆形按钮出现于显示屏后向左滑动的过程,并且第一帧视图至第五帧视图中只包括圆形按钮。第六帧视图对应于图3(b)中笔记本电脑显示的界面,即圆形按钮滑动至显示屏中间,且方形按钮第一次出现于显示屏的界面。第六帧视图至第十五帧视图中包括圆形按钮和方形按钮,且对应圆形按钮和方形按钮同时向左侧滑动的过程。第十五帧视图对应于图3(c)中笔记本电脑显示的界面,即方形按钮滑动至显示屏中间,且圆形按钮最后出现于显示屏的视图。第十六帧视图至第二十帧视图中仅包括方形按钮,对应于方向按钮由显示屏中间向左滑动的过程,方形按钮在第十六帧视图至第二十帧视图中的位置均不相同。第二十帧视图对应于图3(d)中笔记本电脑显示的界面,即方形按钮最后出现于显示屏的界面。
133.本领域的技术人员可以理解,在动效300的显示过程中,显示屏中只有圆形按钮滑动时,笔记本电脑的重绘区域只包括圆形按钮;在动效300的显示过程中,显示屏中有圆形按钮和方形按钮同时滑动时,笔记本电脑的重绘区域包括圆形按钮和方形按钮。重绘区域指终端设备在绘制的下一帧视图中发生变化的区域。例如,在动效300中,当显示屏中只有圆形按钮滑动时,由于只有圆形按钮的位置在发生变化,因此重绘区域仅包括圆形按钮,笔记本电脑在重绘视图时,只有圆形按钮的位置发生变化。
134.从上述的具体示例可以看出,随着重绘区域包含的控件的数量和/或变化维度的数量的增多,终端设备需要重绘的次数呈倍数增长。在终端设备的算力固定的情况下,终端设备需要重绘的次数越多,动效绘制时间会增长,使得终端设备的动效绘制效率较低,功耗较大。
135.为了解决上述技术问题,本技术提供一种动效绘制方法,终端设备按照固定帧率刷新视图,即按照绘制周期重绘视图,随着终端设备重绘区域包含的控件的数量的增多和/
或控件的变化维度的数量的增多,不会在绘制周期的重绘时间之外的时间重绘视图,这样,能够在保证用户视觉效果的前提下,减少终端设备的重绘次数,进而提高终端设备的动效绘制效率,减小功耗。
136.下面结合图5至图10对本技术的动效绘制方法进行详细介绍。本技术实施例动效绘制方法可以由安装有windows操作系统的终端设备执行,例如平板电脑、笔记本电脑、台式电脑等,也可以为支持终端设备实现确定弹窗消息来源的方法的芯片、芯片系统或处理器,还可以是能实现全部或部分终端设备的逻辑模块或软件,本技术对此不做具体限制。下面以终端设备为执行主体对本技术实施例的动效绘制方法进行详细说明。
137.本技术实施例的动效绘制方法应用于包括第一类目标视图和第二类目标视图的视图绘制场景,第一类目标视图中的重绘区域包括第一逻辑对应的控件,第二类目标视图的重绘区域包括第一逻辑对应的控件和第二逻辑对应的控件。
138.应理解,逻辑可以指开发者向终端设备输入的程序,以使终端设备能够据此绘制动效的依据。逻辑也可以称为代码,当终端设备执行逻辑时,将按照逻辑的规定绘制视图。目标视图指终端设备播放动效需要的显示所有视图,目标视图的数量为多个。
139.在动效涉及多个控件的情况下,多个控件中的每个控件在每帧视图中的绘制均是终端设备执行不同的逻辑实现的。示例性地,在动效300中,方形按钮和圆形按钮各为一个控件,假设第一逻辑对应的控件为圆形按钮,第二逻辑对应的控件为方形按钮,则笔记本电脑为了呈现圆形按钮滑动的效果所绘制的多帧的视图是基于执行第一逻辑实现的;笔记本电脑为了呈现方形按钮滑动的效果所绘制的多帧的视图是基于执行第二逻辑实现的。笔记本电脑根据第一逻辑确定每帧视图中圆形按钮的位置,根据第二逻辑确定每帧视图中方形按钮的位置。
140.本领域的技术人员可以理解,第一逻辑对应的控件和第二逻辑对应的控件可以是相同或者不同的控件。在相同的情况下,第一逻辑规定的控件发生的变化维度和第二逻辑规定的控件发生的变化维度不同。示例性地,假设第一逻辑对应的控件和第二逻辑对应的控件相同,控件为圆形按钮,则第一逻辑可以用于规定圆形按钮的大小不断变化;第二逻辑可以用于规定圆形按钮的位置不断发生变化。
141.应理解,第一类目标视图和第二类目标视图中包括的控件的不同,或者,第一类目标视图和第二类目标视图中包括的控件相同,但是该控件的变化维度不同。并且,终端设备先显示第一类目标视图,后显示第二类目标视图。示例性地,第一类目标视图和第二类目标视图中包括的控件的不同时,例如在动效300中,假设第一逻辑对应的控件为圆形按钮,第二逻辑对应的控件为方形按钮,则第一类目标视图指视图中的重绘区域仅包括圆形按钮的视图,对应于图4(2)中所示的第一帧视图至第五帧视图,用于向用户呈现动效300中笔记本电脑显示图3(a)所示的界面至显示图3(b)显示的界面之前的过程;第二类目标视图指视图中的重绘区域包括圆形按钮和方形按钮的视图,对应于图4(2)中所示的第六帧视图至第十五帧视图,用于向用户呈现动效300中笔记本电脑显示图3(b)所示的界面至显示图3(c)显示的界面的过程。在第一类目标视图和第二类目标视图中包括的控件相同,但是该控件的变化维度不同时,假设动效为圆形按钮的不断增大,然后在圆形按钮的直径增大至第一阈值时,圆形按钮变大的同时向左滑动,第一逻辑规定圆形按钮的大小不断变大,第二逻辑规定圆形按钮的位置不断发生变化,则第一类目标视图中的重绘区域包括圆形按钮,并且重
绘区域中圆形按钮的直径增大;第二类目标视图中的重绘区域包括圆形按钮,并且重绘区域中圆形按钮的直径增大,同时圆形按钮的位置也发生变化。
142.图5为本技术实施例提供的动效绘制方法500的流程示意图。方法500由终端设备执行,该终端设备的硬件结构如图1所示,软件结构如图2所示。方法500包括以下步骤:
143.s501、按照绘制周期绘制第一类目标视图。
144.应理解,绘制周期指终端设备播放动效过程中显示的多帧视图中,每相邻两帧视图的绘制时间的时间间隔。绘制周期可以根据终端设备刷新视图的固定帧率确定,固定帧率指终端设备按照固定的时间间隔更新一帧视图,例如可以为60fps、100fps等。
145.示例性地,当开发者设定终端设备的固定帧率为60fps时,终端设备每秒需要更新60帧视图,则相邻两帧视图之间的时间间隔为1000ms/60=16.6ms,即终端设备的重绘周期为16.6ms,假设终端设备绘制第一帧视图的开始时间为1ms,则第二帧视图的绘制时间为17.6ms。
146.s502、在第一类目标视图绘制完成之后,判断第二类目标视图中的第一帧视图的预绘制时间是否为绘制周期中的绘制时间。
147.应理解,第一帧视图指第二类目标视图中终端设备最先绘制并显示的视图,即在动效中,第二逻辑对应的控件最先显示时对应的视图。例如,已知在图4(2)中,第二类目标视图指第六帧视图至第十五帧视图,第二类目标视图中的第一帧视图即为图4(2)中的第六帧视图,该视图对应于图3(b)中笔记本电脑显示的界面。预绘制时间指终端设备执行第二逻辑,开始重绘第二类目标视图中的第一帧视图的时间。示例性地,在图4(2)中,笔记本电脑重绘第六帧视图的时间为45ms,则45ms为预绘制时间。
148.s503、若否,则不在预绘制时间绘制第二类目标视图。
149.若第二类目标视图中的第一帧视图的预绘制时间不是绘制周期中的绘制时间,则不在该时间重绘视图。示例性地,在图4(2)中,假设绘制周期为10ms,绘制周期包括的绘制时间为0ms,10ms,20ms,30ms,40ms,50ms,60ms
···
。图4(2)所示的第六帧视图为第二类目标视图的第一帧视图,其预绘制时间为45ms,不属于绘制周期包括的绘制时间,则在45ms时,笔记本电脑不会绘制图4(2)所示的第六帧视图。类似地,当第二类目标视图中除第一帧视图外的其余视图的预绘制时间不是绘制周期中的绘制时间时,终端设备同样不会绘制视图。
150.在绘制周期包括的绘制时间中,相邻的两个绘制时间之间,可能存在第二类目标视图的多个预绘制时间,此时,该多个预绘制时间对应的多帧视图将均不会绘制。示例性地,在图4(2)中,假设绘制周期为10ms,绘制周期包括的绘制时间为0ms,10ms,20ms,30ms,40ms,50ms,60ms
···
。第六帧视图为第二类目标视图的第一帧视图,其预绘制时间为45ms,假设第二类目标视图中还存在第n帧视图,第n帧视图的预绘制时间为48ms,则上述的第六帧视图和第n帧视图将均不会被笔记本电脑绘制。
151.s504、在绘制周期中的绘制时间绘制第二类目标视图。
152.应理解,在终端设备刷新视图的固定帧率是确定的情况下,当终端设备开始绘制第一类目标视图的第一帧视图时,绘制周期中的绘制时间可以根据第一类目标视图的第一帧视图的绘制时间以及固定帧率确定。示例性地,如果终端设备的固定帧率为100fps,则绘制周期为1000ms/100=10ms。假设第一类目标视图的第一帧视图的绘制时间为0ms,则绘制
周期包括的绘制时间为0ms,10ms,20ms,30ms,40ms
···
。
153.在绘制周期中的绘制时间绘制第二类目标视图,指终端设备会按照绘制周期中的绘制时间进行重绘。示例性地,在图4(2)中,第六帧视图的预绘制时间为45ms,由于45ms不属于绘制周期的绘制时间,因此笔记本电脑在45ms时,不会进行重绘,而是于50ms时进行重绘。
154.本技术实施例提供的动效绘制方法,终端设备根据绘制周期和目标视图中的第一帧视图的绘制时间确定绘制周期包括的绘制时间,终端设备在绘制周期包括的绘制时间绘制视图。这样,即使由于终端设备执行逻辑后,需要增加重绘次数,也会先判断增加的视图的绘制时间是否是上述的绘制周期包括的绘制时间,如果不是,终端设备将不进行重绘,而是在绘制周期包括的绘制时间重绘视图。这样,能够减少终端设备在绘制周期包括的绘制时间之外的时间的重绘次数,能够在保证用户视觉效果的前提下,提高重绘效率,减小终端设备的功耗。
155.在一种可能的实施方式中,视图绘制场景还包括第三类目标视图,第三类目标视图不包括第一逻辑对应的控件、包括第二逻辑对应的控件;方法500还包括:在第二类目标视图绘制完成之后,在绘制周期中的绘制时间绘制第三类目标视图,或者,在第三类目标视图的预绘制时间绘制第三类目标视图。
156.应理解,终端设备先显示第一类目标视图,再显示第二类目标视图,最后显示第三类目标视图。第三类目标视图不包括第一逻辑对应的控件、包括第二逻辑对应的控件,说明当终端设备开始显示第三类目标视图时,在动效中不显示第一逻辑对应的控件发生的变化,动效中只显示第二逻辑对应的控件发生的变化。示例性地,在动效300中,第三类目标视图指只包括方形按钮,不包括圆形按钮的视图,对应于动效300中,笔记本电脑显示图3(c)之后的界面至图3(d)的界面的过程。或者,假设动效为圆形按钮先增大,然后在增大的同时向左滑动,最后在圆形按钮大小保持不变的情况下向左滑动,则第三类目标视图对应于,终端设备为了显示圆形按钮大小保持不变的情况下向左滑动过程所绘制的多帧视图。
157.下面结合具体示例对动效绘制方法的过程进行详细说明。
158.在一个具体的示例中,动效300中,笔记本电脑的固定帧率为100fps,绘制周期为1000ms/100=10ms,第一类目标视图中的第一帧视图的绘制时间为0ms,圆形按钮从显示屏右侧滑动至左侧共需绘制10帧视图。绘制周期包括的绘制时间为0ms,10ms,20ms,30ms,40ms
···
。
159.当笔记本电脑执行第一逻辑后,将绘制第一逻辑对应的圆形按钮。此时,笔记本电脑绘制的视图为第一类目标视图。如图6所示,笔记本电脑执行第一逻辑,在0ms绘制第一帧视图,10ms绘制第二帧视图,以此类推,在40ms时绘制第五帧视图。可以理解,第一帧视图至第五帧视图为第一类目标视图,第一类目标视图中仅包括圆形按钮。第一类目标视图是笔记本电脑根据第一逻辑绘制的,此时,笔记本电脑还未执行第二逻辑。
160.笔记本电脑在执行第二逻辑后,将会增加重绘次数。假设笔记本电脑根据第二逻辑,预设的第二类目标视图中的第一帧视图的预绘制时间为45ms,并且第二逻辑规定方形按钮的绘制周期同样为10ms,则笔记本电脑绘制第二类目标视图的预绘制时间为图4中(2)中所示的第六帧视图至第十五帧视图的绘制时间。其中,第六帧视图、第八帧视图、第十帧视图、第十二帧视图、第十四帧视图是由于笔记本电脑执行第二逻辑所增加的重绘的视图。
第二类目标视图中的第一帧视图为图4中(2)中所示的第六帧视图,其预绘制时间为45ms,由于笔记本电脑在执行第二逻辑后,第一帧的视图的预绘制时间为45ms,则笔记本电脑结合第一帧的视图的预绘制时间以及绘制周期,将在55ms时再次进行重绘,即绘制图4中(2)中所示的第八帧视图,以此类推,笔记本电脑将根据第二逻辑依次在65ms、75ms、85ms依次重绘图4中(2)中所示的第十帧视图、第十二帧视图和第十四帧视图;由于第一逻辑规定了圆形按钮的滑动过程中,笔记本电脑按照10ms的绘制周期进行重绘,则笔记本电脑在50ms时也会进行重绘,即绘制图4中(2)中所示的第七帧视图,以此类推,笔记本电脑将根据第一逻辑依次在60ms、70ms、80ms和90ms依次重绘图4中(2)中所示的第八帧视图、第十一帧视图、第十三帧视图和第十五帧视图。由于第二类目标视图中的第一帧视图(图4中(2)中所示的第六帧视图)的预绘制时间不是绘制周期包括的绘制时间,因此,在45ms时,笔记本电脑将不会重绘图4中(2)中所示的第六帧视图,而是在相邻的绘制周期包括的绘制时间,即50ms时再绘制视图,此时,图4中(2)中所示的第七帧视图为第二类目标视图的第一帧视图。类似地,65ms、75ms、85ms均不属于绘制周期包括的绘制时间,因此,终端设备将不会在65ms、75ms、85ms时进行重绘,而是根据第二类目标视图中的第一帧视图的绘制时间和绘制周期进行重绘。具体地,第二类目标视图中的第一帧视图的绘制时间为50ms,绘制周期为10ms,因此,笔记本电脑将在60ms、70ms、80ms和90ms重绘其余第二类目标视图。笔记本电脑绘制第一类目标视图和第二类目标视图的绘制时间如图6所示。
161.在动效300所示的动效中,随着圆形按钮和方形的滑动,圆形按钮在显示屏消失后,笔记本电脑绘制的视图中将只包括方形按钮,该部分只包括方形按钮的视图为第三类目标视图,即图4中(2)中所示的第十六帧视图至第二十帧视图,对应动效300中笔记本电脑显示图3(c)所示的界面后至显示图3(d)所示的界面的过程。根据第二逻辑,第十六帧视图至第二十帧视图的预绘制时间分别为95ms、105ms、115ms、125ms、135ms。由于95ms、105ms、115ms、125ms、135ms均不属于绘制周期包括的绘制时间,因此,笔记本电脑将不会在95ms、105ms、115ms、125ms、135ms时进行重绘,并且根据第二类目标视图中的最后一帧视图(图6所示第十帧视图)的绘制时间和绘制周期确定第三类目标视图的绘制时间依次分别为100ms、110ms、120ms、130ms、140ms。根据本技术实施例提供的动效绘制方法,动效300包括的视图的绘制时间如图6所示,并且笔记本电脑共需绘制15帧视图,相比于现有技术中需要绘制20帧视图,本技术实施例提供的动效绘制方法能够减少终端设备的重绘次数,减小功耗。
162.在一个可选的实施例中,步骤s504中的绘制第二类目标视图具体可以通过以下方式实现:确定第一逻辑对应的控件和第二逻辑对应的控件的绘制顺序;按照绘制顺序,绘制第二类目标视图。
163.应理解,绘制顺序为终端设备绘制控件的顺序。示例性地,如图3(b)所示的视图中,包括圆形按钮和方形按钮,圆形按钮和方形按钮均为控件,则笔记本电脑绘制该视图需要依据圆形按钮和方形按钮的绘制顺序进行绘制。
164.在一种可能的实施方式中,基于第一逻辑对应的控件与第二逻辑对应的控件在第二类目标视图中的位置关系,确定绘制顺序。
165.应理解,位置关系可以指第一逻辑对应的控件与第二逻辑对应的控件在同一视图中的上下层关系,此时,终端设备先绘制位于下层的控件,再绘制位于上层的控件。示例性
地,在如图7所示的视图中,假设第一逻辑对应的控件为圆形按钮,第二逻辑对应的控件为方形按钮,圆形按钮位于方形按钮的上层,因此,笔记本电脑绘制该视图时,先绘制方形按钮,再绘制圆形按钮。位置关系还可以指第一逻辑对应的控件与第二逻辑对应的控件在同一视图中的方位关系。示例性地,图8所示的视图为1号圆形按钮自转、2号圆形按钮围绕1号圆形按钮公转的动效中的一帧视图,在该视图中,第一逻辑对应的控件为1号圆形按钮,第二逻辑对应的控件为2号圆形按钮,此时,笔记本电脑先绘制1号圆形按钮,再绘制2号圆形按钮,这样,便于根据1号圆形按钮的位置确定2号圆形按钮的位置,有助于提高动效绘制效率。
166.在另一种可能的实施方式中,终端设备可以根据第一逻辑对应的控件和第二逻辑对应的控件的逻辑关系,确定绘制顺序。
167.应理解,逻辑关系可以指第一逻辑对应的控件和第二逻辑对应的控件之间的主次关系、递进关系等。示例性地,当第一逻辑对应的控件为树,第二逻辑对应的控件为小鸟时,小鸟落在树的一个树干上,此时,第一逻辑对应的控件和第二逻辑对应的控件之间的关系为主次关系,终端设备可以先绘制主要控件(树),再绘制次要控件(小鸟)。当第一逻辑对应的控件为开花之前的桃树,第二逻辑对应的控件为开花后的桃树时,此时,第一逻辑对应的控件和第二逻辑对应的控件之间的关系为递进关系,终端设备可以先绘制先发展阶段的控件(开花之前的桃树),后绘制后发展阶段的控件(开花后的桃树)。这样,有助于提高终端设备绘制视图的效率。
168.在又一种可能的实施方式中,终端设备可以根据第一逻辑对应的控件和第二逻辑对应的控件的逻辑关系和位置关系,确定绘制顺序。
169.关于逻辑关系和位置关系的说明可参看前文,此处不再赘述。
170.在另一个可选的实施例中,第一逻辑对应的控件包括多个第一绘制任务,第二逻辑对应的控件包括多个第二绘制任务;方法500还包括:确定多个第一绘制任务的第一绘制顺序;确定多个第二绘制任务的第二绘制顺序;按照绘制顺序、第一绘制顺序以及第二绘制顺序,绘制第二类目标视图。
171.应理解,绘制任务指绘制一个控件需要执行的任务,例如,绘制框架、填充颜色、绘制文字、绘制材质等。终端设备绘制视图,需要按照绘制顺序依次绘制每个控件。终端设备绘制控件通常需要执行多个绘制任务,因此,终端设备需要根据多个绘制任务的绘制顺序绘制该控件。
172.在一种可能的实施方式中,基于多个第一绘制任务之间的关联关系,确定多个第一绘制任务的第一绘制顺序。
173.在另一种可能的实施方式中,基于多个第二绘制任务之间的关联关系,确定多个第二绘制任务的第二绘制顺序。
174.应理解,第一绘制任务指终端设备绘制第一逻辑对应的控件需要执行的任务。第二绘制任务指终端设备绘制第二逻辑对应的控件需要执行的任务。关联关系可以指绘制任务对应的绘制内容之间的逻辑关系。例如,填充颜色需要在一个封闭的框架内填充,因此,填充颜色在绘制框架后执行;绘制材质需要依据框架和颜色绘制,因此,绘制材质可以在绘制框架、填充颜色后执行;文字通常情况下显示于视图中的最上层,因此,绘制文字可以最后执行。
175.示例性地,如图9所示的视图中包括的控件,该控件为黑色圆环,并且黑色圆环中心标有数字1,此时绘制任务包括,绘制外圆框架、绘制内圆框架、填充颜色、绘制文字。终端设备可以先绘制外圆框架,再绘制内圆框架,然后在外圆框架和内圆框架形成的圆环内填充颜色,最后再绘制文字。可选地,根据上述的关联关系,终端设备可以确定多个绘制任务的优先级,并根据该优先级,确定多个绘制任务的绘制顺序。
176.在又一个可选的实施例中,步骤s504具体可以通过以下方式实现:若第二类目标视图中存在第一视图,第一视图未在第一视图的下一帧视图对应的绘制时间之前绘制完成,则不在下一帧视图对应的绘制时间绘制下一帧视图;等第一视图绘制完成之后,绘制下一帧视图。
177.应理解,第一视图指第二类目标视图中除最后一帧视图之外的任意一帧视图,第一视图的下一帧视图指终端设备在第一视图绘制完成后,下一次绘制的视图。例如,图4(2)所示的第七帧视图为第一视图,则图4(2)所示的第八帧视图为上述的下一帧视图。根据绘制周期,终端设备每隔相同的时间段则重绘一次,但是并非所有的视图均能够在该时间段内绘制完成。例如,假设第一视图为图4(2)所示的第七帧视图,该视图的开始绘制时间为60ms,按照绘制周期,第八帧视图的绘制时间为70ms。然而,在70ms时,如果第七帧视图未绘制完成,终端设备将继续绘制第七帧视图,直至第七帧视图绘制完成。假设第七帧视图在75ms时绘制完成,则第八帧视图将在75ms时绘制。如果第八帧视图在78ms时绘制完成,则终端设备将在80ms时绘制第九帧视图;如果第八帧视图在82ms时绘制完成,则终端设备将在82ms时绘制第九帧视图。
178.在一种可能的实施方式中,在第一类目标视图,或者,第三类目标视图中,存在第二视图,第二视图未在第二视图的下一帧视图对应的绘制时间之前绘制完成,则不在下一帧视图对应的绘制时间绘制下一帧视图;等第二视图绘制完成之后,绘制下一帧视图。
179.可以理解,该实施方式与上述实施方式的具体实施过程类似,可以参看前文,在此不再赘述。
180.下面结合图10对动效绘制方法的具体实施过程进行详细说明。
181.如图10所示,终端设备包括以下模块:渲染模块、图形模块、控件模块、绘图管理模块。控件模块包括绘制触发器和动效触发器,绘图管理模块包括时间管理器和任务管理器。其中,控件模块和绘图管理模块可以位于图2所示的软件结构的用户态中的系统进程和服务进程中,渲染模块和图形模块可以位于图2所示的软件结构的用户态,渲染模块封装的绘图引擎具体可以位于内核态中的内核层和设备驱动,图形模块封装的图形api具体可以位于内核态中的硬件抽象层。动效绘制方法的具体实施过程包括以下步骤:
182.s1001、终端设备通过控件模块将整个视图划分为多个控件,并且确定每个控件的多个绘制任务,并将包含多个控件及每个控件对应的绘制任务的第一消息发送至任务管理器。
183.s1002、终端设备通过任务管理器根据来自控件模块的包含多个控件及每个控件对应的绘制任务的第一消息,确定多个控件的绘制顺序,以及每个控件对应的多个绘制任务的绘制顺序,并将包含多个控件的绘制顺序和每个控件对应的多个绘制任务的绘制顺序的第二消息发送至控件模块。
184.s1003、终端设备通过控件模块根据来自任务管理器的包含多个控件的绘制顺序
和每个控件对应的多个绘制任务的绘制顺序的第二消息,将多个绘图任务以绘制触发器的方式注册于时间管理器。
185.s1004、终端设备通过时间管理器监控每帧视图中包括的多个绘制任务的绘制时间,当多个绘制任务中的第一绘制任务到达绘制时间点时,时间管理器触发控件模块的绘制触发器。
186.时间管理器还用于监控每帧视图的绘制时间,以使终端设备能够按照绘制周期包括的绘制时间绘制视图。
187.s1005、在绘制触发器触发后,控件模块调用图形模块的绘图功能,该绘图功能可以指绘图引擎,例如,skia引擎等。
188.s1006、终端设备通过图形模块根据控件模块调用的绘图功能,向渲染模块发送绘图指令。
189.图形模块封装多种绘图引擎。
190.s1007、终端设备通过渲染模块根据来自图形模块的绘图指令,通过图形api调用cpu和/或gpu执行绘图任务。
191.渲染模块封装多种图形api,例如,gdi、directx、opengl等。
192.应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
193.上文结合图5至图10,详细描述了本技术实施例的动效绘制方法,下面结合图11和图12,详细描述本技术实施例的动效绘制装置。
194.图11为本技术实施例提供的一种动效绘制装置1100的结构示意图。装置1100应用于包括第一类目标视图和第二类目标视图的视图绘制场景,第一类目标视图中的重绘区域包括第一逻辑对应的控件,第二类目标视图的重绘区域包括第一逻辑对应的控件和第二逻辑对应的控件。如图11所示,装置1100包括:绘制模块1101和处理模块1102。
195.装置1100用于实现上述方法500中终端设备对应的步骤。
196.绘制模块1101,用于按照绘制周期绘制第一类目标视图;
197.处理模块1102,用于在第一类目标视图绘制完成之后,判断第二类目标视图中的第一帧视图的预绘制时间是否为绘制周期中的绘制时间;
198.绘制模块1101还用于:若第二类目标视图中的第一帧视图的预绘制时间不是绘制周期中的绘制时间,则不在预绘制时间绘制第二类目标视图;在绘制周期中的绘制时间绘制第二类目标视图。
199.可选地,视图绘制场景还包括第三类目标视图,第三类目标视图不包括第一逻辑对应的控件、包括第二逻辑对应的控件;绘制模块1101还用于:在第二类目标视图绘制完成之后,在绘制周期中的绘制时间绘制第三类目标视图,或者,在第三类目标视图的预绘制时间绘制第三类目标视图。
200.可选地,绘制模块1101具体用于:确定第一逻辑对应的控件和第二逻辑对应的控件的绘制顺序;按照绘制顺序,绘制第二类目标视图。
201.可选地,绘制模块1101具体用于:基于第一逻辑对应的控件与第二逻辑对应的控件在第二类目标视图中的位置关系,确定绘制顺序。
202.可选地,第一逻辑对应的控件包括多个第一绘制任务,第二逻辑对应的控件包括
多个第二绘制任务;处理模块1102还用于:确定多个第一绘制任务的第一绘制顺序;确定多个第二绘制任务的第二绘制顺序;绘制模块1101具体用于:按照绘制顺序、第一绘制顺序以及第二绘制顺序,绘制第二类目标视图。
203.可选地,处理模块1102具体用于:基于多个第一绘制任务之间的关联关系,确定第一绘制顺序。
204.可选地,处理模块1102具体用于:基于多个第二绘制任务之间的关联关系,确定第二绘制顺序。
205.可选地,绘制模块1101具体用于:若第二类目标视图中存在第一视图,第一视图未在第一视图的下一帧视图对应的绘制时间之前绘制完成,则不在下一帧视图对应的绘制时间绘制下一帧视图;等第一视图绘制完成之后,绘制下一帧视图。
206.应理解,这里的装置1100以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选的例子中,本领域技术人员可以理解,装置1100可以具体为上述实施例中的终端设备,装置1100可以用于执行上述方法实施例中与终端设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
207.上述装置1100具有实现上述方法中终端设备执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。例如,上述处理模块1102可以包括判断模块,该判断模块可以用于实现上述处理模块1101对应的用于执行判断动作的各个步骤和/或流程。
208.在本技术的实施例,图11中的装置1100也可以是芯片,例如:soc。对应地,处理模块1101可以是该芯片的收发电路,在此不做限定。
209.图12示出了本技术实施例提供的一种动效绘制装置1200的结构示意图。该装置1200包括处理器1201、收发器1202和存储器1203。其中,处理器1201、收发器1202和存储器1203通过内部连接通路互相通信,该存储器1203用于存储指令,该处理器1201用于执行该存储器1203存储的指令,以控制该收发器1202发送信号和/或接收信号。
210.应理解,装置1200可以具体为上述实施例中的终端设备,并且可以用于执行上述方法实施例中与终端设备对应的各个步骤和/或流程。可选地,该存储器1203可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器1201可以用于执行存储器中存储的指令,并且当该处理器1201执行存储器中存储的指令时,该处理器1201用于执行上述方法实施例的各个步骤和/或流程。该收发器1202可以包括发射器和接收器,该发射器可以用于实现上述收发器对应的用于执行发送动作的各个步骤和/或流程,该接收器可以用于实现上述收发器对应的用于执行接收动作的各个步骤和/或流程。
211.应理解,在本技术实施例中,该处理器可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
212.在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
213.本技术还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,该计算机程序用于实现上述方法实施例中所示的方法。
214.本技术还提供了一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述方法实施例所示的方法。应理解,这里的装置1100以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选的例子中,本领域技术人员可以理解,装置1100可以具体为上述实施例中的终端设备,装置1100可以用于执行上述方法实施例中与终端设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
215.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
216.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
217.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
218.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
219.另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
220.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
221.以上所述,仅为本技术的具体实施方式,但本技术实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术实施例的保护范围之内。因此,本技术实施例的保护范围应所述以权利要求的保护范围为准。
技术特征:
1.一种动效绘制方法,其特征在于,应用于包括第一类目标视图和第二类目标视图的视图绘制场景,所述第一类目标视图中的重绘区域包括第一逻辑对应的控件,所述第二类目标视图的重绘区域包括所述第一逻辑对应的控件和第二逻辑对应的控件,所述方法包括:按照绘制周期绘制所述第一类目标视图;在所述第一类目标视图绘制完成之后,判断所述第二类目标视图中的第一帧视图的预绘制时间是否为所述绘制周期中的绘制时间;若否,则不在所述预绘制时间绘制所述第二类目标视图;在所述绘制周期中的绘制时间绘制所述第二类目标视图。2.根据权利要求1所述的方法,其特征在于,所述视图绘制场景还包括第三类目标视图,所述第三类目标视图不包括所述第一逻辑对应的控件、包括所述第二逻辑对应的控件;所述方法还包括:在所述第二类目标视图绘制完成之后,在所述绘制周期中的绘制时间绘制所述第三类目标视图,或者,在所述第三类目标视图的预绘制时间绘制所述第三类目标视图。3.根据权利要求1或2所述的方法,其特征在于,所述绘制所述第二类目标视图,包括:确定所述第一逻辑对应的控件和所述第二逻辑对应的控件的绘制顺序;按照所述绘制顺序,绘制所述第二类目标视图。4.根据权利要求3所述的方法,其特征在于,所述确定所述第一逻辑对应的控件和所述第二逻辑对应的控件的绘制顺序,包括:基于所述第一逻辑对应的控件与所述第二逻辑对应的控件在所述第二类目标视图中的位置关系,确定所述绘制顺序。5.根据权利要求3或4所述的方法,其特征在于,所述第一逻辑对应的控件包括多个第一绘制任务,所述第二逻辑对应的控件包括多个第二绘制任务;所述方法还包括:确定所述多个第一绘制任务的第一绘制顺序;确定所述多个第二绘制任务的第二绘制顺序;所述按照所述绘制顺序,绘制所述第二类目标视图,包括:按照所述绘制顺序、所述第一绘制顺序以及所述第二绘制顺序,绘制所述第二类目标视图。6.根据权利要求5所述的方法,其特征在于,所述确定所述多个第一绘制任务的第一绘制顺序,包括:基于所述多个第一绘制任务之间的关联关系,确定所述第一绘制顺序。7.根据权利要求5或6所述的方法,其特征在于,所述确定所述多个第二绘制任务的第二绘制顺序,包括:基于所述多个第二绘制任务之间的关联关系,确定所述第二绘制顺序。8.根据权利要求1至7任一项所述的方法,其特征在于,所述在所述绘制周期中的绘制时间绘制所述第二类目标视图,包括:若所述第二类目标视图中存在第一视图,所述第一视图未在所述第一视图的下一帧视图对应的绘制时间之前绘制完成,则不在所述下一帧视图对应的绘制时间绘制所述下一帧
视图;等所述第一视图绘制完成之后,绘制所述下一帧视图。9.一种动效绘制装置,其特征在于,应用于包括第一类目标视图和第二类目标视图的视图绘制场景,所述第一类目标视图中的重绘区域包括第一逻辑对应的控件,所述第二类目标视图的重绘区域包括所述第一逻辑对应的控件和第二逻辑对应的控件,所述装置包括:绘制模块,用于按照绘制周期绘制所述第一类目标视图;处理模块,用于在所述第一类目标视图绘制完成之后,判断所述第二类目标视图中的第一帧视图的预绘制时间是否为所述绘制周期中的绘制时间;所述绘制模块还用于:若否,则不在所述预绘制时间绘制所述第二类目标视图;在所述绘制周期中的绘制时间绘制所述第二类目标视图。10.根据权利要求9所述的装置,其特征在于,所述视图绘制场景还包括第三类目标视图,所述第三类目标视图不包括所述第一逻辑对应的控件、包括所述第二逻辑对应的控件;所述绘制模块还用于:在所述第二类目标视图绘制完成之后,在所述绘制周期中的绘制时间绘制所述第三类目标视图,或者,在所述第三类目标视图的预绘制时间绘制所述第三类目标视图。11.根据权利要求9或10所述的装置,其特征在于,所述绘制模块具体用于:确定所述第一逻辑对应的控件和所述第二逻辑对应的控件的绘制顺序;按照所述绘制顺序,绘制所述第二类目标视图。12.根据权利要求11所述的装置,其特征在于,所述绘制模块具体用于:基于所述第一逻辑对应的控件与所述第二逻辑对应的控件在所述第二类目标视图中的位置关系,确定所述绘制顺序。13.根据权利要求11或12所述的装置,其特征在于,所述第一逻辑对应的控件包括多个第一绘制任务,所述第二逻辑对应的控件包括多个第二绘制任务;所述处理模块还用于:确定所述多个第一绘制任务的第一绘制顺序;确定所述多个第二绘制任务的第二绘制顺序;所述绘制模块具体用于:按照所述绘制顺序、所述第一绘制顺序以及所述第二绘制顺序,绘制所述第二类目标视图。14.根据权利要求13所述的装置,其特征在于,所述处理模块具体用于:基于所述多个第一绘制任务之间的关联关系,确定所述第一绘制顺序。15.根据权利要求13或14所述的装置,其特征在于,所述处理模块具体用于:基于所述多个第二绘制任务之间的关联关系,确定所述第二绘制顺序。16.根据权利要求9至15任一项所述的装置,其特征在于,所述绘制模块具体用于:若所述第二类目标视图中存在第一视图,所述第一视图未在所述第一视图的下一帧视图对应的绘制时间之前绘制完成,则不在所述下一帧视图对应的绘制时间绘制所述下一帧视图;
等所述第一视图绘制完成之后,绘制所述下一帧视图。17.一种动效绘制装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,当所述处理器调用所述计算机程序时,使得终端设备执行如权利要求1至8中任一项所述的方法。18.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于实现如权利要求1至8中任一项所述的方法的指令。19.一种计算机程序产品,其特征在于,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得所述计算机实现如权利要求1至8中任一项所述的方法。
技术总结
本申请提供了一种动效绘制方法和装置,能够提高动效绘制效率,降低终端设备的功耗。该方法应用于包括第一类目标视图和第二类目标视图的视图绘制场景,所述第一类目标视图中的重绘区域包括第一逻辑对应的控件,所述第二类目标视图的重绘区域包括所述第一逻辑对应的控件和第二逻辑对应的控件,所述方法包括:按照绘制周期绘制所述第一类目标视图;在所述第一类目标视图绘制完成之后,判断所述第二类目标视图中的第一帧视图的预绘制时间是否为所述绘制周期中的绘制时间;若否,则不在所述预绘制时间绘制所述第二类目标视图;在所述绘制周期中的绘制时间绘制所述第二类目标视图。周期中的绘制时间绘制所述第二类目标视图。周期中的绘制时间绘制所述第二类目标视图。
技术研发人员:王祺
受保护的技术使用者:荣耀终端有限公司
技术研发日:2022.11.14
技术公布日:2023/9/11
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/