页面绘制的控制方法、装置及设备转让专利

申请号 : CN201910569433.1

文献号 : CN110515610B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谭威余谭其支渠成李煜

申请人 : 华为技术有限公司

摘要 :

本申请实施例提供一种页面绘制的控制方法、装置及设备,该方法包括:获取第一页面的绘制指令,绘制指令用于指示绘制第一页面,第一页面中包括第一控件,第一控件中包括至少一个子控件;若确定存在第一控件对应的图像,且第一控件和第一控件中的子控件未发生更新,则根据第一控件对应的图像绘制第一控件;若确定不存在第一控件对应的图像,或者第一控件或第一控件中的子控件发生更新,则生成第一控件对应的图像并绘制第一控件。提高了页面绘制效率。

权利要求 :

1.一种页面绘制的控制方法,其特征在于,包括:获取第一页面的绘制指令,所述绘制指令用于指示绘制所述第一页面,所述第一页面中包括第一控件,所述第一控件中包括至少一个子控件;

若确定存在所述第一控件对应的图像,且所述第一控件和所述第一控件中的所有子控件未发生更新,则根据所述第一控件对应的图像绘制所述第一控件;

若确定不存在所述第一控件对应的图像,或者所述第一控件或所述第一控件中的至少一个子控件发生更新,则生成所述第一控件对应的图像并绘制所述第一控件;

所述根据所述第一控件对应的图像绘制所述第一控件,包括:生成所述图像对应的图像绘制命令;

将所述第一控件的显示列表中绘制命令更新为所述图像绘制命令;

根据更新后的所述第一控件的显示列表,绘制所述第一控件。

2.根据权利要求1所述的方法,其特征在于,所述生成所述第一控件对应的图像,包括:获取所述第一控件的属性信息,所述属性信息中包括第一控件的大小、第一控件中每个子控件的大小、第一控件中每个子控件在第一控件中的位置;

根据所述属性信息和预设绘制函数,得到所述第一控件对应的图像。

3.根据权利要求1或2所述的方法,其特征在于,所述生成所述第一控件对应的图像并绘制所述第一控件,包括:生成所述第一控件对应的图像,并根据生成的所述第一控件对应的图像绘制所述第一控件。

4.根据权利要求1或2所述的方法,其特征在于,生成所述第一控件对应的图像并绘制所述第一控件,包括:生成所述第一控件对应的图像;

获取所述第一控件的显示列表,所述显示列表中包括所述第一控件的绘制命令和所述第一控件中各子控件的绘制命令;

根据所述显示列表,绘制所述第一控件。

5.根据权利要求1或2所述的方法,其特征在于,确定所述第一控件和所述第一控件中的所有子控件未发生更新,包括:若所述第一控件的状态为第一状态,则确定所述第一控件和所述第一控件中的所有子控件未发生更新;

确定所述第一控件或所述第一控件中的至少一个子控件发生更新,包括:若所述第一控件的状态为第二状态,则确定所述第一控件或所述第一控件中的至少一个子控件发生更新。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在检测到所述第一控件或者所述第一控件中的至少一个子控件发生更新之后,将所述第一控件的状态设置为第二状态;

所述生成所述第一控件对应的图像之后,还包括:将所述第一控件的状态设置为第一状态。

7.根据权利要求1或2所述的方法,其特征在于,所述第一控件为视窗组控件,所述第一控件中的子控件为视窗控件。

8.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器执行所述存储器中的程序指令,以使得所述电子设备执行如下步骤:获取第一页面的绘制指令,所述绘制指令用于指示绘制所述第一页面,所述第一页面中包括第一控件,所述第一控件中包括至少一个子控件;

若确定存在所述第一控件对应的图像,且所述第一控件和所述第一控件中的所有子控件未发生更新,则根据所述第一控件对应的图像绘制所述第一控件;

若确定不存在所述第一控件对应的图像,或者所述第一控件或所述第一控件中的至少一个子控件发生更新,则生成所述第一控件对应的图像并绘制所述第一控件;

所述根据所述第一控件对应的图像绘制所述第一控件,包括:生成所述图像对应的图像绘制命令;

将所述第一控件的显示列表中绘制命令更新为所述图像绘制命令;

根据更新后的所述第一控件的显示列表,绘制所述第一控件。

9.根据权利要求8所述的电子设备,其特征在于,所述生成所述第一控件对应的图像,包括:获取所述第一控件的属性信息,所述属性信息中包括第一控件的大小、第一控件中每个子控件的大小、第一控件中每个子控件在第一控件中的位置;

根据所述属性信息和预设绘制函数,得到所述第一控件对应的图像。

10.根据权利要求8或9所述的电子设备,其特征在于,所述生成所述第一控件对应的图像并绘制所述第一控件:生成所述第一控件对应的图像,并根据生成的所述第一控件对应的图像绘制所述第一控件。

11.根据权利要求8或9所述的电子设备,其特征在于,所述生成所述第一控件对应的图像并绘制所述第一控件:生成所述第一控件对应的图像;

获取所述第一控件的显示列表,所述显示列表中包括所述第一控件的绘制命令和所述第一控件中各子控件的绘制命令;

根据所述显示列表,绘制所述第一控件。

12.根据权利要求8或9所述的电子设备,其特征在于,所述确定所述第一控件和所述第一控件中的所有子控件未发生更新,包括:若所述第一控件的状态为第一状态,则确定所述第一控件和所述第一控件中的所有子控件未发生更新;

若所述第一控件的状态为第二状态,则确定所述第一控件或所述第一控件中的至少一个子控件发生更新。

13.根据权利要求12所述的电子设备,其特征在于,所述处理器还用于:在检测到所述第一控件或者所述第一控件中的子控件发生更新之后,将所述第一控件的状态设置为第二状态;

并在生成所述第一控件对应的图像之后,将所述第一控件的状态设置为第一状态。

14.根据权利要求8或9所述的电子设备,其特征在于,所述第一控件为视窗组控件,所述第一控件中的子控件为视窗控件。

15.一种计算机可读非易失性存储介质,其特征在于,所述存储介质用于存储计算机程序,所述计算机程序被计算机或处理器执行时用于实现权利要求1-7任一项所述的页面绘制的控制方法。

说明书 :

页面绘制的控制方法、装置及设备

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种页面绘制的控制方法、装置及设备。

背景技术

[0002] 在Android系统中,电子设备显示的页面中通常包括多个控件,可以分别对该多个控件进 行绘制,进而可以使得电子设备显示该页面。
[0003] 页面中的控件包括视窗(view)控件和视窗组(viewgroup)控件中的至少一种,viewgroup 控件中包括至少一个子控件(例如view控件)。在电子设备绘制viewgroup控件时,分别对 viewgroup控件和viewgroup控件中的每个子控件进行绘制。针对电子设备显示的任意一个页 面,若该页面中的内容发生变化(例如,用户对该页面进行滑动操作使得页面中的内容发生 变化),则电子设备周期性的对页面进行绘制,例如,每16毫秒对页面绘制一次。由于电子 设备绘制viewgroup控件时,需要分别对viewgroup控件和viewgroup控件中的每个子控件进 行绘制,绘制的内容较多,导致页面绘制的效率较低。

发明内容

