CN115686700A - 渲染方法及电子设备 - Google Patents

渲染方法及电子设备 Download PDF

Info

Publication number
CN115686700A
CN115686700A CN202110875756.0A CN202110875756A CN115686700A CN 115686700 A CN115686700 A CN 115686700A CN 202110875756 A CN202110875756 A CN 202110875756A CN 115686700 A CN115686700 A CN 115686700A
Authority
CN
China
Prior art keywords
rendering
data
level
same
electronic device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110875756.0A
Other languages
English (en)
Inventor
周越海
毕文阳
王洁
孟坤
李俊杰
肖剑锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110875756.0A priority Critical patent/CN115686700A/zh
Priority to PCT/CN2022/106621 priority patent/WO2023005751A1/zh
Publication of CN115686700A publication Critical patent/CN115686700A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请提供渲染方法及电子设备;涉及计算机图形技术领域,能够通过并行渲染的方式,有效减少单帧渲染时长,保证屏幕刷新率,提升用户使用体验。该方法包括:电子设备获取待显示的渲染对象,渲染对象包括控件和布局。获取包括待显示的渲染对象的控件树,从控件树根节点开始遍历控件树:将不同的控件树层级设为不同的渲染层级,将同一控件树层级的相交的渲染对象设为不同的渲染层级。之后,并行渲染同一渲染层级的渲染对象,串行渲染不同渲染层级的渲染对象。

Description

渲染方法及电子设备
技术领域
本申请实施例涉及计算机图形技术领域,尤其涉及一种渲染方法及电子设备。
背景技术
随着终端技术的发展,电子设备(如手机、大屏设备等)能够为用户提供更好的显示体验。比如,现部分电子设备配置有每秒刷新速率达144赫兹(Hz)的显示器,相较于普通刷新速率一般为60Hz的显示器,较高的刷新速率能够使得界面操作更加流畅。
一般为了保证刷新速率,需要降低显示画面单帧渲染时长,否则很难保证高刷新速率的显示器的满帧显示效果,容易出现丢帧卡顿现象,影响用户使用体验。对于144Hz刷新率的显示器而言,单帧的渲染时长需要小于6ms,并且未来可能出现对更高刷新率的需求,这就要求更短的单帧渲染时长,但是目前对于复杂场景下的显示画面,已经很难在6ms内完成单帧渲染。
发明内容
本申请实施例提供的渲染方法及电子设备,能够通过并行渲染的方式,有效减少单帧渲染时长,保证屏幕刷新率,提升用户使用体验。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种渲染方法,应用于电子设备,该方法可以包括:电子设备,获取待显示的渲染对象,渲染对象包括控件和布局,获取包括待显示的渲染对象的控件树。从控件树根节点开始遍历控件树:将不同的控件树层级设为不同的渲染层级,将同一控件树层级的相交的渲染对象设为不同的渲染层级;并行渲染同一渲染层级的渲染对象,串行渲染不同渲染层级的渲染对象。
一些实施例中,控件树用于表示按照树形结构进行组织的控件、布局。控件树层级用于表示在遍历控件树后,确定的控件树中的控件、布局的树状节点关系。控件树中每一节点对应于一个渲染对象(即一个控件或一个布局),每一控件树层级包含一个或多个渲染对象(即包括一个或多个控件、一个或多个布局)。那么,在获取到控件树层级后,需要确定控件树中同一控件树层级的渲染对象(即控件、布局)是否相交,从而根据相交情况,划分渲染层级。
一些实施例中,串行渲染包括调用线程按照渲染层级顺序,顺序渲染渲染对象;并行渲染包括调用多个渲染线程同时执行同一渲染层级的渲染任务。
如此,通过本申请实施例提供的方法,可以有效降低渲染时长,避免显示图像出现丢帧现象。也就是说,通过并行渲染的方式可以降低电子设备显示图像时出现丢帧的可能性,保证显示屏显示图像的流畅性,从而提升用户的视觉体验。
在一种可能的实现方式中,并行渲染同一渲染层级的渲染对象;包括:并行渲染同一渲染层级的渲染对象中同一指令组中的构成元素数据,串行渲染同一渲染层级的渲染对象中不同指令组中的构成元素数据。
在一种可能的实现方式中,构成元素数据包括如下一项或几项内容:前景层构成元素数据、内容层构成元素数据、背景层构成元素数据。
其中,背景层构成元素数据在渲染后对应于控件或布局的背景,内容层构成元素在渲染后对应于控件或布局的显示内容,前景层构成元素数据在渲染后对应于控件或布局的前景。比如,控件为文本控件,则该控件的内容层构成元素数据包括对应的文本数据。
在一些实施例中,电子设备在完成渲染层级的划分后,对于不同渲染层级的数据可以按照渲染层级顺序进行渲染,但是对于同一渲染层级的数据还需要进一步确定同一渲染层级内的构成元素数据的渲染顺序。可选的,对同一渲染层级内的构成元素数据进行指令组分组,按照指令组分组结果进行控件、布局渲染。
如此,按照构成元素数据进一步对渲染对象的数据进行分类,能够进一步优化同一渲染层级中执行的并行渲染任务。其中,渲染对象的数据包括如下情况:若渲染对象为控件,则渲染对象的数据为控件数据;若渲染对象为布局,则渲染对象的数据为布局数据。
在一种可能的实现方式中,同一指令组中的构成元素数据的数据类别相同,不同指令组中的构成元素数据的数据类别不同;或者,同一指令组中的构成元素数据在对应的渲染对象中对应的指令执行顺序相同,不同指令组中的构成元素数据在对应的渲染对象中对应的指令执行顺序不同。
一些实施例中,将同一渲染层级内的背景层构成元素划分至一个指令组数据,内容层构成元素划分至一个指令组数据,前景层构成元素划分至一个指令组数据。比如,将位于同一渲染层级内的背景数据划分为一个指令组、文本数据划分为一个指令组等。可选的,将指令组分组结果标记记录至对应的控件数据或布局数据中,那么之后在渲染过程中,按照标记同一渲染层级内就可以按照背景层构成元素数据指令组、内容层构成元素数据指令组、前景层构成元素数据指令组的顺序进行渲染。
如此,按照构成元素数据的类别,快速完成渲染对象数据的划分,确定能够并行渲染的指令组的数据,提升渲染效率。
在一种可能的实现方式中,将同一控件树层级的相交的渲染对象设为不同的渲染层级,包括:获取同一控件树层级的渲染对象对应的最小矩形区域;将同一控件树层级中最小矩形区域相交的渲染对象设为不同的渲染层级。
一些实施例中,指令执行顺序例如包括控件数据、布局数据的构成元素数据的原渲染顺序。具体的,控件数据或布局数据的构成元素数据的原渲染顺序一般为先渲染背景层构成元素数据,再渲染内容层构成元素数据,最后渲染前景层构成元素数据。若控件数据或布局数据中不包括某一层或几层构成元素数据,则允许跳过该层数据直接渲染下一层构成元素数据。那么,按照指令执行顺序,将同一渲染层级中指令执行顺序相同的数据划分至同一指令组,不同指令执行顺序的数据划分至不同的指令组。可选的,将指令组分组结果标记记录至对应的控件数据或布局数据中,那么之后在渲染过程中,按照标记的指令组分组结果及指令组执行顺序,进行渲染。
如此,避免出现在存在渲染对象的数据中不包含某类别的构成元素数据的情况下,渲染线程暂停等待的问题,减少不必要的渲染等待时长。
在一种可能的实现方式中,渲染对象对应的最小矩形局域为覆盖渲染对象且面积最小的矩形区域。
一些实施例中,在绘制控件和布局的过程中,控件和布局存在对应的绘制区域,若绘制区域部分或全部相交,则说明对应的控件、布局相交。可选的,根据控件数据、布局数据能够获得对应的绘制区域,可以利用最小矩形区域表示控件或布局的绘制区域,最小矩形区域例如包括能够覆盖对应的控件或布局且面积最小的区域。
如此,电子设备通过最小矩形区域的相交情况,确定渲染对象的相交情况。
在一种可能的实现方式中,在并行渲染同一渲染层级的渲染对象之前,方法还包括:获取资源情况。根据资源情况,确定允许并行调用的渲染线程的最大数量。
在一些实施例中,电子设备根据CPU、GPU中可运行的资源情况,分配渲染线程进行数据渲染。比如,UI线程根据渲染层级划分结果以及指令组分组结果,生成渲染指令触发渲染线程进行数据渲染,渲染线程接收到渲染指令后进行数据渲染。
在一种可能的实现方式中,并行渲染同一渲染层级的渲染对象,包括:若并行渲染同一渲染层级的渲染对象所需的渲染线程的第一数量小于或等于最大数量,则调用第一数量的渲染线程并行渲染同一渲染层级的渲染对象。若第一数量大于最大数量,则调用最大数量的渲染线程并行渲染同一渲染层级的渲染对象。
在一些实施例中,电子设备完成待渲染数据的指令组分组后,根据CPU、GPU中可运行的资源,确定可并行调用的渲染线程数量是否满足指令组的渲染需求,若并行可调用的线程数量满足指令组的渲染需求,则调用相应数量的渲染线程并行渲染指令组内的数据。若并行可调用的线程数量不满足指令组的渲染需求,则调用最大数量的渲染线程并行渲染指令组内的部分数据,分批次渲染指令组内的全部数据。
如此,电子设备在执行渲染任务之前,先根据资源情况,确定允许调用的最大数量的渲染线程,保证并行渲染任务的顺利执行,避免出现渲染异常。
第二方面,本申请实施例提供一种电子设备,包括:处理器和存储器;存储器与处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器从存储器中读取计算机指令,使得电子设备执行如下操作获取待显示的渲染对象,渲染对象包括控件和布局,获取包括待显示的渲染对象的控件树。从控件树根节点开始遍历控件树:将不同的控件树层级设为不同的渲染层级,将同一控件树层级的相交的渲染对象设为不同的渲染层级;并行渲染同一渲染层级的渲染对象,串行渲染不同渲染层级的渲染对象。
在一种可能的实现方式中,并行渲染同一渲染层级的渲染对象;包括:并行渲染同一渲染层级的渲染对象中同一指令组中的构成元素数据,串行渲染同一渲染层级的渲染对象中不同指令组中的构成元素数据。
在一种可能的实现方式中,构成元素数据包括如下一项或几项内容:前景层构成元素数据、内容层构成元素数据、背景层构成元素数据。
在一种可能的实现方式中,同一指令组中的构成元素数据的数据类别相同,不同指令组中的构成元素数据的数据类别不同;或者,同一指令组中的构成元素数据在对应的渲染对象中对应的指令执行顺序相同,不同指令组中的构成元素数据在对应的渲染对象中对应的指令执行顺序不同。
在一种可能的实现方式中,将同一控件树层级的相交的渲染对象设为不同的渲染层级,包括:获取同一控件树层级的渲染对象对应的最小矩形区域;将同一控件树层级中最小矩形区域相交的渲染对象设为不同的渲染层级。
在一种可能的实现方式中,渲染对象对应的最小矩形局域为覆盖渲染对象且面积最小的矩形区域。
在一种可能的实现方式中,当处理器从存储器中读取所述计算机指令,还使得电子设备执行如下操作:获取资源情况。根据资源情况,确定允许并行调用的渲染线程的最大数量。
在一种可能的实现方式中,并行渲染同一渲染层级的渲染对象,包括:若并行渲染同一渲染层级的渲染对象所需的渲染线程的第一数量小于或等于最大数量,则调用第一数量的渲染线程并行渲染同一渲染层级的渲染对象。若第一数量大于最大数量,则调用最大数量的渲染线程并行渲染同一渲染层级的渲染对象。
此外,第二方面所述的电子设备的技术效果可以参考第一方面所述的渲染方法的技术效果,此处不再赘述。
第三方面,本申请实施例提供一种电子设备,该电子设备具有实现如上述第一方面及其中任一种可能的实现方式中所述的渲染方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其中任一种可能的实现方式中任一项所述的渲染方法。
第五方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如第一方面及其中任一种可能的实现方式中任一项所述的渲染方法。
第六方面,本申请实施例提供一种电路系统,电路系统包括处理电路,处理电路被配置为执行如上述第一方面及其中任一种可能的实现方式中所述的渲染方法。
第七方面,本申请实施例提供一种芯片系统,包括至少一个处理器和至少一个接口电路,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,当至少一个处理器执行指令时,至少一个处理器执行如上述第一方面及其中任一种可能的实现方式中所述的渲染方法。
附图说明
图1为本申请实施例提供的界面示意图;
图2为本申请实施例提供的电子设备的形态示意图;
图3为本申请实施例提供的电子设备的结构示意图一;
图4为本申请实施例提供的电子设备的软件结构框图示意图;
图5为本申请实施例提供的渲染方法流程图;
图6为本申请实施例提供的控件树结构示意图;
图7为本申请实施例提供的渲染层级分层场景示意图;
图8为本申请实施例提供的指令组分组场景示意图一;
图9为本申请实施例提供的指令组分组场景示意图二;
图10为本申请实施例提供的图像帧刷新周期示意图;
图11为本申请实施例提供的电子设备的结构示意图二;
图12为本申请实施例提供的电子设备的结构示意图三。
具体实施方式
下面结合附图对本申请实施例提供的渲染方法及电子设备进行详细地描述。
本申请实施例的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
首先,为了便于理解,下面先对本申请实施例涉及的相关术语和概念进行介绍。
(1)控件和控件数据
控件(view),在一些实施例中也称为部件(widget),是一种用户界面元素,能够作为人机交互接口,接收用户对电子设备的操作。比如,电子设备通过检测用户对控件的操作,接收用户输入的控制命令。其中,控件可以包括文本控件(text view),按钮(button),图片控件(image view),进度条(progress bar)等。
示例性的,如图1中(a)所示主界面101,在主界面101上显示有应用程序图标,应用程序图标作为控件可以用于启动应用程序,这里的应用程序图标,相当于启动器应用的控件,启动器即launcher,即显示用户手机桌面的系统应用,包括显示和管理桌面上的应用图标和各种桌面控件等。比如,手机检测到用户点击控件1011的操作后(这里以应用程序为“设置”应用举例),显示如图1中(b)所示界面102。如界面102所示,控件可以包括图片控件1021、文本控件1022、按钮1023等。
控件数据,是由包括控件的应用程序生成的。例如,上述启动器应用的应用程序图标控件,是启动器用于显示和便于用户打开安装的其他应用程序的控件。所以控件数据由启动器根据所述安装的其他应用程序来获取和生成,也可以在启动器中改变控件的数据,例如用户可以调整控件的位置和大小等。电子设备根据控件数据进行控件的绘制,以显示用户可见的控件。
(2)布局和布局数据
布局(layout),用于指示某显示区域的位置和尺寸,以及所述显示区域内的控件的位置显示效果。布局的类型包括线性布局(linear layout),相对布局(relativelayout),绝对布局(absolute layout)等。其中,线性布局用于表示控件按照横向或纵向等方向线性排列显示。相对布局用于表示控件相对于其他控件的显示位置。绝对布局用于表示控件在显示界面中的显示位置。例如,控件A的布局包括控件A的中心像素点与显示屏的中心点重合,尺寸为200像素(pixels),则控件A的布局为绝对布局。控件B的布局包括控件B的中心像素点位于控件A中心像素点左侧N个像素点位置,控件B的尺寸与控件A相同,则控件B的布局为相对布局。
示例性的,如图1中(b)所示界面102,蓝牙、移动网络、桌面和壁纸等各个设置选项显示位置对应的布局的类型包括线性布局。
布局数据,包括某显示区域的位置和尺寸的信息,以及所述显示区域中包含的控件,以及控件对应的布局的类型等信息。
在一些实施例中,电子设备显示图像的进程中至少包括用户界面(userinterface,UI)线程和渲染线程。其中,UI线程,用于控制UI界面的显示、更新和控件交互,可以生成图形数据和渲染指令。渲染线程,根据图形数据和渲染指令完成控件数据、布局数据等的渲染工作,生成图像帧。
需要说明的是,电子设备在图形绘制过程中,调用的UI线程和渲染线程的数量为一个或多个。本申请实施例中的UI线程在不同操作系统中也可以描述为UI进程、UI任务等,本申请实施例中的渲染线程在不同操作系统中也可以描述为渲染进程、渲染任务等,对此下文不再说明。
在一些实施例中,显示帧率表示电子设备显示图像的流畅度,显示帧率越高,显示图像越流畅,越能实现更加逼真的显示效果。目前用户对电子设备显示效果要求越来越高,为了保证显示效果,需要提高显示帧率,这就要求提升图像生成速率。其中,控件数据、布局数据等的渲染工作时长对图像生成速率影响较大。
示例性的,电子设备如需达到144HZ的高显示帧率,需保证单帧图像渲染时长小于6ms。但是在复杂场景下,比如单帧图像中包括的控件较多时,单帧图像渲染时长很难保证小于6ms,电子设备在渲染周期内无法完成当前图像帧的渲染,导致该帧图像无法合成,造成电子设备显示图像出现卡顿(即丢帧)现象。
基于此,本申请实施例提供一种渲染方法,通过分层并行渲染待渲染的控件数据和布局数据,有效降低渲染时长,满足高显示帧率对图像生成速率的要求,避免电子设备显示图像出现卡顿现象。
本申请实施例提供的渲染方法,可以应用于电子设备。例如,如图2所示,该电子设备具体可以是大屏显示设备21、手机22、笔记本电脑23、平板电脑24、车载设备25、可穿戴设备(如智能手表26)、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、人工智能(artificialintelligence)设备等具有显示功能的终端设备,本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图3示出了电子设备100的结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentification module,SIM)卡接口195等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包括多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器,使处理器110与触摸传感器通过I2C总线接口通信,实现电子设备100的触摸功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal 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转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,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),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
其中,本申请实施例中的显示屏194可以是触摸屏。即该显示屏194中集成了触摸传感器。该触摸传感器也可以称为“触控面板”。也就是说,显示屏194可以包括显示面板和触摸面板,由触摸传感器与显示屏194组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器检测到的触摸操作后,可以由内核层的驱动(如TP驱动)传递给上层,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
示例性的,电子设备100利用触摸传感器检测到用户在显示屏194上的触摸操作后,可能会触发显示屏194上显示的控件位置发生变化,那么在显示下一帧图像时,需要重新对图层数据进行渲染。例如,电子设备100检测到用户长按并拖动应用程序图标的操作后,在拖动过程中的每一帧图像,应用程序图标(即控件)位置都可能发生变化,需要进行控件数据和布局数据的渲染。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。电子设备100可以通过音频模块170以及应用处理器等实现音频功能。例如音乐播放,录音等。其中,音频模块可以包括扬声器,受话器,麦克风,耳机接口。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图4是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)的系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图4所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
活动管理器用于负责管理Activity,负责系统中各组件的启动、切换、调度及应用程序的管理和调度等工作。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包括两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
二维图形引擎是2D绘图的绘图引擎,常见的图形引擎例如包括Vulkan,Canvas等。
内核层是硬件和软件之间的层。内核层至少包括显示驱动,摄像头驱动,音频驱动,传感器驱动。
其中,用户对电子设备进行输入操作(如触发电子设备启动某个应用程序的操作),内核层可以根据输入操作产生相应的输入事件(如应用程序启动事件),并向应用程序框架层上报该事件。由应用程序框架层的视图系统确定应用程序对应的控件数据和布局数据,以及确定渲染引擎渲染的流程逻辑,并发送至系统库的二维图形引擎进行处理,之后将处理后的数据发送给内核层的显示驱动,由显示驱动在显示屏显示对应的应用界面。
图5所示为本申请实施例提供的一种渲染方法示意图,该方法可应用于电子设备,如图5所示,该方法可以包括S501-S503。
S501、获取待绘制的控件树中的控件数据、布局数据,并确定控件树中控件、布局的控件树层级。
在一些实施例中,电子设备检测到触发渲染的事件后,获取待显示的渲染对象,以及待显示的渲染对象的控件树(即待绘制的控件树),之后确定控件树中渲染对象的控件树层级。其中,渲染对象包括控件和布局。渲染对象的数据包括如下情况:若渲染对象为控件,则渲染对象的数据为控件数据;若渲染对象为布局,则渲染对象的数据为布局数据。
一些实施例中,触发渲染的事件例如为电子设备检测到的用户在显示屏上的触摸操作,如点击某个可交互的控件的操作、或用户在显示屏上的滑动(如上下滑动、左右滑动等)操作;或者可以为电子设备检测到的用户的语音输入;或者可以为电子设备前台应用自动切换画面的事件等,在此不做限定。前台应用是电子设备的显示屏当前显示的界面对应的应用。
需要说明的是,前台应用的画面内容不仅可以包括用户看的见的画面,还可以包括无用户界面的内容、透明图层的内容或者被其他应用界面遮挡对用户不可见的内容,电子设备需要获取画面内容对应的待绘制的全部控件数据、布局数据。
一些实施例中,控件树(view tree)用于表示按照树形结构进行组织的控件、布局。控件树层级的确认,即为遍历控件树确定控件树中的控件、布局的树状节点关系,以及将确定的控件、布局的控件树层级填写至对应的控件数据、布局数据中,以便于后续步骤S502中根据控件树层级划分渲染层级。
需要说明的是,“、”用于表示“和/或”的对象关联关系,如控件数据、布局数据用于表示单独存在控件数据,单独存在布局数据,同时存在控件数据和布局数据这三种情况,对此下文不再赘述。
示例性的,假设控件树中的控件和布局包括绝对布局0、绝对布局1、绝对布局2、绝对布局3、相对布局1、按钮(button)0、按钮1、按钮2、按钮3、文本(text)0、文本1、文本2以及文本3。如图6中(a)所示,示出该控件树中的控件和布局的位置关系示意图。以电子设备配置安卓系统为例,电子设备在检测到用户在显示屏上的触摸操作后,启动窗口(window)对应的Activity,并创建对应的控件树。之后,获取控件树中的控件数据、布局数据,根据控件树节点所在控件树的节点深度,分到对应控件树深度的层级,可以根据层级给对应的控件数据、布局数据中填写对应的控件树层级标记,以便于后续步骤S502划分渲染层级。
具体的,在控件树创建过程中,首先会确定根视图(root view),之后调用setContentView()方法,完成根视图之上的其他节点的创建。那么,控件树中的节点关系可以根据Z轴值确定,Z轴值与控件、布局的创建顺序相关。如图6中(a)所示,当前控件树中根视图为绝对布局0,则如图6中(b)所示,确定绝对布局0在控件树中的层级为控件树层级0,将控件树层级0标记填写到绝对布局0对应的布局数据中。
之后,将绝对布局0作为父节点(parentCount),根据如图6中(a)所示的位置关系,确定绝对布局0的子节点(childrenCount)包括绝对布局1、绝对布局2以及相对布局1。因此,如图6中(b)所示确定绝对布局1、绝对布局2以及相对布局1在控件树中的层级为控件树层级1,并将控件树层级1标记记录至对应的布局数据中。
之后,再将绝对布局1、绝对布局2以及相对布局1分别作为父节点,根据如图6中(a)所示的位置关系确定各个父节点对应的子节点,例如绝对布局1的子节点包括按钮0和按钮1,绝对布局2的子节点包括文本0和文本1,相对布局1的子节点包括按钮2、按钮3以及绝对布局3,则如图6中(b)所示确定各个子节点在控件树中的层级为控件树层级2,并将控件树层级2标记记录至对应的控件数据和布局数据中。
最后,根据如图6中(a)所示的位置关系,将绝对布局3作为父节点,确定其子节点包括文本2和文本3,如图6中(b)所示确定绝对布局3在控件树中的层级为控件树层级3,并将控件树层级3标记记录至对应的控件数据中。
如此,按照上述步骤完成控件树层级的确认,获得如图6中(b)所示的控件树的数据结构。可以理解的是,还可以利用其他遍历算法完成控件树的控件树层级的确认,在此不再赘述。
需要说明的是,S501中的某一步骤或多个步骤可以为电子设备调用UI线程完成。其中,本申请实施例不限制控件树中节点的创建顺序,如节点创建顺序可以为用户自定义确定,在获取到控件树后,只需根据控件树中的节点关系确定控件树层级即可。
此外,在遍历控件树完成控件树层级的确认后,后续控件树中包括的控件数据、布局数据没发生变化,则只需对控件树进行维护,而不必再在渲染前遍历控件树,只继承之前的数据即可。或者,控件树中包括的控件数据、布局数据部分发生变化,则仅需再次对变化部分的控件树层级及其子控件树层级重新确认。
可以理解的是,上述控件树层级0、控件树层级1、控件树层级2以及控件树层级3用于表示控件树层级顺序,仅为一种示例性说明,比如控件树层级还可以表示为控件树层级1-控件树层级4,控件树层级A-控件树层级D等。
S502、按照相交情况,划分渲染层级。
在一些实施例中,控件树中每一节点对应于一个渲染对象(即一个控件或一个布局),每一控件树层级包含一个或多个渲染对象(即包括一个或多个控件、一个或多个布局)。那么,在获取到控件树层级后,需要确定控件树中同一控件树层级的渲染对象(即控件、布局)是否相交,从而根据相交情况,划分渲染层级。
比如,根据控件树层级先将控件、布局初步划分至对应的渲染层级(即将不同的控件树层级设为不同的渲染层级),之后在此基础上,将同一控件树层级中相交的控件、布局划分至不同的渲染层级(即将同一控件树层级的相交的渲染对象设为不同的渲染层级),不相交的控件、布局划分至同一渲染层级,完成渲染层级的划分。可选的,将确定的控件、布局的渲染层级标记填写至对应的控件数据、布局数据中,以便于后续在步骤S503中根据渲染层级进行控件、布局的渲染。
一些实施例中,在绘制控件和布局的过程中,控件和布局存在对应的绘制区域,若绘制区域部分或全部相交,则说明对应的控件、布局相交。可选的,根据控件数据、布局数据能够获得对应的绘制区域,可以利用最小矩形区域表示控件或布局的绘制区域,最小矩形区域例如包括能够覆盖对应的控件或布局且面积最小的区域。
比如,如图6中(a)所示,附图标记61指示的矩形框内的区域能够完全覆盖文本2的绘制区域且面积最小,则为文本2对应的最小矩形区域,附图标记62指示的矩形框内的区域能够完全覆盖文本3的绘制区域且面积最小,则为文本3对应的最小矩形区域。进一步的,如图6中(b)所示,文本2和文本3均已设为控件树层级3(即同一个控件树层级),则需要确定这两个渲染对象(即文本2和文本3)是否相交,以确定渲染层级。如图6中(a)所示,通过判断最小矩形区域是否相交,进而判断这两个渲染对象是否相交。
需要说明的是,图6中(a)所示的控件树中各个控件和布局的位置关系的示意图中,已经示出控件和布局对应的最小矩形区域,即为图中所示的各个矩形外边框以内的区域,下文对此不再进行说明。
如下针对图6所示的控件树场景,说明如何按照相交情况,划分渲染层级。
示例性的,如图6中(b)所示,获取到控件树的控件树层级信息,绝对布局0的层级为控件树层级0,则如图7所示,划分绝对布局0的渲染层级为渲染层级0。
之后,按照控件树层级顺序,确定下一层级,即控件树层级1对应的渲染对象包括绝对布局1、绝对布局2以及相对布局1,如图6中(a)所示,相对布局1对应的最小矩形区域与绝对布局1对应的最小矩形区域以及绝对布局2对应的最小矩形区域均不相交,则确定相对布局1与绝对布局1和绝对布局2均不相交,那么对应于控件树层级,如图7所示,将相对布局1的渲染层级划分为渲染层级1。如图6中(a)所示,绝对布局2对应的最小矩形区域与绝对布局1对应的最小矩形区域相交,则确定绝对布局2与绝对布局1相交,且相交区域绝对布局2在绝对布局1之上。那么对应于控件树层级,如图7所示,将绝对布局1的渲染层级划分为渲染层级1;将绝对布局2的渲染层级在对应的控件树层级上加1,划分为渲染层级2。
之后,如图6中(b)所示,再确认下一层级,即控件树层级2对应的渲染对象包括按钮0、按钮1、文本0、文本1、按钮2、按钮3以及绝对布局3。其中,如图6中(a)所示,根据对应的最小矩形区域,确定按钮0和按钮1相交,且相交区域按钮1在按钮0之上;文本0和文本1相交,且相交区域文本1在文本0之上;按钮2、按钮3以及绝对布局3与其他渲染对象均不相交。那么对应于控件树层级,如图7所示,将按钮0、按钮2、按钮3以及绝对布局3的渲染层级划分为渲染层级2,将按钮1的渲染层级划分为渲染层级3。并且,由于绝对布局2的渲染层级为渲染层级2,文本0和文本1为绝对布局2的子节点控件,那么将文本0的渲染层级在渲染层级2的基础上加1,划分为渲染层级3;将文本1的渲染层级在渲染层级3的基础上加1,划分为渲染层级4。
最后,如图6中(b)所示,再确认下一层级,即控件树层级3对应的渲染对象包括文本2和文本3。其中,如图6中(a)所示,根据对应的最小矩形区域,确定文本2和文本3相交,且相交区域文本3在文本2之上。那么对应于控件树层级,如图7所示,将文本2的渲染层级划分为渲染层级3,将文本3的渲染层级划分为渲染层级4。
如此,遍历控件树层级,完成渲染对象的渲染层级的划分。
可以理解的是,上述渲染层级0、渲染层级1、渲染层级2、渲染层级3以及渲染级4用于表示渲染顺序,仅为一种示例性说明,比如渲染层级还可以表示为渲染层级1-渲染层级5,渲染层级A-渲染层级E等。
需要说明的是,渲染层级的划分可以为UI线程在确认控件树层级后确认,之后在步骤S503中渲染线程直接获取渲染层级进行渲染;或者渲染线程获取控件树层级后,根据控件树层级划分渲染层级;或者通过其他线程划分渲染层级,渲染线程接收确认后的渲染层级划分结果以及数据之后执行数据渲染。
S503、调用渲染线程,渲染控件、布局。
在一些实施例中,电子设备调用渲染线程,按照渲染层级顺序对渲染对象(如包括控件、布局)进行渲染。比如,按照渲染层级顺序串行渲染不同渲染层级的渲染对象,并行渲染相同渲染层级的渲染对象。其中,串行渲染包括调用线程按照渲染层级顺序,顺序渲染渲染对象;并行渲染包括调用多个渲染线程同时执行渲染任务。
示例性的,如图7所示,当前渲染层级包括5个层级,调用渲染线程按照渲染层级0至渲染层级4的渲染顺序进行串行渲染,即由低渲染层级串行渲染至渲染高层级。比如,调用同一个渲染线程,顺序渲染绝对布局0、绝对布局1和按钮0。并且,同一渲染层级内的数据并行渲染,如在渲染绝对布局0后,调用两个渲染线程并行渲染绝对布局1和相对布局1。
在一些场景中,控件数据或布局数据包括背景层构成元素数据、内容层构成元素数据以及前景层构成元素数据中的一项或几项内容。其中,背景层构成元素数据在渲染后对应于控件或布局的背景,内容层构成元素在渲染后对应于控件或布局的显示内容,前景层构成元素数据在渲染后对应于控件或布局的前景。比如,控件为文本控件,则该控件的内容层构成元素数据包括对应的文本数据。
因此,电子设备在完成渲染层级的划分后,对于不同渲染层级的数据可以按照渲染层级顺序进行渲染,但是对于同一渲染层级的数据还需要进一步确定同一渲染层级内的构成元素数据的渲染顺序。可选的,对同一渲染层级内的构成元素数据进行指令组分组,按照指令组分组结果进行控件、布局渲染。
比如,如图7所示,按钮0和按钮2均划分为渲染层级2,假设按钮0中包括背景1和内容1,按钮2仅包括内容2。那么,尽管按钮0和按钮1位于同一渲染层级,还需要对背景1、内容1和内容2的渲染顺序进行划分。
如下介绍两种构成元素数据的指令组分组方法。
方法一、按照构成元素数据的数据类别,对同一渲染层级内的控件数据、布局数据进行分组,相同数据类别的数据划分至同一指令组,不同数据类别的数据划分至不同的指令组。
一些实施例中,将同一渲染层级内的背景层构成元素划分至一个指令组数据,内容层构成元素划分至一个指令组数据,前景层构成元素划分至一个指令组数据。比如,将位于同一渲染层级内的背景数据划分为一个指令组、文本数据划分为一个指令组等。可选的,将指令组分组结果标记记录至对应的控件数据或布局数据中,那么之后在渲染过程中,按照标记同一渲染层级内就可以按照背景层构成元素数据指令组、内容层构成元素数据指令组、前景层构成元素数据指令组的顺序进行渲染。
示例性的,如图8所示,假设利用上述步骤S502所述的方法,确定控件树中包括的控件数据、布局数据的渲染层级包括渲染层级1和渲染层级2,渲染层级1对应的数据包括文本1、文本3、文本5、文本7以及文本9,渲染层级2对应的数据包括文本2、文本4、文本6、文本8以及文本10。对同一渲染层级中的数据进行指令组划分,假设各个文本数据均包括背景层构成元素数据和内容层构成元素数据(即文本内容),如图8所示,每一渲染层级中可以将背景层构成元素数据划分为一个指令组(如指令组1或指令组3),内容层构成元素数据划分为一个指令组(如指令组2或指令组4)。划分指令组后,渲染层级1的数据包括指令组1的数据和指令组2的数据,渲染层级2的数据包括指令组3的数据和指令组4的数据。
方法二、按照构成元素数据的指令执行顺序,对同一渲染层级内的控件数据、布局数据进行指令组分组,同一渲染层级内且指令执行顺序相同的数据划分至同一指令组,同一渲染层级内但指令执行顺序不相同的数据划分至不同的指令组。
一些实施例中,指令执行顺序例如包括控件数据、布局数据的构成元素数据的原渲染顺序。具体的,控件数据或布局数据的构成元素数据的原渲染顺序一般为先渲染背景层构成元素数据,再渲染内容层构成元素数据,最后渲染前景层构成元素数据。若控件数据或布局数据中不包括某一层或几层构成元素数据,则允许跳过该层数据直接渲染下一层构成元素数据。那么,按照指令执行顺序,将同一渲染层级中指令执行顺序相同的数据划分至同一指令组,不同指令执行顺序的数据划分至不同的指令组。可选的,将指令组分组结果标记记录至对应的控件数据或布局数据中,那么之后在渲染过程中,按照标记的指令组分组结果及指令组执行顺序,进行渲染。
示例性的,如图9所示,假设利用上述步骤S502所述的方法,确定控件树中包括的控件数据、布局数据的渲染层级包括渲染层级1和渲染层级2,渲染层级1对应的数据包括文本1、文本3、文本5、文本7以及文本9,渲染层级2对应的数据包括文本2、文本4、文本6、文本8以及文本10。对同一渲染层级中的数据进行指令组划分,如图9所示,渲染层级1中的文本1、文本5、文本7以及文本9均包括背景层构成元素数据和内容层构成元素数据,附图标记91指示的文本3仅包括内容层构成元素数据,不包括背景层构成元素数据。指令执行顺序为先执行渲染背景层构成元素数据,再执行渲染内容层构成元素数据,那么文本3由于不包括背景层构成元素数据则在渲染过程中能够直接渲染内容层构成元素数据,而渲染层级1中的其他数据需要先渲染背景层构成元素数据再渲染内容层构成元素数据。因此若按照元素类别进行划分指令组,则会导致渲染过程中,在渲染文本1、文本5、文本7以及文本9背景层构成元素数据时,负责渲染文本3背景层构成元素数据的渲染线程暂停工作,等待下一指令组再进行渲染,增加不必要的渲染等待时长。因此,电子设备可以按照控件中指令执行顺序划分指令组,如图9所示,划分指令组后,渲染层级1的数据包括指令组1的数据和指令组2的数据,指令组1的数据包括文本1、文本5、文本7以及文本9的背景层构成元素数据,以及文本3的内容层构成元素数据;指令组2的数据包括文本1、文本5、文本7以及文本9的内容层构成元素数据。
需要说明的是,指令组分组可以为UI线程在划分渲染层级后确认,之后在渲染过程中渲染线程直接获取渲染层级以及指令组分组进行渲染;或者,渲染线程获取控件树层级后,根据控件树层级确认渲染层级以及指令组分组;或者,电子设备调用其他线程根据UI线程确定的控件树层级信息,完成渲染层级分层以及指令组分组,之后调用渲染线程按照渲染层级以及指令组分组进行渲染。
在一些实施例中,基于上述步骤S503中,在串行渲染不同渲染层级的渲染对象的基础上,将相同渲染层级内不同指令组数据按照指令组顺序串行渲染,相同指令组内的数据并行渲染。其中,指令组数据渲染顺序对应于背景层构成元素数据、内容层构成元素数据、前景层构成元素数据的渲染顺序。即并行渲染同一渲染层级的渲染对象中同一指令组中的构成元素数据,串行渲染同一渲染层级的渲染对象中不同指令组中的构成元素数据。
示例性的,如图8所示,应先渲染渲染层级1内的控件数据、布局数据,再渲染渲染层级2内的控件数据、布局数据。其中,同属于渲染层级1内的指令组1数据和指令组2数据串行渲染,先渲染指令组1对应的背景层构成元素数据,再渲染指令组2对应的内容层构成元素数据,且同一指令组内并行渲染。如电子设备调用线程1、线程2、线程3、线程4和线程5并行渲染指令组1内的背景层构成元素数据(即背景数据)完成后,再调用线程1、线程2、线程3、线程4和线程5并行渲染指令组2内的内容层构成元素数据(即文本数据)。
在一些实施例中,电子设备根据CPU、GPU中可运行的资源情况,分配渲染线程进行数据渲染。比如,UI线程根据渲染层级划分结果以及指令组分组结果,生成渲染指令触发渲染线程进行数据渲染,渲染线程接收到渲染指令后进行数据渲染。
示例性的,电子设备完成待渲染数据的指令组分组后,根据CPU、GPU中可运行的资源,确定可并行调用的渲染线程数量是否满足指令组的渲染需求,若并行可调用的线程数量满足指令组的渲染需求,则调用相应数量的渲染线程并行渲染指令组内的数据。若并行可调用的线程数量不满足指令组的渲染需求,则调用最大数量的渲染线程并行渲染指令组内的部分数据,分批次渲染指令组内的全部数据。
比如,如图8所示场景中,电子设备根据最终指令组分组结果,确定指令组1-指令组4均需调用5个渲染线程进行并行渲染,电子设备确定当前CPU、GPU中可运行的资源满足需求(如可并行调用渲染线程的最大数量大于或等于5个),即可运行资源允许调用5个渲染线程进行并行渲染,则调用线程1-线程5进行指令组内数据的并行渲染。
又比如,如图8所示场景中,电子设备根据最终指令组分组情况,确定存在5个构成元素数据(如指令组1中包括的背景1-背景5)需要并行渲染,假设电子设备确定最多可调用3个渲染线程进行并行渲染(即可并行调用渲染线程的最大数量为3),则将指令组中需要并行渲染的构成元素数据再次分组后进行串行渲染。比如,将图8所示的指令组1中包括的5个待渲染的背景层构成元素数据中的3个待渲染的背景层构成元素数据划分至一个指令组和另外2个待渲染的背景构成元素数据划分至一个指令组(如将背景1-背景3划分至一个指令组,将背景4和背景5划分至一个指令组)。之后,利用可并行调用的3个渲染线程先并行渲染3个待渲染的背景层构成元素数据,再调用其中任2个渲染线程渲染剩余的2个待渲染的背景层构成元素数据(如先并行渲染背景1-背景3,之后再并行渲染背景4和背景5)。也即在CPU、GPU中可运行的资源不足时,将划分为并行渲染的构成元素数据再次划分为部分串行渲染的构成元素数据,实现数据的分批次渲染,以避免渲染失败。
在一些实施例中,渲染对象的渲染可以由显示设备执行,即电子设备完成渲染层级的划分和指令组的分组后,将结果发送至显示设备(即其他具有显示功能的电子设备)进行渲染并显示。这样,显示设备在降低渲染时长的同时,还可以降低划分渲染层级以及划分指令组的功耗。
如此,通过本申请实施例提供的方法,可以有效降低渲染时长,避免显示图像出现丢帧现象。也就是说,通过并行渲染的方式可以降低电子设备显示图像时出现丢帧的可能性,保证显示屏显示图像的流畅性,从而提升用户的视觉体验。
此外,在有些场景中,相邻图像帧中包括的图形数据(如包括控件数据、布局数据)不发生变化,则不需要重新绘制图形数据。比如,电子设备主界面显示应用程序图标,用户长按并拖动其中一个应用程序图标至空白显示区域显示。在上述应用程序图标拖动过程中,其他应用程序图标的位置及显示内容并不会发生变化,因此电子设备可以不再重新绘制相邻图像帧中不变的控件、布局,以节约电子设备功耗。也即上述步骤S501-步骤S503中提供的渲染方法应用于需要绘制的图形数据中,对于不需要重新绘制的图形数据,则直接获取前一帧图像的渲染结果即可。
示例性的,如图10所示,图像显示过程包括输入事件阶段、UI数据更新阶段、渲染阶段、合成阶段以及显示阶段。其中,如图10所示,利用垂直同步信号(vsync)触发不同阶段。比如,垂直同步信号1可以用于触发绘制一个或多个图层,并触发对该一个或多个图层进行渲染。本申请实施例中,电子设备响应于垂直同步信号1,可以通过多个绘制线程中的每个绘制线程分别针对每个应用绘制一个或多个图层。即电子设备响应于垂直同步信号1,可以同时针对一个或多个应用执行绘制任务,以绘制每个应用对应的一个或多个图层。其中,每一图层对应的渲染方法均可以为上述实施例中所述的渲染方法。垂直同步信号2可以用于触发渲染后的图像帧合成。垂直同步信号3可以用于触发显示合成后的图像帧。各个垂直同步信号的信号周期是根据电子设备的显示屏的屏幕刷新率确定的。比如,垂直同步信号的信号周期是电子设备的显示屏(如LCD或OLED)的屏幕刷新率的倒数。其中,电子设备的屏幕刷新率与该电子设备的帧率可以相同。电子设备的高帧率就是高屏幕刷新率。
如图10中(a)所示,响应于垂直同步信号1,电子设备处理图层数据获取对应的控件树中的渲染对象,以及渲染对象对应的控件树层级,之后确定渲染对象的渲染层级。最后调用渲染线程进行渲染对象的渲染。在渲染阶段,渲染a(即渲染线程a)和渲染b(即渲染线程b)并行渲染,之后再执行渲染c(即渲染线程c)。如此,在垂直同步信号的信号周期内完成渲染任务,保证后续步骤的执行。相对于如图10中(b)所示,渲染a、渲染b和渲染c均需要按照顺序依次串行渲染,导致在垂直同步信号的信号周期内未能完成渲染c的渲染任务,电子设备检测到垂直同步信号2后,也无渲染完成的图像帧可以合成,进而响应于垂直同步信号3无法刷新显示该图像帧,LCD的显示画面则无法更新,则会出现丢帧的现象。这样,会影响显示屏显示图像的连贯性和流畅性,从而影响用户的视觉体验。
需要注意的是,在不同的系统或者架构中,垂直同步信号的名称可能不同。例如,在一些系统或者架构中,上述用于触发处理一个或多个图层数据的信号(即垂直同步信号1)的名称可能不是垂直同步信号。但是,无论信号的名称是什么,只要是具备类似功能的同步信号,符合本申请实施例提供的方法的技术思路,都应涵盖在本申请的保护范围之内。
由图10中(a)可知,通过本申请实施例提供的方法,可以避免显示图像出现丢帧现象。也就是说,通过本申请实施例的方法可以降低电子设备显示图像时出现丢帧的可能性,可以保证显示屏显示图像的流畅性,从而提升用户的视觉体验。
以上结合图5-图10详细说明了本申请实施例提供的渲染方法。以下结合图11和图12详细说明本申请实施例提供的电子设备。
在一种可能的设计中,图11为本申请实施例提供的一种电子设备的结构示意图。如图11所示,电子设备1100包括:获取单元1101,划分单元1102以及渲染单元1103。电子设备1100可用于实现上述方法实施例中涉及的电子设备的功能。其中,电子设备1100可以为电子设备本身,也可以为电子设备中的功能单元或者芯片,或者与电子设备匹配使用的装置。
可选的,获取单元1101,用于支持电子设备1100执行图5中的步骤S501。
可选的,划分单元1102,用于支持电子设备1100执行图5中的步骤S502。
可选的,渲染单元1103,用于支持电子设备1100执行图5中的步骤S503。
可选的,图11所示的电子设备1100还可以包括发送单元(图11中未示出),该发送单元用于向其他通信装置发送信号。
可选地,图11所示的电子设备1100还可以包括存储单元(图11中未示出),该存储单元存储有程序或指令。当获取单元1101,划分单元1102以及渲染单元1103执行该程序或指令时,使得图11所示的电子设备1100可以执行图5所示的渲染方法。
图11所示的电子设备1100的技术效果可以参考上述方法实施例中所述的技术效果,此处不再赘述。
其中,获取单元和发送单元可以统称为收发单元,可以由收发器或收发器相关电路组件实现,可以为收发器或收发模块。该电子设备1100中的各个单元的操作和/或功能分别为了实现上述方法实施例所述的渲染方法的相应流程,为了简洁,在此不再赘述。
在采用集成的单元的情况下,图12示出了上述实施例中所涉及的电子设备的另一种可能的组成示意图。如图12所示,该电子设备1200可以包括:处理模块1201。
处理模块1201用于执行上述图11中所示的获取单元1101,划分单元1102以及渲染单元1103所执行的步骤,处理模块1201的操作和/或功能为了实现上述方法实施例所述的渲染方法的相应流程,为了简洁,在此不再赘述。
电子设备1200还可以包括存储模块,用于存储电子设备的程序代码和数据。存储模块可以是存储器。
其中,处理模块1201可以是处理器或控制器。其可以实现或执行结合本申请实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
本申请实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述任一方法实施例中的方法。
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请实施例并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
示例性的,该芯片系统可以是现场可编程门阵列(field programmable gatearray,FPGA),可以是专用集成芯片(application specific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processorunit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。
应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请的实施例还提供了一种存储介质,用于存储为上述通信装置所用的指令。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在服务器上运行时,使得服务器执行上述相关方法步骤实现上述实施例中的渲染方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的渲染方法。
另外,本申请实施例还提供一种装置,该装置具体可以是组件或模块,该装置可包括相连的一个或多个处理器和存储器;其中,存储器用于存储计算机程序,一个或多个计算机程序包括指令。当该指令被一个或多个处理器执行时,以使装置执行上述各方法实施例中的渲染方法。
其中,本申请实施例提供的装置、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuit,ASIC)中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (11)