[0004] 本申请提供一种页面绘制的控制方法、装置及设备,提高了页面绘制效率。
[0005] 第一方面,本申请实施例提供一种页面绘制的控制方法,获取用于指示绘制第一页面的 绘制指令,第一页面中包括第一控件,第一控件中包括至少一个子控件;若确定存在第一控 件对应的图像,且第一控件和第一控件中的子控件未发生更新,则根据第一控件对应的图像 绘制第一控件;若确定不存在第一控件对应的图像,或者第一控件或第一控件中的子控件发 生更新,则生成第一控件对应的图像并绘制第一控件。
[0006] 在上述过程中,在进行页面绘制的过程中,针对页面中的viewgroup控件(第一控件), 可以先生成并存储在viewgroup控件的图像,该图像中包括viewgroup控件和viewgroup控件 中各子控件对应的图像。这样,在对页面进行绘制的过程中,若一个viewgroup控件中的内 容未发生变化,且存在该viewgroup控件的图像,则可以根据该图像绘制该viewgroup控件, 减少了页面绘制的内容,进而提高了绘制效率。
[0007] 在一种可能的实施方式中,可以通过如下可行的实现方式根据第一控件对应的图像绘制 第一控件:生成图像对应的图像绘制命令;将第一控件的显示列表中绘制命令更新为图像绘 制命令;根据更新后的第一控件的显示列表,绘制第一控件。
[0008] 在上述过程中,更新后的显示列表中包括的命令为图像绘制命令,图像绘制命令对应的 所需渲染的像素个数为第一控件对应的图像所在区域的像素个数。更新前的第一控件的显示 列表中的绘制命令对应的所需渲染的像素个数大于第一控件对应的图像所在区域的像素个数, 因此,根据更新后的第一控件的显示列表绘制第一控件时,可以减少绘制的像素个数,进而 提高绘制效率。
[0009] 在一种可能的实施方式中,可以通过如下可行的实现方式生成第一控件对应的图像:获 取第一控件的属性信息,属性信息中包括第一控件的大小、第一控件中每个子控件的大小、 第一控件中每个子控件在第一控件中的位置;根据属性信息和预设绘制函数,得到第一控件 对应的图像。
[0010] 在上述过程中,第一控件的属性信息可以准确的描述第一控件,因此,根据第一控件的 属性信息和预设绘制函数可以准确的绘制得到第一控件对应的图像。
[0011] 在一种可能的实施方式中,可以通过如下可行的实现方式生成第一控件对应的图像并绘 制第一控件:生成第一控件对应的图像,并根据生成的第一控件对应的图像绘制第一控件。
[0012] 在上述过程中,在确定不存在所述第一控件对应的图像,或者所述第一控件或所述第一 控件中的子控件发生更新时,先生成第一控件对应的图像,在根据图像绘制第一控件,这样, 根据第一控件对应的图像可以快速绘制第一控件。
[0013] 在一种可能的实施方式中,可以通过如下可行的实现方式生成第一控件对应的图像并绘 制第一控件:生成第一控件对应的图像;获取第一控件的显示列表,显示列表中包括第一控 件的绘制命令和第一控件中各子控件的绘制命令;根据显示列表,绘制第一控件。
[0014] 在上述过程中,在确定不存在所述第一控件对应的图像,或者所述第一控件或所述第一 控件中的子控件发生更新时,生成第一控件对应的图像,且根据现有的流程绘制第一控件, 这样,生成图像的过程和根据现有的流程绘制第一控件的过程可以并行执行,这样,生成的 图像可以应用于下一次绘制第一控件的过程中,且上述两个过程并行执行,可以提高生成图 像和绘制第一控件的效率。
[0015] 在一种可能的实施方式中,若第一控件的状态为第一状态,则确定第一控件和第一控件 中的子控件未发生更新;若第一控件的状态为第二状态,则确定第一控件或第一控件中的子 控件发生更新。
[0016] 在上述过程中,根据第一控件的状态可以简单快速的确定第一控件或第一控件中的子控 件是否发生更新。
[0017] 在一种可能的实施方式中,在检测到第一控件或者第一控件中的子控件发生更新之后, 将第一控件的状态设置为第二状态;在生成第一控件对应的图像之后,将第一控件的状态设 置为第一状态。
[0018] 在上述过程中,在相应的条件下对第一控件的状态进行相应的设置,可以使得根据第一 控件的状态准确的确定得到第一控件或第一控件中的子控件是否发生更新。
[0019] 在一种可能的实施方式中,第一控件为视窗组控件,第一控件中的子控件为视窗控件。
[0020] 第二方面,本申请实施例提供一种页面绘制的控制装置,包括:获取模块和绘制模块, 其中,
[0021] 所述获取模块用于,获取第一页面的绘制指令,所述绘制指令用于指示绘制所述第一页 面,所述第一页面中包括第一控件,所述第一控件中包括至少一个子控件;
[0022] 所述绘制模块用于,若确定存在所述第一控件对应的图像,且所述第一控件和所述第一 控件中的子控件未发生更新,则根据所述第一控件对应的图像绘制所述第一控件;
[0023] 所述绘制模块还用于,若确定不存在所述第一控件对应的图像,或者所述第一控件或所 述第一控件中的子控件发生更新,则生成所述第一控件对应的图像并绘制所述第一控件。
[0024] 在一种可能的实施方式中,所述绘制模块具体用于:
[0025] 生成所述图像对应的图像绘制命令;
[0026] 将所述第一控件的显示列表中绘制命令更新为所述图像绘制命令;
[0027] 根据更新后的所述第一控件的显示列表,绘制所述第一控件。
[0028] 在一种可能的实施方式中,所述绘制模块具体用于:
[0029] 获取所述第一控件的属性信息,所述属性信息中包括第一控件的大小、第一控件中每个 子控件的大小、第一控件中每个子控件在第一控件中的位置;
[0030] 根据所述属性信息和预设绘制函数,得到所述第一控件对应的图像。
[0031] 在一种可能的实施方式中,所述绘制模块具体用于:
[0032] 生成所述第一控件对应的图像,并根据生成的所述第一控件对应的图像绘制所述第一控 件。
[0033] 在一种可能的实施方式中,所述绘制模块具体用于:
[0034] 生成所述第一控件对应的图像;
[0035] 获取所述第一控件的显示列表,所述显示列表中包括所述第一控件的绘制命令和所述第 一控件中各子控件的绘制命令;
[0036] 根据所述显示列表,绘制所述第一控件。
[0037] 在一种可能的实施方式中,所述装置还包括确定模块,所述确定模块用于:
[0038] 若所述第一控件的状态为第一状态,则确定所述第一控件和所述第一控件中的子控件未 发生更新;
[0039] 若所述第一控件的状态为第二状态,则确定所述第一控件或所述第一控件中的子控件发 生更新。
[0040] 在一种可能的实施方式中,所述装置还包括设置模块,其中,
[0041] 所述设置模块用于,在检测到所述第一控件或者所述第一控件中的子控件发生更新之后, 将所述第一控件的状态设置为第二状态;
[0042] 所述设置模块还用于,在所述绘制模块生成所述第一控件对应的图像之后,将所述第一 控件的状态设置为第一状态。
[0043] 在一种可能的实施方式中,所述第一控件为视窗组控件,所述第一控件中的子控件为视 窗控件。
[0044] 第三方面,本申请实施例提供一种电子设备,包括:包括存储器和处理器,所述处理器 执行所述存储器中的程序指令,以使得所述电子设备执行如下步骤:
[0045] 获取第一页面的绘制指令,所述绘制指令用于指示绘制所述第一页面,所述第一页面中 包括第一控件,所述第一控件中包括至少一个子控件;
[0046] 若确定存在所述第一控件对应的图像,且所述第一控件和所述第一控件中的子控件未发 生更新,则根据所述第一控件对应的图像绘制所述第一控件;
[0047] 若确定不存在所述第一控件对应的图像,或者所述第一控件或所述第一控件中的子控件 发生更新,则生成所述第一控件对应的图像并绘制所述第一控件。
[0048] 在一种可能的实施方式中,所述处理器具体用于:
[0049] 生成所述图像对应的图像绘制命令;
[0050] 将所述第一控件的显示列表中绘制命令更新为所述图像绘制命令;
[0051] 根据更新后的所述第一控件的显示列表,绘制所述第一控件。
[0052] 在一种可能的实施方式中,所述处理器具体用于:
[0053] 获取所述第一控件的属性信息,所述属性信息中包括第一控件的大小、第一控件中每个 子控件的大小、第一控件中每个子控件在第一控件中的位置;
[0054] 根据所述属性信息和预设绘制函数,得到所述第一控件对应的图像。
[0055] 在一种可能的实施方式中,所述处理器具体用于:
[0056] 生成所述第一控件对应的图像,并根据生成的所述第一控件对应的图像绘制所述第一控 件。
[0057] 在一种可能的实施方式中,所述处理器具体用于:
[0058] 生成所述第一控件对应的图像;
[0059] 获取所述第一控件的显示列表,所述显示列表中包括所述第一控件的绘制命令和所述第 一控件中各子控件的绘制命令;
[0060] 根据所述显示列表,绘制所述第一控件。
[0061] 在一种可能的实施方式中,所述处理器具体用于:
[0062] 若所述第一控件的状态为第一状态,则确定所述第一控件和所述第一控件中的子控件未 发生更新;
[0063] 若所述第一控件的状态为第二状态,则确定所述第一控件或所述第一控件中的子控件发 生更新。
[0064] 在一种可能的实施方式中,所述处理器还用于:
[0065] 在检测到所述第一控件或者所述第一控件中的子控件发生更新之后,将所述第一控件的 状态设置为第二状态;
[0066] 将所述第一控件的状态设置为第一状态。
[0067] 在一种可能的实施方式中,所述第一控件为视窗组控件,所述第一控件中的子控件为视 窗控件。
[0068] 第四方面,本申请实施例提供一种存储介质,所述存储介质用于存储计算机程序,所述 计算机程序被计算机或处理器执行时用于实现第一方面任一项所述的页面绘制的控制方法。
[0069] 第五方面,本申请实施例提供一种计算机程序产品,其特征在于,所述计算机程序产品 包括指令,当所述指令被执行时,使得计算机执行第一方面任一项所述的页面绘制的控制方 法。
[0070] 第六方面,本申请实施例提供一种芯片上系统或系统芯片,所述芯片上系统或系统芯片 可应用于终端设备,所述芯片上系统或系统芯片包括:至少一个通信接口,至少一个处理器, 至少一个存储器,所述通信接口、存储器和处理器通过总线互联,所述处理器通过执行所述 存储器中存储的指令,使得所述电子设备可执行如本申请第一方面任一所述页面绘制的控制 方法。
[0071] 本申请实施例提供的页面绘制的控制方法、装置及设备,在进行页面绘制的过程中,针 对页面中的viewgroup控件,可以先生成并存储在viewgroup控件的图像,该图像中包括 viewgroup控件和viewgroup控件中各子控件对应的图像。这样,在对页面进行绘制的过程中, 若一个viewgroup控件中的内容未发生变化,且存在该viewgroup控件的图像,则可以根据该 图像绘制该viewgroup控件,减少了页面绘制的内容,进而提高了绘制效率。