1.一种渲染方法,其特征在于,应用于电子设备,所述方法包括:
所述电子设备,
获取待显示的渲染对象,所述渲染对象包括控件和布局,
获取包括所述待显示的渲染对象的控件树,
从控件树根节点开始遍历控件树:
将不同的控件树层级设为不同的渲染层级,
将同一控件树层级的相交的渲染对象设为不同的渲染层级;
并行渲染同一渲染层级的渲染对象,
串行渲染不同渲染层级的渲染对象。
2.根据权利要求1所述的方法,其特征在于,所述并行渲染同一渲染层级的渲染对象;包括:
并行渲染所述同一渲染层级的渲染对象中同一指令组中的构成元素数据,串行渲染所述同一渲染层级的渲染对象中不同指令组中的构成元素数据。
3.根据权利要求2所述的方法,其特征在于,所述构成元素数据包括如下一项或几项内容:前景层构成元素数据、内容层构成元素数据、背景层构成元素数据。
4.根据权利要求2或3所述的方法,其特征在于,同一指令组中的构成元素数据的数据类别相同,不同指令组中的构成元素数据的数据类别不同;或者,同一指令组中的构成元素数据在对应的渲染对象中对应的指令执行顺序相同,不同指令组中的构成元素数据在对应的渲染对象中对应的指令执行顺序不同。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述将同一控件树层级的相交的渲染对象设为不同的渲染层级,包括:
获取同一控件树层级的渲染对象对应的最小矩形区域;
将同一控件树层级中最小矩形区域相交的渲染对象设为不同的渲染层级。
6.根据权利要求5所述的方法,其特征在于,所述渲染对象对应的最小矩形局域为覆盖所述渲染对象且面积最小的矩形区域。
7.根据权利要求1-6任一项所述的方法,其特征在于,在并行渲染同一渲染层级的渲染对象之前,所述方法还包括:
获取资源情况;
根据所述资源情况,确定允许并行调用的渲染线程的最大数量。
8.根据权利要求7所述的方法,其特征在于,所述并行渲染同一渲染层级的渲染对象,包括:
若并行渲染所述同一渲染层级的渲染对象所需的渲染线程的第一数量小于或等于所述最大数量,则调用所述第一数量的渲染线程并行渲染所述同一渲染层级的渲染对象;
若所述第一数量大于所述最大数量,则调用所述最大数量的渲染线程并行渲染所述同一渲染层级的渲染对象。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,使得所述电子设备执行如权利要求1-8中任一项所述的渲染方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-8中任意一项所述的方法。
11.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-8中任意一项所述的方法。
CN202110875756.0A 2021-07-30 2021-07-30 渲染方法及电子设备 Pending CN115686700A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110875756.0A CN115686700A (zh) 2021-07-30 2021-07-30 渲染方法及电子设备
PCT/CN2022/106621 WO2023005751A1 (zh) 2021-07-30 2022-07-20 渲染方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110875756.0A CN115686700A (zh) 2021-07-30 2021-07-30 渲染方法及电子设备