附图说明

[0072] 图1A为本申请实施例提供的页面的架构示意图;
[0073] 图1B为本申请实施例提供一种的控件的树状结构示意图;
[0074] 图2为本申请实施例提供的一种应用场景示意图;
[0075] 图3为本申请实施例提供的电子设备的系统架构的结构示意图;
[0076] 图4为本申请实施例提供的页面绘制的控制方法的流程示意图;
[0077] 图5为本申请实施例提供的绘制命令的树状结构示意图;
[0078] 图6为本申请实施例提供的显示列表示意图;
[0079] 图7为本申请实施例提供的一种控件绘制过程示意图;
[0080] 图8为本申请实施例提供的控件绘制过程示意图;
[0081] 图9为本申请实施例提供的页面示意图;
[0082] 图10为本申请实施例提供的另一种控件的树状结构示意图;
[0083] 图11为本申请实施例提供的另一种显示列表的树状结果示意图;
[0084] 图12为本申请实施例提供的又一种控件的树状结构示意图;
[0085] 图13为本申请实施例提供的又一种显示列表的树状结果示意图;
[0086] 图14为本申请实施例提供的另一种页面绘制控制方法的流程示意图;
[0087] 图15为本申请实施例提供的一种页面绘制的控制装置的结构示意图;
[0088] 图16为本申请实施例提供的另一种页面绘制的控制装置的结构示意图;
[0089] 图17为本申请实施例提供的一种电子设备的结构示意图;
[0090] 图18为本申请实施例提供的另一种电子设备的结构示意图。

具体实施方式

[0091] 为了便于理解,首先结合图1A,对页面的架构进行说明。
[0092] 图1A为本申请实施例提供的页面的架构示意图。页面中通常可以包括两类控件,一类 为视窗(view)控件,另一类为视窗组(viewgroup)控件。viewgroup控件中包括至少一个 view控件,一个viewgroup控件还可以包括其它viewgroup控件,viewgroup控件中包括的控 件还可以称为viewgroup控件的子控件。例如,请参见图1A,页面中包括视窗控件1、视窗 控件2和列表控件,列表控件为viewgroup控件。列表控件中包括视窗组控件1、视窗组控件 2、视窗组控件3和视窗组控件4,其中,视窗组控件1、视窗组控件2、视窗组控件3和视 窗组控件4中分别包括两个视窗控件。
[0093] 可选的,可以以树状结构表示页面中的控件,例如,图1A所示的页面中的控件的树状 结构可以如图1B所示。图1B为本申请实施例提供一种的控件的树状结构示意图。请参见图 1B,根节点(视窗)为decorView控件,该控件为viewgroup控件,图1B所示的树状结构示 意图出了图1A所示的页面中包括的控件和控件之间的关系。
[0094] 需要说明的是,图1A只是以示例的形式示意一个页面,当然,页面中还可以包括其它 控件,本申请实施例对此不作具体限定。
[0095] 下面,结合图2,对本申请实施例所适用的场景进行说明。
[0096] 图2为本申请实施例提供的一种应用场景示意图。请参见图2,包括页面201和页面202。
[0097] 请参见页面201,电子设备显示通信录中的部分联系人信息,用户可以向上滑动屏幕, 以使电子设备显示其它联系人信息。
[0098] 请参见页面202,在用户向上滑动屏幕之后,电子设备更新了显示的联系人信息,其中, 相比于页面201,电子设备在页面202中不显示联系人“张一”的信息,增加显示了联系人“张 五”的信息,联系人“张二”、“张三”和“张四”的信息不变。
[0099] 在用户滑动屏幕的过程中,电子设备周期性的绘制显示的页面,例如,可以每16毫秒对 显示的页面绘制一次,以使得用户在滑动屏幕的过程中,电子设备显示的页面可以呈现流畅 的滑动。即,本申请所示方法可以适用于用户滑动屏幕的过程中对页面的绘制的场景。
[0100] 当然,本申请所示的方法还可以适用于其他场景,例如,在电子设备显示页面的过程中, 页面中的内容可能会自动更新,当页面中的内容发生更新之后,电子设备也对显示的页面进 行重新绘制。例如,通信录中的联系人头像可以周期性更新,当电子设备检测到联系人头像 更新之后,可以对显示的页面进行重新绘制。
[0101] 下面,结合图3,对本申请所涉及的电子设备的系统架构进行说明。
[0102] 图3为本申请实施例提供的电子设备的系统架构的结构示意图。请参见图3,电子设备 的系统架构包括应用程、框架层和硬件层。
[0103] 应用层中包括多个应用程序,例如,应用程序可以包括通信应用程序、浏览器应用程序 等。
[0104] 框架层中包括用户界面(user interface,UI)框架和渲染框架。UI框架包括测量模块、布局 模块、绘制模块和优化模块,优化模块中包括提前绘制模块、图像复用模块、渲染节点替换 模块和内容检测模块。其中,测量模块用于对控件进行测量,得到控件的大小。布局模块用 于对控件进行布局,得到控件的位置。绘制模块用于获取控件的显示列表,显示列表中包括 控件的绘制命令。提前绘制模块用于提前绘制控件对应的图像。内容检测模块用于检测控件 中的内容是否发生变化。图像复用模块用于使用提前绘制的控件对应的图像进行控件绘制。 渲染节点替换模块用于将控件的显示列表中的绘制指令替换为控件对应图像的图像绘制指令。 UI框架可以将更新后的显示列表发送给渲染框架,由渲染框架执行显示列表中的绘制指令, 以实现绘制控件。
[0105] 硬件层中包括硬件结构,例如,硬件层可以包括中央处理器(central processing unit,CPU)、 图形处理器(graphics processing unit,GPU)、存储单元、处理电路等硬件结构。
[0106] 需要说明的是,在图4所示的实施例中,对该系统架构中各个模块的功能进行详细说明, 此处不再进行赘述。
[0107] 在本申请中,在进行页面绘制的过程中,针对页面中的viewgroup控件,可以先生成并 存储viewgroup控件的图像,该图像中包括viewgroup控件和viewgroup控件中各子控件对应 的图像。这样,在对页面进行绘制的过程中,若一个viewgroup控件中的内容未发生变化, 且存在该viewgroup控件的图像,则可以根据该图像绘制该viewgroup控件,减少了页面绘制 的内容,进而提高了绘制效率。
[0108] 下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几 个实施例可以独立存在,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再 重复说明。
[0109] 图4为本申请实施例提供的页面绘制的控制方法的流程示意图。请参见图3,该方法可 以包括:
[0110] S401、获取第一页面的绘制指令,绘制指令用于指示绘制第一页面。
[0111] 本申请实施例的执行主体可以为电子设备,也可以为设置在电子设备中/外的页面绘制装 置。可选的,电子设备可以为手机、电脑、可穿戴设备、虚拟现实VR、增强现实AR等设备。 页面绘制装置可以通过软件实现,也可以通过软件加硬件的结合实现。
[0112] 可选的,绘制指令可以为垂直同步(Vsync)信号。
[0113] 可选的,可以通过如下可行的实现方式获取第一页面的绘制指令:
[0114] 一种可行的实现方式:
[0115] 电子设备显示第一页面的过程中,用户在第一页面中输入操作,例如,滑动操作、点击 操作等,在电子设备检测到用户输入的操作之后,则生成第一页面的绘制指令。可选的,在 用户在第一页面中输入操作的过程中(即,电子设备检测到用户输入操作的过程中),电子设 备周期性的生成绘制指令,例如,每16毫秒生成一次绘制指令。
[0116] 在该种可行的实现方式中,由用户对第一页面进行操作,使得电子设备获取得到第一页 面的绘制指令。
[0117] 另一种可行的实现方式:
[0118] 电子设备显示第一页面的过程中,电子设备可以对第一页面中各控件中的内容进行监控, 当电子设备监控到第一页面中存在控件中的内容发生变化时,电子设备获取得到第一页面的 绘制指令。例如,请参见图1,电子设备显示图1所示的页面的过程中,当联系人“张一”的图 像发生变化时,则电子设备获取得到第一页面的绘制指令。
[0119] 在该种可行的实现方式中,由第一页面中的控件中的内容发生变化,使得电子设备获取 得到第一页面的绘制指令。
[0120] 再一种可行的实现方式:
[0121] 在电子设备显示除第一页面之外的其它页面时,接收用户在其它页面输入的针对第一页 面的显示操作,以使电子设备生成第一页面的绘制指令。例如,用户可以对在其它页面中的、 用于跳转至第一页面的控件输入点击操作,以使电子设备生成第一页面的绘制指令。例如, 用户可以在显示其他页面时,输入预设分屏手势,以使第一页面分屏显示在当前显示界面上, 电子设备响应于该预设分屏手势,生成第一页面的绘制指令。
[0122] 在该种可行的实现方式中,由用户对除第一页面之外的其它页面进行操作,使得电子设 备获取得到第一页面的绘制指令。
[0123] S402、根据第一页面的绘制指令,对第一页面中的控件进行测量和布局,得到第一页面 中各控件的属性信息。
[0124] 可选的,当一个控件为view控件时,view控件的属性信息包括view控件的大小和位置。 当一个控件为viewgroup控件时,viewgroup控件的属性信息包括viewgroup控件的大小、 viewgroup控件位置、viewgroup控件中各子控件的大小、viewgroup控件中各子控件在 viewgroup控件中的位置。
[0125] 可选的,对控件进行测量可以获取得到控件的大小。例如,当一个控件为view控件时, 可以通过measure函数对view控件进行测量,以得到该view控件的大小。当一个控件为 viewgroup控件时,可以分别通过measure函数对viewgroup控件和viewgroup控件中包括的 各个子控件进行测量,以得到viewgroup控件和viewgroup控件中每个子控件的大小。即,在 对一个viewgroup控件测量之后,可以得到该viewgroup控件的大小,还可以得到该viewgroup 控件中各子控件的大小。可选的,可以通过图3中的测量模块获取控件的大小。
[0126] 可选的,对控件进行布局可以获取得到控件的位置。例如,当一个控件为view控件时, 可以通过layout函数对view控件进行布局,以得到该view控件的位置。当一个控件为 viewgroup控件时,可以分别通过layout函数对viewgroup控件和viewgroup控件中包括的各 个子控件进行布局,以得到viewgroup控件的位置和viewgroup控件中每个子控件在viewgroup 控件中的位置。即,在对一个viewgroup控件布局之后,可以得到viewgroup控件的位置,还 可以得到viewgroup控件中各子控件在viewgroup控件中的位置。可选的,可以通过图3中的 布局模块获取控件的位置。
[0127] S403、根据第一页面中各控件的属性信息获取第一页面中各控件的显示列表。
[0128] 其中,一个控件的显示列表中包括该控件对应的绘制指令。
[0129] 当一个控件为view控件时,view控件对应的绘制指令包括该view控件的绘制指令。即, view控件的显示列表中包括1个绘制指令。
[0130] 当一个控件为viewgroup控件时,viewgroup控件对应的绘制指令包括viewgroup控件的 绘制指令和viewgroup控件中各子控件的绘制指令。即,viewgroup控件的显示列表中包括至 少两个绘制指令。
[0131] 获取第一页面中各控件的显示列表的过程相同。针对第一页面中的任意一个控件,可以 根据该控件的属性信息和draw函数,获取该控件的显示列表。可选的,显示列表中的绘制命 令可以以树状结构显示。下面,结合图5对树状结构的绘制命令进行说明。
[0132] 图5为本申请实施例提供的绘制命令的树状结构示意图。图5示出了一种控件的树状结 构、及该控件的树状结构对应的绘制命令的树状结构。请参见图5,控件的树状结构与绘制 命令的树状结构具有对应关系。控件与显示系列表的对应关系如表1所示:
[0133] 表1
[0134]控件 显示列表
视窗控件1 显示列表1
视窗控件2 显示列表2
视窗组控件1 显示列表3
视窗组控件2 显示列表4
视窗组控件3 显示列表5
视窗组控件4 显示列表6
[0135] 可选的,可以通过图3中的绘制模块获取第一页面中各控件的显示列表。
[0136] 在S403之后,分别对每个控件进行绘制,下面,以对第一页面中的任意一个第一控件的 绘制过程进行说明,其中,第一控件为一个viewgroup控件,第一控件中包括至少一个子控 件。
[0137] S404、判断是否存在第一控件对应的图像,且第一控件和第一控件中的子控件未发生更 新。
[0138] 若是,则执行S405-S408
[0139] 若否,则执行S409-S410。
[0140] 可选的,可以通过如下可行的实现方式存储控件对应的图像:获取控件的标识,将控件 的标识和控件对应的图像以键值对(key-value,K-V)的形式存储在哈希表中。控件的标识 可以为控件的位置关键字,控件的位置关键字用于指示控件在页面中的位置。例如,控件的 位置关键字可以是指控件为listview中的第几个控件,假设listview中包括20个控件,该20 个控件在listview中顺序排列,则该20个控件在listview中的位置关键字分别为1,2,3,……, 20。在该种可行的实现方式中,在判断是否存在第一控件对应的图像时,可以获取第一控件 的标识,并根据第一控件的标识,判断哈希表中是否存在该位置关键字对应的图像。当然也 可以采用其他现有的存储方法,本发明实施例不限制具体的存储实现方式。
[0141] 可选的,可以通过如下可行的实现方式判断第一控件和第一控件中的子控件是否发生更 新:获取第一控件的状态,若第一控件的状态为第一状态,则确定第一控件和第一控件中的 子控件未发生更新,若第一控件的状态为第二状态,则确定第一控件或第一控件中的子控件 发生更新。可选的,初始时,第一控件的状态可以为第一状态,在检测到第一控件或第一控 件中的子控件发生更新时,则将第一控件的状态设置为第二状态,在生成第一控件对应的图 像之后,将第一控件的状态设置为第一状态。可选的,可以通过确定一个预设标志位是否为 预设值来确定第一控件和第一控件中的子控件是否发生更新,例如在初始化时预设标志位设 为0,如果第一控件或者第一控件中的任一子控件发生更新则置为1,在预设条件满足时恢复 为0(例如预设时间届满,或者收到预设消息,或者判断进入预设模式等,即在该变化后控 件和子控件已经显示后,恢复预设标志位为0);通过检测该预设标志位是否为1可确定第一 控件和第一控件中的子控件是否发生更新—如预设标志位为1则确定第一控件和第一控件中 的子控件发生了更新,如预设标志位为0则确定第一控件和第一控件中的子控件未发生更新。 可选的,可以通过图3中内容检测模块检测第一控件和第一控件中的子控件是否发生更新。
[0142] S405、获取第一控件对应的图像。
[0143] 可选的,可以根据第一控件的标识,在哈希表中获取第一控件对应的图像。
[0144] 可选的,可以通过图3中的图像复用模块获取第一控件对应的图像。
[0145] S406、生成第一控件对应图像的图像绘制命令。
[0146] 可选的,可以通过draw函数生成图像绘制命令。
[0147] S407、将第一控件的显示列表中绘制命令更新为图像绘制命令。
[0148] 可选的,可以将第一控件的显示列表中的绘制命令替换为图像绘制命令。即,删除第一 控件的显示列表中的绘制命令,并将图像绘制命令添加至第一控件的显示列表中。
[0149] 下面,结合图6,对更新前后的第一控件的显示列表进行说明。
[0150] 图6为本申请实施例提供的显示列表示意图。请参见图6和图5,假设第一控件为图1 中的视窗组控件1,在执行S407之前,视窗组控件1的显示列表—显示列表3中包括绘制命 令3、绘制命令31和绘制命令32,在S407之后,显示列表3中包括图像绘制命令3。
[0151] 可选的,可以通过图3中的渲染节点替换模块更新第一控件的显示列表。
[0152] S408、根据更新后的第一控件的显示列表,绘制第一控件。
[0153] 可选的,可以执行第一控件的显示列表中的绘制命令,以实现绘制第一控件。由于第一 控件的显示列表中的绘制命令为图像绘制命令,因此,通过执行图像绘制命令可以实现根据 第一控件对应的图像进行绘制,以实现绘制第一控件。通过图像绘制命令绘制第一控件的过 程中,渲染的像素个数为第一控件对应的图像所在区域的像素个数。
[0154] 可选的,电子设备中包括UI线程和渲染(render)线程,S401-S407的执行过程可以由 UI线程执行,UI线程可以将S407中得到的显示列表发送给渲染线程,以使渲染线程执行步 骤S408--根据更新后的显示列表绘制第一控件。
[0155] 可选的,可以通过图3中的渲染框架绘制第一控件。
[0156] 下面,结合图7,对第一控件的绘制过程进行说明。
[0157] 图7为本申请实施例提供的一种控件绘制过程示意图。请参见图7,假设第一控件为图1 中的视窗组控件1,该视窗组控件1中包括视窗控件11和视窗控件12,对该视窗组控件1进 行测量、布局和绘制之后,可以得到该视窗组控件1的显示列表,显示列表中包括绘制命令 1、绘制命令11和绘制命令12,假设存在视窗组控件1对应的图像,且视窗组控件1和视窗 组控件1中的子控件未发生更新,则对第一控件的显示列表进行更新,更新后的显示列表中 包括图像绘制命令1。在根据该显示列表进行绘制时,根据图像绘制命令1渲染视窗组控件1 对应的图像,得到视窗组控件1。在绘制视窗组控件1的过程中,渲染的像素包括:视窗组 控件1对应的图像中的像素。其中,视窗组控件1对应的图像中的像素等于视窗组控件1所 在矩形框中的像素,使得渲染的像素较少,进而提高渲染的效率。
[0158] S409、生成并存储第一控件对应的图像。
[0159] 可选的,可以通过如下可行的实现方式生成第一控件对应的图像:可以获取第一控件的 属性信息,属性信息中包括第一控件的大小、第一控件中每个子控件的大小、第一控件中每 个子控件在第一控件中的位置,根据属性信息和预设绘制函数(例如draw函数),得到第一 控件对应的图像。例如,第一控件可以通过第一控件中的各个子控件进行绘制,以得到第一 控件对应的图像。
[0160] 可选的,可以获取第一控件的标识,并将第一控件的标识和第一控件对应的图像以K-V 形式存储至哈希表中。
[0161] 可选的,可以通过图3中的提前绘制模块生成第一控件对应的图像。
[0162] S410、根据第一控件的显示列表,绘制第一控件。
[0163] 由于第一控件的显示列表中包括第一控件的绘制命令和第一控件中各子控件的绘制命令, 因此,可以依次根据第一控件的绘制命令和第一控件中各子控件的绘制命令进行绘制,以得 到第一控件。
[0164] 可选的,S409的执行过程可以由UI线程执行,由于无需对第一控件的显示列表进行更 新,因此UI线程可以将S403中得到的显示列表发送给渲染线程,以使渲染线程执行S410-- 根据S403中得到的显示列表绘制第一控件。
[0165] 下面,结合图8,对根据第一控件的绘制过程进行说明。
[0166] 图8为本申请实施例提供的控件绘制过程示意图。请参见图8,假设第一控件为图1中 的视窗组控件1,该视窗组控件1中包括视窗控件11和视窗控件12,对该视窗组控件1进行 测量、布局和绘制之后,可以得到该视窗组控件1的显示列表,显示列表中包括绘制命令1、 绘制命令11和绘制命令12。在根据该显示列表进行绘制时,先根据绘制命令1渲染视窗组 控件1对应的矩形框,再根据绘制命令11在矩形框中渲染视窗控件11对应的图像,以及根 据绘制命令12在矩形框中渲染视窗控件12中的文本“张一”。由上可知,在绘制视窗组控件1 的过程中,渲染的像素包括:矩形框所在区域的全部像素、图像所在区域的全部像素和文本 所在区域的全部像素之和。由于图像所在区域的像素和文本所在区域的像素均与矩形框所在 区域的像素重合,使得绘制视窗组控件1的过程中,存在重复渲染的像素(图像所在区域, 以及文本所在区域的全部像素均被重复渲染),导致渲染的效率较低。
[0167] 需要说明的是,在S409之后,还可以根据第一控件对应的图像绘制第一控件,其过程与 S406-S408的执行过程相同,此处不再进行赘述。
[0168] 需要说明的是,步骤S410也可以在S409之前执行,或者两者同时进行。或者如前述, 不执行S410,而是在S409之后执行S406-408。
[0169] 需要说明的是,在图4实施例所示的各个处理步骤(S401-S410)并不构成对页面绘制过 程的具体限定。在本申请另一些实施例中,页面绘制过程可以包括比图4实施例更多或者更 少的步骤,例如,页面绘制过程可以包括图4实施例中的部分步骤,或者,图4实施例中的 一些步骤可以由具有相同功能的步骤替换,或者,图4实施例中的一些步骤可以被拆分成多 个步骤等。
[0170] 本申请实施例提供的页面绘制方法,在进行页面绘制的过程中,针对页面中的viewgroup 控件,可以先生成并存储在viewgroup控件的图像,该图像中包括viewgroup控件和viewgroup 控件中各子控件对应的图像。这样,在对页面进行绘制的过程中,若一个viewgroup控件中 的内容未发生变化,且存在该viewgroup控件的图像,则可以根据该图像绘制该viewgroup 控件,减少了页面绘制的内容,进而提高了绘制效率。
[0171] 在上述任意一个实施例的基础上,下面,结合图9-图13,通过具体示例对页面绘制方法 进行说明。
[0172] 图9为本申请实施例提供的页面示意图。请参见图9,包括页面901、页面902和页面 903。
[0173] 请参见页面901,页面901中包括多个应用程序的图标,当用户需要查看联系人列表时, 用户可以对联系人列表图标进行点击操作,响应于检测到对联系人列表图标的点击操作,电 子设备获取得到联系人页面的绘制指令。
[0174] 电子设备根据绘制指令,获取待显示的联系人页面中包括的控件,假设待显示的联系人 页面中包括一个列表控件,该列表控件中包括4个联系人信息对应的viewgroup控件,每个 viewgroup控件中包括一个图像控件和一个文本控件,即,电子设备获取得到的待显示的联系 人页面中包括的控件的树状结构如图10所示。
[0175] 图10为本申请实施例提供的另一种控件的树状结构示意图。请参见图10,联系人页面 中的4个联系人信息与控件的对应关系如表2所示:
[0176] 表2
[0177]联系人 控件
张一 视窗组控件1(第一状态)、图像控件11、文本控件12
张二 视窗组控件2(第一状态)、图像控件21、文本控件22
张三 视窗组控件3(第一状态)、图像控件31、文本控件32
张四 视窗组控件4(第一状态)、图像控件41、文本控件42
[0178] 其中,在图10所示的控件中,视窗组控件1、视窗组控件2、视窗组控件3和视窗组控 件4的状态均为第一状态。
[0179] 电子设备根据绘制指令,对图10所示的控件进行测量、布局和绘制,得到联系人页面中 各控件的显示列表。显示列表可以如图11所示。
[0180] 图11为本申请实施例提供的另一种显示列表的树状结果示意图。请参见图11,联系人 页面中的4个联系人信息与显示列表的对应关系如表3所示:
[0181] 表3
[0182] 联系人 显示列表 绘制命令张一 显示列表1 绘制命令1、绘制命令11、绘制命令12
张二 显示列表2 绘制命令2、绘制命令21、绘制命令22
张三 显示列表3 绘制命令3、绘制命令31、绘制命令32
张四 显示列表4 绘制命令4、绘制命令41、绘制命令42
[0183] 电子设备判断不存在视窗组控件1、视窗组控件2、视窗组控件3和视窗组控件4对应的 图像,则电子设备分别生成并存储视窗组控件1、视窗组控件2、视窗组控件3和视窗组控件 4对应的图像。
[0184] 由于不存在视窗组控件1、视窗组控件2、视窗组控件3和视窗组控件4对应的图像,则 电子设备根据图11所示的显示列表对联系人页面中的各个控件进行渲染,其中,渲染的过程 如图9中的渲染过程一所示。在经过图9中的渲染过程一所示的渲染之后,得到页面902。 其中,对各个控件进行绘制的过程可以顺序执行,也可以并行执行。
[0185] 请参见页面902,在电子设备显示页面902所示的联系人列表之后,若用户需要查看其 它联系人信息时,用户可以在电子设备中输入向上滑动操作。在用户输入向上滑动操作的过 程中,电子设备获取得到联系人页面的绘制指令。
[0186] 电子设备根据绘制指令,获取待显示的联系人页面中包括的控件,假设待显示的联系人 页面中包括一个列表控件,该列表控件中包括4个联系人信息对应的viewgroup控件,每个 viewgroup控件中包括一个图像控件和一个文本控件,假设内容检测模块检测到联系人张二对 应的联系人头像发生了变化(相对于上一次绘制的张二对应的联系人头像),则电子设备获取 得到的待显示的联系人页面中包括的控件的树状结构如图12所示。
[0187] 图12为本申请实施例提供的又一种控件的树状结构示意图。请参见图12,联系人页面 中的4个联系人信息与控件的对应关系如表4所示:
[0188] 表4
[0189]联系人 控件
张二 视窗组控件2(第二状态)、图像控件21、文本控件22
张三 视窗组控件3(第一状态)、图像控件31、文本控件32
张四 视窗组控件4(第一状态)、图像控件41、文本控件42
张五 视窗组控件5(第一状态)、图像控件51、文本控件52
[0190] 电子设备根据绘制指令,对图12所示的控件进行测量、布局和绘制,得到联系人页面中 各控件的显示列表,可选的,由于视窗组控件3和视窗组控件4中的内容未更新,因此,可 以不更新视窗组控件3和视窗组控件4对应的显示列表。显示列表可以如图13所示。
[0191] 图13为本申请实施例提供的又一种显示列表的树状结果示意图。请参见图13,包括更 新前的显示列表和更新后的显示列表。
[0192] 请参见更新前的显示列表,联系人页面中的4个联系人信息与显示列表的对应关系如表 5示:
[0193] 表5
[0194]联系人 显示列表 绘制命令
张二 显示列表2 绘制命令2、绘制命令21、绘制命令22
张三 显示列表3 绘制命令3、绘制命令31、绘制命令32
张四 显示列表4 绘制命令4、绘制命令41、绘制命令42
张五 显示列表5 绘制命令5、绘制命令51、绘制命令52
[0195] 电子设备判断存在视窗组控件2、视窗组控件3和视窗组控件4对应的图像,且视窗组 控件3和视窗组控件4中的内容未发生变化,则电子设备生成视窗组控件3和视窗组控件4 对应的图像绘制指令,并通过图像绘制指令更新对应的显示列表。
[0196] 请参见更新后的显示列表,联系人页面中的4个联系人信息与显示列表的对应关系如表 6示:
[0197] 表6
[0198]联系人 显示列表 绘制命令
张二 显示列表2 绘制命令2、绘制命令21、绘制命令22
张三 显示列表3 图像绘制命令3
张四 显示列表4 图像绘制命令4
张五 显示列表5 绘制命令5、绘制命令51、绘制命令52
[0199] 电子设备根据图13中更新后的显示列表对联系人页面中的各个控件进行渲染,其中,渲 染的过程如图9中的渲染过程二所示。在经过图9中的渲染过程一所示的渲染之后,得到页 面903。
[0200] 请参见渲染过程二,在对联系人张三、张四对应的控件进行渲染的过程中,分别根据对 应的图像进行渲染,减少了渲染的对象,进而减少了渲染的像素,节省了系统资源,并提高 了渲染效率。
[0201] 在上述任意一个实施例的基础上,下面,结合图14,对页面绘制方法进行说明。
[0202] 图14为本申请实施例提供的另一种页面绘制控制方法的流程示意图。请参见图14,该 方法可以包括:
[0203] S1401、获取第一页面的绘制指令,绘制指令用于指示绘制第一页面,第一页面中包括第 一控件,第一控件中包括至少一个子控件。
[0204] 需要说明的是,S1401的执行过程可以参见S401的执行过程,此处不再进行赘述。
[0205] S1402、若确定存在第一控件对应的图像,且第一控件和第一控件中的子控件未发生更新, 则根据第一控件对应的图像绘制第一控件。
[0206] 需要说明的是,可以根据S404中所示的方法确定是否存在第一控件对应的图像,以及确 定第一控件和第一控件中的子控件是否发生更新,此处不再进行赘述。
[0207] 需要说明的是,根据第一控件对应的图像绘制第一控件的过程可以参见S405-S408,此 处不再进行赘述。
[0208] S1403、若确定不存在第一控件对应的图像,或者第一控件或第一控件中的子控件发生更 新,则生成第一控件对应的图像。
[0209] 可选的,在生成第一控件对应的图像之后,可以存储第一控件对应的图像。
[0210] 可选的,在S1403之后,可以根据第一控件对应的图像绘制第一控件,也可以根据图8 所示的渲染过程绘制第一控件。
[0211] 在图14所示的实施例中,在进行页面绘制的过程中,针对页面中的viewgroup控件,可 以先生成并存储viewgroup控件的图像,该图像中包括viewgroup控件和viewgroup控件中各 子控件对应的图像。这样,在对页面进行绘制的过程中,若一个viewgroup控件中的内容未 发生变化,且存在该viewgroup控件的图像,则可以根据该图像绘制该viewgroup控件,减少 了页面绘制的内容,进而提高了绘制效率。
[0212] 图15为本申请实施例提供的一种页面绘制的控制装置的结构示意图。请参见图15,该 页面绘制的控制装置10可以包括:获取模块11和绘制模块12,其中,[0213] 所述获取模块11用于,获取第一页面的绘制指令,所述绘制指令用于指示绘制所述第一 页面,所述第一页面中包括第一控件,所述第一控件中包括至少一个子控件;
[0214] 所述绘制模块12用于,若确定存在所述第一控件对应的图像,且所述第一控件和所述第 一控件中的子控件未发生更新,则根据所述第一控件对应的图像绘制所述第一控件;
[0215] 所述绘制模块12还用于,若确定不存在所述第一控件对应的图像,或者所述第一控件或 所述第一控件中的子控件发生更新,则生成所述第一控件对应的图像并绘制所述第一控件。
[0216] 可选的,获取模块可以执行图4实施例中的S401,以及图14实施例中的S1401。
[0217] 可选的,绘制模块12可以执行图4实施例中的S402-S410,以及图14实施例中的 S1402-S1403。
[0218] 需要说明的是,本申请实施例中的页面绘制的控制装置10可以执行上述方法实施例所示 的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0219] 在一种可能的实施方式中,所述绘制模块12具体用于:
[0220] 生成所述图像对应的图像绘制命令;
[0221] 将所述第一控件的显示列表中绘制命令更新为所述图像绘制命令;
[0222] 根据所述第一控件的更新后的显示列表,绘制所述第一控件。
[0223] 在一种可能的实施方式中,所述绘制模块12具体用于:
[0224] 获取所述第一控件的属性信息,所述属性信息中包括第一控件的大小、第一控件中每个 子控件的大小、第一控件中每个子控件在第一控件中的位置;
[0225] 根据所述属性信息和预设绘制函数,得到所述第一控件对应的图像。
[0226] 在一种可能的实施方式中,所述绘制模块12具体用于:
[0227] 生成所述第一控件对应的图像,并根据生成的所述第一控件对应的图像绘制所述第一控 件。
[0228] 在一种可能的实施方式中,所述绘制模块12具体用于:
[0229] 生成所述第一控件对应的图像;
[0230] 获取所述第一控件的显示列表,所述显示列表中包括所述第一控件的绘制命令和所述第 一控件中各子控件的绘制命令;
[0231] 根据所述显示列表,绘制所述第一控件。
[0232] 图16为本申请实施例提供的另一种页面绘制的控制装置的结构示意图。在图15所示实 施例的基础上,请参见图16,页面绘制的控制装置10还可以包括确定模块13,所述确定模 块13用于:
[0233] 若所述第一控件的状态为第一状态,则确定所述第一控件和所述第一控件中的子控件未 发生更新;
[0234] 若所述第一控件的状态为第二状态,则确定所述第一控件或所述第一控件中的子控件发 生更新。
[0235] 在一种可能的实施方式中,页面绘制的控制装置10还包括设置模块14,其中,[0236] 所述设置模块14用于,在检测到所述第一控件或者所述第一控件中的子控件发生更新之 后,将所述第一控件的状态设置为第二状态;
[0237] 所述设置模块14还用于,在所述绘制模块12生成所述第一控件对应的图像之后,将所 述第一控件的状态设置为第一状态。
[0238] 在一种可能的实施方式中,所述第一控件为视窗组控件,所述第一控件中的子控件为视 窗控件。
[0239] 需要说明的是,本申请实施例中的页面绘制的控制装置10可以执行上述方法实施例所示 的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0240] 图17为本申请实施例提供的一种电子设备的结构示意图。请参见图17,电子设备20可 以包括处理器21、存储器22和通信总线23,处理器21和存储器22通过通信总线23通信。 处理器21执行存储器22中的程序指令,并根据所述程序指令执行如下步骤:
[0241] 获取第一页面的绘制指令,所述绘制指令用于指示绘制所述第一页面,所述第一页面中 包括第一控件,所述第一控件中包括至少一个子控件;
[0242] 若确定存在所述第一控件对应的图像,且所述第一控件和所述第一控件中的子控件未发 生更新,则根据所述第一控件对应的图像绘制所述第一控件;
[0243] 若确定不存在所述第一控件对应的图像,或者所述第一控件或所述第一控件中的子控件 发生更新,则生成所述第一控件对应的图像并绘制所述第一控件。
[0244] 可选的,处理器21可以实现图15-16实施例中的获取模块11、绘制模块12、确定模块 13和设置模块14的功能。
[0245] 可选的,处理器21可以包括CPU。该种情况下,上述处理器21所执行的步骤均可以由 CPU执行。
[0246] 可选的,处理器21可以包括CPU和GPU。在该种情况下,上述处理器21所执行的步 骤可以由CPU和GPU共同执行,例如,CPU可以执行:获取第一页面的绘制指令,以及根 据第一控件对应的图像绘制第一控件,GPU可以执行:生成第一控件对应的图像。例如,CPU 可以执行:获取第一页面的绘制指令,GPU可以执行:生成第一控件对应的图像,以及根据 第一控件对应的图像绘制第一控件。
[0247] 可选的,上述处理器21还可以是其他通用处理器、数字信号处理器(digital singnal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)等。通用处理 器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的认证方 法实施例中的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块 组合执行完成。
[0248] 可选的,电子设备还可以包括显示器,显示器用于显示绘制完成的第一控件。
[0249] 需要说明的是,本申请实施例中的电子设备20可以执行上述方法实施例所示的技术方案, 其实现原理以及有益效果类似,此处不再进行赘述。
[0250] 在一种可能的实施方式中,所述处理器21具体用于:
[0251] 生成所述图像对应的图像绘制命令;
[0252] 将所述第一控件的显示列表中绘制命令更新为所述图像绘制命令;
[0253] 根据所述第一控件的更新后的显示列表,绘制所述第一控件。
[0254] 在一种可能的实施方式中,所述处理器21具体用于:
[0255] 获取所述第一控件的属性信息,所述属性信息中包括第一控件的大小、第一控件中每个 子控件的大小、第一控件中每个子控件在第一控件中的位置;
[0256] 根据所述属性信息和预设绘制函数,得到所述第一控件对应的图像。
[0257] 在一种可能的实施方式中,所述处理器21具体用于:
[0258] 生成所述第一控件对应的图像,并根据生成的所述第一控件对应的图像绘制所述第一控 件。
[0259] 在一种可能的实施方式中,所述处理器21具体用于:
[0260] 生成所述第一控件对应的图像;
[0261] 获取所述第一控件的显示列表,所述显示列表中包括所述第一控件的绘制命令和所述第 一控件中各子控件的绘制命令;
[0262] 根据所述显示列表,绘制所述第一控件。
[0263] 在一种可能的实施方式中,所述处理器21具体用于:
[0264] 若所述第一控件的状态为第一状态,则确定所述第一控件和所述第一控件中的子控件未 发生更新;
[0265] 若所述第一控件的状态为第二状态,则确定所述第一控件或所述第一控件中的子控件发 生更新。
[0266] 在一种可能的实施方式中,所述处理器21还用于:
[0267] 在检测到所述第一控件或者所述第一控件中的子控件发生更新之后,将所述第一控件的 状态设置为第二状态;
[0268] 将所述第一控件的状态设置为第一状态。
[0269] 在一种可能的实施方式中,所述第一控件为视窗组控件,所述第一控件中的子控件为视 窗控件。
[0270] 需要说明的是,本申请实施例中的电子设备20可以执行上述方法实施例所示的技术方案, 其实现原理以及有益效果类似,此处不再进行赘述。
[0271] 图18为本申请实施例提供的另一种电子设备的结构示意图。请参见图18,电子设备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等。
[0272] 可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申 请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件, 或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组 合实现。
[0273] 处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器 (application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU), 图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit, NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0274] 控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的 控制。
[0275] 处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110 中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数 据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复 存取,减少了处理器110的等待时间,因而提高了系统的效率。
[0276] 在一些实施例中,处理器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)接口等。
[0277] I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串 行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处 理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头 193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传 感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
[0278] I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理 器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。 在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现 通过蓝牙耳机接听电话的功能。
[0279] PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频 模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170 也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。 所述I2S接口和所述PCM接口都可以用于音频通信。
[0280] UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它 将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于 连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160 中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向 无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
[0281] MIPI接口可以被用于连接处理器110与显示器194,摄像头193等外围器件。MIPI接口 包括摄像头串行接口(camera serial interface,CSI),显示器串行接口(display serial interface, DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100 的拍摄功能。处理器110和显示器194通过DSI接口通信,实现电子设备100的显示功能。
[0282] 可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不 构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述 实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0283] 移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解 决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进 行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制 解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信 模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块 150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
[0284] 调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号 调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解 调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递 给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信 号,或通过显示器194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器 件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其 他功能模块设置在同一个器件中。
[0285] 无线通信模块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转为电磁波辐射出去。
[0286] 在一些实施例中,电子设备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)。
[0287] 电子设备100通过GPU,显示器194,以及应用处理器等实现显示功能。GPU为图像处 理的微处理器,连接显示器194和应用处理器。GPU用于执行数学和几何计算,用于图形渲 染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
[0288] 显示器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的正整数。
[0289] 电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示器194以及应用处 理器等实现拍摄功能。
[0290] ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递 到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理, 转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对 拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
[0291] 数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字 信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变 换等。
[0292] 视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编 解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组 (moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
[0293] NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如 借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以 实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0294] 外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备 100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功 能。例如将音乐,视频等文件保存在外部存储卡中。
[0295] 内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。 内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至 少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电 子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121 可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件, 闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部 存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种 功能应用以及数据处理。
[0296] 电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机 接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
[0297] 音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转 换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音 频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110 中。
[0298] 需要说明的是,图17所示的电子设备可以与图18所示的电子设备相同,或者,图17所 示的电子设备为图18所示的电子设备中的一部分。
[0299] 本申请实施例提供一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序 用于实现上述实施例所述的页面绘制的控制方法。
[0300] 本申请实施例提供一种计算机程序产品,所述计算机程序产品包括指令,当所述指令被 执行时,使得计算机执行上述页面绘制的控制方法。
[0301] 本申请实施例提供一种芯片上系统或系统芯片,所述芯片上系统或系统芯片可应用于电 子设备,所述芯片上系统或系统芯片包括:至少一个通信接口,至少一个处理器,至少一个 存储器,所述通信接口、存储器和处理器通过总线互联,所述处理器通过执行所述存储器中 存储的指令,使得所述终端设备可执行上述页面绘制的控制方法。
[0302] 实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的 程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤; 而前述的存储器(存储介质)包括:只读存储器(read-only memory,ROM)、RAM、快闪存 储器、硬盘、固态硬盘、磁带(magnetic tape)、软盘(floppy disk)、光盘(optical disc)及 其任意组合。
[0303] 本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流 程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程 序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以 产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于 实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0304] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工 作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制 造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指 定的功能。
[0305] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或 其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编 程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多 个方框中指定的功能的步骤。
[0306] 显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精 神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的 范围之内,则本申请也意图包含这些改动和变型在内。
[0307] 在本申请中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和 /或”。本本申请中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序 或先后次序。本申请中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系, 表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独 存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。