Publications (1)

Publication Number Publication Date
CN115686700A true CN115686700A (zh) 2023-02-03

Family

ID=85059609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110875756.0A Pending CN115686700A (zh) 2021-07-30 2021-07-30 渲染方法及电子设备

Country Status (2)

Country Link
CN (1) CN115686700A (zh)
WO (1) WO2023005751A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117473188A (zh) * 2023-12-28 2024-01-30 中移(苏州)软件技术有限公司 一种显示数据的渲染方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2605129B1 (en) * 2011-12-16 2019-03-13 BlackBerry Limited Method of rendering a user interface
CN110618847A (zh) * 2018-06-20 2019-12-27 华为技术有限公司 一种用户界面的显示方法和终端设备
CN111611032B (zh) * 2019-02-25 2023-05-26 阿里巴巴集团控股有限公司 一种用户界面绘制层级、过度绘制的检测方法及装置
CN110955850A (zh) * 2019-11-18 2020-04-03 国云科技股份有限公司 一种组件化树形控件的处理方法
CN112650899B (zh) * 2020-12-30 2023-10-03 中国平安人寿保险股份有限公司 数据可视化渲染方法、装置、计算机设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117473188A (zh) * 2023-12-28 2024-01-30 中移(苏州)软件技术有限公司 一种显示数据的渲染方法、装置、电子设备及存储介质
CN117473188B (zh) * 2023-12-28 2024-04-09 中移(苏州)软件技术有限公司 一种显示数据的渲染方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2023005751A1 (zh) 2023-02-02

Similar Documents

Publication Publication Date Title
US20230077467A1 (en) Card Display Method, Electronic Device, and Computer Readable Storage Medium
US11762529B2 (en) Method for displaying application icon and electronic device
CN115486087A (zh) 多窗口投屏场景下的应用界面显示方法及电子设备
CN112241932A (zh) 一种图片处理方法及装置
US20240137438A1 (en) Information display method and electronic device
WO2023005751A1 (zh) 渲染方法及电子设备
CN115640083A (zh) 一种可提升动效性能的屏幕刷新方法及设备
CN113038141A (zh) 视频帧处理方法及电子设备
WO2023103800A1 (zh) 绘制方法及电子设备
CN116095413B (zh) 视频处理方法及电子设备
CN114449171A (zh) 控制摄像头的方法、终端设备、存储介质及程序产品
CN114764358A (zh) 一种界面显示方法及电子设备
CN116672707B (zh) 生成游戏预测帧的方法和电子设备
CN116688494B (zh) 生成游戏预测帧的方法和电子设备
CN116700655B (zh) 一种界面显示方法及电子设备
US20240095990A1 (en) Display method and electronic device
EP4296845A1 (en) Screen projection method and system, and related apparatus
WO2024037346A1 (zh) 页面管理方法及电子设备
US20240184504A1 (en) Screen projection method and system, and related apparatus
WO2023020339A1 (zh) 界面显示方法及电子设备
WO2023045774A1 (zh) 显示方法及电子设备
WO2024066976A1 (zh) 控件显示方法及电子设备
WO2023066177A1 (zh) 动画效果显示方法及电子设备
CN116737291A (zh) 桌面应用的处理方法和电子设备
CN117742849A (zh) 基于应用分身的界面显示方法及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination