CN110597512B - 显示用户界面的方法及电子设备 - Google Patents
显示用户界面的方法及电子设备 Download PDFInfo
- Publication number
- CN110597512B CN110597512B CN201910787833.XA CN201910787833A CN110597512B CN 110597512 B CN110597512 B CN 110597512B CN 201910787833 A CN201910787833 A CN 201910787833A CN 110597512 B CN110597512 B CN 110597512B
- Authority
- CN
- China
- Prior art keywords
- user interface
- electronic device
- view object
- interface
- view
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种显示用户界面的方法,包括:电子设备接收到用于显示用户界面的用户操作。然后,电子设备获取用户界面对应的XML文件。接着,电子设备对XML文件进行解析得到View对象、View对象的属性以及View对象之间的父子关系。然后,电子设备根据解析出的结果绘制得到待显示用户界面。具体地,电子设备利用UI线程对三方View对象进行绘制处理,利用非UI线程对系统View对象进行绘制处理。最后,电子设备将待显示用户界面渲染成显示屏上用户可见的用户界面。这样,电子设备可以减少界面绘制的时间。从而,电子设备可以更快地为用户呈现用户界面,提升用户体验。
Description
技术领域
本发明涉及电子技术领域,特别涉及应用在电子设备的显示用户界面的方法及电子设备。
背景技术
目前,电子设备可以提供和用户实现交互的用户界面(user interface,UI)。用户界面中包含图标、窗口、控件等界面元素,其中控件可以包括图片、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。界面中的界面元素的属性和内容是通过标签或者节点来定义的,比如XML(Extensible Markup Language,可扩展标记语言)通过节点描述的View对象来规定界面所包含的界面元素。XML文件中一个节点描述了一个view对象。XML文件解析之后得到View对象。电子设备通过界面绘制过程将View对象绘制为待显示界面元素。最后,待显示界面元素经过渲染之后为呈现在用户界面中的界面元素。
界面绘制的速度影响到电子设备为用户呈现用户界面的效率,为了提升用户体验,如何提高界面绘制的速度是业界研究的方向。
发明内容
本申请实施例提供了一种显示用户界面的方法,按照该方法显示用户界面可以节约电子设备为用户呈现用户界面的时间,从而可以提升用户体验。
第一方面,提供一种用于电子设备显示用户界面的方法,该方法可包括:电子设备接收到用于显示第一用户界面的用户操作;响应于所述用户操作,所述电子设备解析所述第一用户界面对应的布局文件,获取View对象、所述View对象的属性;所述布局文件包括多个节点,每个节点用于描述一个所述View对象;所述View对象规定了所述第一用户界面中的界面元素;所述电子设备根据所述View对象的属性,并行绘制所述View对象中的系统View对象,逐一绘制所述View对象中的三方View对象,生成和所述View对象对应的待显示界面元素;其中,由Android标准提供的View对象为所述系统View对象,非Android标准提供的View对象为所述三方View对象;所述待显示界面元素是具有几何形状和内容的文字或图片;所述电子设备将所述待显示界面元素嵌套为待显示用户界面;所述电子设备将所述待显示用户界面渲染成所述第一用户界面;所述电子设备在显示屏上显示所述第一用户界面。电子设备在绘制阶段可以并行绘制多个系统View对象,从而可以提高绘制View对象的效率。这样,电子设备可以更快地向用户呈现用户界面,从而可以提升用户体验。
结合第一方面,在一种可能的实现方式中,所述电子设备并行绘制所述View对象中的系统View对象,逐一绘制所述View对象中的三方View对象,生成和所述View对象对应的待显示界面元素包括:所述电子设备调用多个非UI线程并行绘制所述系统View对象,生成和所述系统View对象对应的所述待显示界面元素;每个所述非UI线程一次绘制一个所述系统View对象;所述电子设备调用UI线程逐一绘制所述三方View对象,生成和所述三方View对象对应的所述待显示界面元素;所述UI线程一次绘制一个三方View对象;其中,所述电子设备为所述第一用户界面对应的应用程序创建的一个进程中包含一个或多个线程,在所述一个或多个线程中,唯一的用于显示用户界面以及实现用户界面交互功能的主线程为所述UI线程,所述UI线程以外的其他线程为所述非UI线程。这样,电子设备在利用多个非UI线程绘制系统View对象,可以提高绘制的效率。这样,电子设备可以更快地完成View对象的绘制。
结合第一方面,在一种可能的实现方式中,所述非UI线程的数量由所述电子设备的CPU使用率确定;所述CPU使用率越高,所述非UI线程数量越少。这样,可以避免在CPU使用率高的时候,调用了过多的非UI线程绘制系统View对象而使得电子设备卡顿或者系统崩溃。
结合第一方面,在一种可能的实现方式中,所述非UI线程的数量由所述View对象中包含的系统View对象的数量确定;所述系统View对象的数量越多,所述非UI线程数量越多。电子设备根据View对象的数量来调整调用的非UI线程数量。这样,电子设备可以更快地、更有效率地完成View对象的绘制。
结合第一方面,在一种可能的实现方式中,所述电子设备接收到用于显示第一用户界面的用户操作之后,所述方法还包括:所述电子设备解析所述第一用户界面对应的布局文件,获取所述View对象之间的父子关系;所述电子设备将所述待显示界面元素嵌套为待显示用户界面,具体包括:所述电子设备根据所述View对象之间的父子关系,将子View对象对应的待显示界面元素放置到到父View对象对应的待显示界面元素中;所述子View对象和所述父View对象具有父子关系。电子设备获取到View对象之间的父子关系,然后利用View对象之间的父子关系来嵌套待显示界面元素。这样,可以避免嵌套得到待显示用户界面出现嵌套错误。这样,电子设备也可以更准确地对待显示界面元素进行嵌套。
结合第一方面,在一种可能的实现方式中,所述电子设备解析所述第一用户界面对应的布局文件,获取所述View对象之间的父子关系之后,所述方法还包括:所述电子设备将所述View对象、所述View对象的属性以及所述View对象的父子关系保存为树形结构图形;所述树形结构图形中的一个节点表征一个所述View对象;所述树形结构图形中的节点属性对应所述View对象的属性;所述树形结构图形中节点之间的上下级关系表征所述View对象之间的父子关系。这样,电子设备可以更容易获取到View对象之间的父子关系,以及可以更方便地查找到View对象。
结合第一方面,在一种可能的实现方式中,所述树形结构图形包含多个子树,所述子树的数量越多,所述非UI线程数量越多;所述子树描述了一部分具有父子关系的View对象。电子设备可以将树形结构图形分为多个子树去进行View对象的绘制,然后根据子树的数量来调整非UI线程的数量。这样,电子设备可以更快地完成对View对象的绘制。
结合第一方面,在一种可能的实现方式中,所述电子设备解析所述第一用户界面对应的布局文件之后,所述方法还包括:所述电子设备记录解析所述布局文件时,所述View对象的解析顺序;所述电子设备将所述待显示界面元素嵌套为待显示用户界面,具体包括:所述电子设备按照所述View对象的解析顺序,依次嵌套所述View对象对应的待显示界面元素,得到待显示用户界面。这样,当待显示界面元素对应的View对象有多个子View对象时,电子设备可以按照每个子View对象的解析顺序依次将子View对象对应的待显示界面元素嵌套到父View对象对应的待显示界面元素中。
结合第一方面,在一种可能的实现方式中,所述电子设备记录解析所述布局文件时,所述View对象的解析顺序包括:所述电子设备创建中间对象;所述中间对象是一种数据结构;所述电子设备使用所述中间对象记录所述View对象的解析顺序以及所述View对象之间的父子关系。这样,电子设备不需要去树形结构图形中去查找View对象的解析顺序,直接通过查找中间对象就可以获取View对象的解析顺序。
结合第一方面,在一种可能的实现方式中,所述用户操作包括:用于启动应用程序并显示所述应用程序提供的主界面的用户操作、用于刷新用户界面的操作、用于跳转用户界面的操作。
结合第一方面,在一种可能的实现方式中,所述View对象的属性包括:所述View对象的类型、颜色、ID、内容、所述View对象之间的相对位置、相对宽度和相对高度。
结合第一方面,在一种可能的实现方式中,所述电子设备对布局文件进行解析处理包括:所述电子设备创建解析器指针;所述解析器指针指向所述布局文件中正在解析的节点;当所述电子设备解析完所述布局文件中的一个节点时,所述解析器指针的移动距离增加第一预设值;所述第一预设值为正整数;电子设备记录所述解析器指针的移动距离;所述移动距离用来指示所述电子设备解析到第几个节点。电子设备可以通过解析器指针的移动距离获知当前解析到第几个节点,以及这些节点是第几个开始解析的。这样,电子设备通过解析器指针的移动距离可以获取到View对象的解析顺序。
结合第一方面,在一种可能的实现方式中,所述电子设备解析所述第一用户界面对应的布局文件之后,所述方法还包括:所述电子设备根据所述显示屏的分辨率设置所述第一用户界面中的界面元素在显示屏中的位置和宽度、高度;所述电子设备将所述待显示用户界面渲染成所述第一用户界面,具体包括:所述电子设备根据所述布局属性将所述待显示用户界面渲染成所述第一用户界面,渲染得到后的所述第一用户界面中的界面元素符合所述布局属性。电子设备根据显示屏的大小来设置待显示界面元素的大小。这样,电子设备渲染出的第一用户界面可以更适应显示屏。
结合第一方面,在一种可能的实现方式中,所述电子设备解析所述第一用户界面对应的布局文件之后,所述方法还包括:所述电子设备根据所述View对象所属类型的名称判断所述View对象是否为系统View对象;若所述View对象所属类型的名称由所述电子设备操作系统的名称组成,则所述View对象为系统View对象;若所述View对象类型名称由应用程序的名称组成,则所述View对象为三方View对象。这样,电子设备可以判断出View对象是否为系统View对象。
结合第一方面,在一种可能的实现方式中,电子设备电子设备判断正在嵌套的待显示界面元素是否有子待显示界面元素。若有,则电子设备将子待显示界面元素嵌套到父待显示界面元素中。这样,可以避免在嵌套时当前正在嵌套到父待显示界面元素的待显示界面元素有遗漏的子待显示界面元素没有嵌套。
在一种可能的实现方式中,电子设备可以根据子树的嵌套复杂度来决定非UI线程的数量。子树嵌套复杂度越高,电子设备可以选择利用越多的非UI线程来绘制系统View对象。
第二方面,提供一种电子设备,包括:通信接口、存储器和处理器;所述通信接口、所述存储器与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述电子设备执行如第一方面中任一种可能的实现方式。
第三方面,提供提供一种计算机可读存储介质,包括指令,其特征在于,当上述指令在电子设备上运行时,以使得电子涉笔执行如第一方面中任一种可能的实现方式。
第四方面,提供一种计算机产品当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面中任一种可能的实现方式。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例中所需要使用的附图进行说明。
图1为本申请实施例提供的电子设备的软件结构的示意图;
图2为本申请实施例提供的电子设备上的用于应用程序菜单的用户界面的示意图;
图3为本申请实施例提供的XML文件内容示意图;
图4为本申请实施例提供的电子设备解析XML文件后得到的结果示意图;
图5为本申请实施例提供的电子设备的待显示用户界面示意图;
图6为本申请实施例提供的View对象之间的父子关系示意图;
图7为现在技术提供的电子设备进行界面绘制的流程示意图;
图8A为本申请实施例提供的用户通过滑动操作刷新用户界面示意图;
图8B为本申请实施例提供的刷新后用户界面示意图;
图9A为本申请实施例提供的用户通过点触操作刷新用户界面示意图;
图9B为本申请实施例提供的另一刷新后用户界面示意图;
图10为本申请实施例提供的显示用户界面的方法流程示意图;
图11为本申请实施例提供的电子设备的结构的示意性图;
图12为本申请提供的电子设备的软硬件实现本申请的显示用户界面的示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
以下介绍了电子设备、用于这样的电子设备的用户界面、和用于使用这样的电子设备的实施例。在一些实施例中,电子设备可以是还包含其它功能诸如个人数字助理和/或音乐播放器功能的便携式电子设备,诸如手机、平板电脑、具备无线通讯功能的可穿戴电子设备(如智能手表)等。便携式电子设备的示例性实施例包括但不限于搭载iOS、Android、Microsoft或者其它操作系统的便携式电子设备。上述便携式电子设备也可以是其它便携式电子设备,诸如具有触敏表面或触控面板的膝上型计算机(Laptop)等。还应当理解的是,在其他一些实施例中,上述电子设备也可以不是便携式电子设备,而是具有触敏表面或触控面板的台式计算机。
下面首先介绍本申请涉及的电子设备的软体结构。电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
图1是本发明实施例的电子设备的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图1所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用)。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图1所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器、视图管理器、绘图表面管理器等。关于视图管理器、绘图表面管理器的具体描述可参考图12的具体描述。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
视图管理器用于将获取到的应用程序的XML文件经过布局、绘制成用户界面的界面元素。
绘图表面管理器用于将界面元素绘制到待显示的用户界面中。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话界面形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明电子设备100软件以及硬件的工作流程。
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸触摸操作,该触摸操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过3D摄像模组193捕获静态图像或视频。
本申请的说明书和权利要求书及附图中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。应用程序的用户界面是通过java、可扩展标记语言(extensible markup language,XML)等特定计算机语言编写的源代码,界面源代码在终端设备上经过解析,渲染,最终呈现为用户界面中的界面元素。用户界面中包含图标、窗口、控件等界面元素。其中,控件(control)也称为部件(widget),典型的控件有工具栏(toolbar)、菜单栏(menu bar)、文本框(text box)、按钮(button)、滚动条(scrollbar)、图片和文本。
用户界面常用的表现形式是图形用户界面(graphic user interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图片、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
下面介绍电子设备上的用于展示应用程序菜单的示例性用户界面。
图2示例性示出了电子设备上的用于应用程序菜单的示例性用户界面200。如图2所示,用户界面200可包括:状态栏201,具有常用应用程序图标的托盘213,导航栏214,以及其他应用程序图标。其中:
状态栏201可包括:移动通信信号(又可称为蜂窝信号)的一个或多个信号强度指示符201-1、移动通信信号的运营商的指示符201-2、时间指示符201-3、电池状态指示符201-4等。
具有常用应用程序图标的托盘213可展示:电话的图标213-1、短消息的图标213-2、联系人的图标213-3等。
其中,电话的图标213-1可以由图片213-1-1和文字213-1-2组成。短消息的图标213-2可以由图片213-2-1和文字213-2-2组成。联系人的图标213-3可以由图片213-3-1和文字213-3-2组成。
导航栏214可包括:返回按键214-1、主界面(Home screen)按键214-2、呼出任务历史按键214-3等系统导航键。当检测到用户点击返回按键214-1时,电子设备100可显示当前页面的上一个页面。当检测到用户点击主界面按键214-2时,电子设备100可显示主界面。当检测到用户点击呼出任务历史按键214-3时,电子设备100可显示用户最近打开的任务。各导航键的命名还可以为其他,本申请对此不做限制。不限于虚拟按键,导航栏214中的各导航键也可以实现为物理按键。
其他应用程序图标可例如:微信(Wechat)的图标202、QQ的图标203、推特(Twitter)的图标204、脸书(Facebook)的图标205、邮箱的图标206、云共享的图标207、备忘录的图标208、设置的图标209、图库的图标210、相机的图标211。用户界面200还可包括页面指示符212。其他应用程序图标可分布在多个页面,页面指示符212可用于指示用户当前浏览的是哪一个页面中的应用程序。用户可以左右滑动其他应用程序图标的区域,来浏览其他页面中的应用程序图标。
其中,微信(Wechat)的图标202可以由图片202-1和文字202-2组成。QQ的图标203可以由图片203-1和文字203-2组成。推特(Twitter)的图标204可以由图片204-1和文字204-2组成。脸书(Facebook)的图标205可以由图片205-1和文字205-2组成。邮箱的图标206可以由图片206-1和文字206-2组成。云共享的图标207可以由图片207-1和文字207-2组成。备忘录的图标208可以由图片208-1和文字208-2组成。设置的图标209可以由图片209-1和文字209-2组成。图库的图标210可以由图片210-1和文字210-2组成。相机的图标211可以由图片211-1和文字211-2组成。
在一些实施例中,图2示例性所示的用户界面200可以为主界面(Home screen)。
可以理解的是,图2仅仅示例性示出了电子设备上的用户界面,不应构成对本申请实施例的限定。
下面详细说明电子设备显示用户界面的过程。以下实施例以电子设备显示图2所示的用户界面200为例,说明电子设备呈现用户界面的过程。可理解的,经过解析用户界面对应的布局文件的过程、界面绘制的过程、渲染的过程,之后,电子设备才能在显示屏上显示用户可见的用户界面200。布局文件可以是利用JAVA、C#、XML等程序语言将用户界面中的界面元素编写成程序代码后形成的文件。本申请中,布局文件又可以称为XML文件。下面分别介绍解析XML文件的过程、界面绘制的过程以及渲染过程。
1.解析XML文件的过程
具体的,每个用户界面可以对应有一个或多个XML文件。XML文件为布局文件,其由多行程序代码组成,该多行程序代码组成了多个节点。在其他一些实施例中,节点也可以被称为标签或元素,本申请对此不做限制。
XML文件中的节点可以分为一个根节点和多个普通节点。XML文件中的每一个节点对应描述一个View对象。在XML文件中,如果一个节点有上一级的节点,则该节点的上一级节点为该节点的父节点。该节点为上一级节点的子节点。
View对象用来规定用户界面中所包含的界面元素。View对象绘制后是待显示界面元素。待显示界面元素渲染后为呈现在用户界面的界面元素。在本申请实施例中,可以将一个view对象经过处理后呈现在用户界面中的界面元素,称为该view对象对应的界面元素。
View对象具有一些属性,包括类型、颜色、内容、ID以及该View对象的位置、宽度、和高度等等。若View对象具有父View对象,View对象的位置是指在其父View对象中的位置。电子设备通过View对象的类型、颜色、内容等属性来确定界面元素的类型(文本、图像、控件、按钮)、颜色、内容等等。
可理解的,View对象的类型可以有文本视图对象(textview)、图片视图对象(imgview)、视频视图对象(videoview)等等。类型为textview的View对象对应的用户界面中的界面元素为文本。类型为imgview的View对象对应的用户界面中的界面元素为图片。类型为videoview的View对象对应的用户界面中的界面元素为视频。View对象的颜色可以有黄色、红色、蓝色等等颜色。可理解的,当View对象的颜色为红色时,该View对象对应的界面元素的颜色也是黄色。View对象的内容可以是文字“123”、图像“一个圆形”等等。当View对象的内容是文字“123”,该View对象对应的界面元素的内容也是文字“123”。
在本申请中,XML文件中父节点对应的View对象可以称为子节点对应的View对象的父View对象。XML文件中子节点对应的View对象可以称为父节点对应的View对象的子View对象。在本申请中,一个View对象为另一个View对象的父View对象或子View对象可以称为这两个View对象之间的父子关系。在一个用户界面中,子View对象对应的界面元素放置在父View对象对应的界面元素中。
电子设备对用户界面对应的XML文件进行解析后,可以获知每个节点对应的View对象,以及,各个View对象的属性(类型、颜色、内容以及该View对象的位置、宽度、和高度等等)、各个view对象之间的父子关系等。
参考图3,图3示出了一种可能的一个XML文件的内容示意图。可理解的,图3并非一个真正的XML文件,而是为了便于理解,对该XML文件所描述的信息给出的一个示意图。
如图3所示,该XML文件中包含:根节点A301、节点B302、节点C303、节点D304。根节点A301描述了名称为A的View对象以及View对象A的属性。View对象A的属性包括类型、颜色、内容、ID、View对象A的位置、宽度、高度等等。节点B302描述了名称为B的View对象以及该View对象B的属性。View对象B的属性包括类型、颜色、内容、ID、宽度、高度,以及在父View对象A中的位置等等。节点C303描述了名称为C的View对象以及View对象C的属性。View对象C的属性包括类型、颜色、内容、ID、宽度、高度,以及在父View对象A中的位置等等。节点D304描述了名称为D的View对象以及View对象D的属性。View对象D的属性包括类型、颜色、内容、ID、宽度、高度,以及在父View对象B中的位置等等。
图3中的XML文件的根节点A301为节点B302和节点C303的父节点。对应地,节点B302和节点C303为根节点A301的子节点。节点B302为节点D304的父节点。对应地,节点D304为节点B302的子节点。
参考图4,图4示例性示出了电子设备解析XML文件后得到的结果示意图。该XML文件为图2示出的内容示意图所对应的XML文件。图3所示的结果示意图示出了该XML文件中各个节点对应的view对象,以及,各个view对象的属性(类型、颜色、内容、宽度、高度、位置等等)。
如图4所示,电子设备解析XML文件后得到的结果可以包含:View对象A、View对象B、View对象C、View对象D,以及,各个View对象的属性和View对象之间的父子关系。View对象A为View对象B和View对象C的父View对象。对应地,View对象B和View对象C是View对象A的子View对象。View对象B为View对象D的父View对象。对应地,View对象D是View对象B的子View对象。
在本申请中,XML文件解析出的多个具有父子关系的View对像可以组成View对象树。View对象树包含着多个对象以及多个对象之间的父子关系。举例来说,如图4所示,具有父子关系的View对象A、View对象B、View对象C、View对象D可以组成View对象树。View对象树包含了View对象A、View对象B、View对象C、View对象D这四个View对象以及着四个View对象之间的父子关系。电子设备可以用View对象树的形式来保存电子设备从XML文件中解析出的每个节点对应的View对象,以及,各个View对象的属性(类型、颜色、内容以及该View对象的位置、宽度、和高度等等)、各个view对象之间的父子关系等。
这里,View对象树是可以是一种文档对象模型(Document Object Model,DOM)。DOM是W3C制定的标准接口规范,是一种处理HTML和XML文件的标准API。DOM提供了对整个XML文档的访问模型。DOM将XML文档作为一个树形结构,树的每个节点表示了一个XML标签或标签内的文本项。电子设备将XML文件转化为View对象树的过程可以称之为电子设备对XML文件的解析过程。电子设备对XML文件进行解析后得到View对象树。
用户界面的布局文件(如XML文件)是由开发人员根据预先设计的用户界面得到的。开发人员可以选择由Android系统提供的View对象或者自己开发的View对象来规定设计的用户界面中的界面元素。最后,开发人员使用程序语言将用户界面中所有界面元素对应的View对象写成程序代码形成布局文件。这样,View对象按照提供方可以区分为系统View对象和三方View对象。系统View对象由Android系统提供,可以供每一个开发人员在设计用户界面时使用。三方View对象由应用程序开发方提供。一般地,电子设备可以从View对象的类型名称中识别出属于系统View对象还是三方View对象。例如,系统View对象的类型名称可以是“android.widget.Textview”,系统View对象类型名称的前缀为“android”。三方View对象的类型名称可以是“com.sina.weibo.feed.view.MBlogListItemButtonsView”,三方View对象类型名称的前缀是应用程序的名称,如“com.sina.weibo”。
一般情况下,应用程序运行时电子设备为该应用程序创建一个进程,用来执行这个应用程序中的所有任务(例如访问网络、显示用户界面、刷新用户界面等等)。应用程序中的多个任务会分配到进程中的线程具体执行。一个进程中可以包括一个UI线程和多个非UI线程。UI进程用于控制用户界面显示、刷新和界面元素实现交互。非UI进程用于执行网络访问、发送消息等等。其中,UI线程也可以被称为主线程。三方View对象的绘制过程需要依赖UI线程中提供的用于用户界面显示的数据。而系统View对象的绘制处理过程不依赖UI线程中提供的用于用户界面显示的数据。电子设备需要在UI线程中完成三方View对象的绘制过程。电子设备可以在UI线程中完成系统View对象的绘制过程,也可以在非UI线程中完成系统View对象的绘制过程。在现有技术中,电子设备调用UI线程对XML文件解析出的所有View对象进行绘制处理。具体地,电子设备在UI线程对第一个View对象进行绘制处理。然后,电子设备对第二个View对象进行绘制处理。依次地,电子设备完成最后一个View对象的绘制处理。
2.界面绘制
界面绘制可以是电子设备将从XML文件解析出的View对象绘制成待显示界面元素。界面绘制的输入可包括上述第1个过程中的解析结果,例如View对象、View对象的属性以及View对象的父子关系,输出是待显示用户界面。界面绘制过程可以包括两个步骤。第一步,电子设备将多个View对象在一个线程中绘制成多个待显示界面元素。第二步,电子设备将绘制得到的多个待显示界面元素按照父子关系嵌套成待显示用户界面。界面绘制过程完成后,电子设备可以得到一个由所有待显示界面元素组成的待显示用户界面。电子设备根据View对象绘制得到的待显示界面元素可以是具有几何形状的图形(具有颜色、内容、宽度和高度等属性)或者文字(具有颜色、内容、宽度和高度等属性)。该图形或者文字经过渲染之后为呈现在用户界面中的界面元素。待显示界面元素是电子设备内部的一种数据存储形式(例如数组),并不能被用户可见。
参考图5,图5示例性示出了待显示用户界面示意图,图5中的待显示用户界面30是根据图3所示的解析结果绘制得到。待显示用户界面由多个待显示界面元素按照父子关系嵌套之后组成的。具体地,电子设备将子待显示元素放置到父待显示界面元素中。这样,一层一层的嵌套组成待显示用户界面。待显示用户界面经过渲染之后为用户可见的用户界面。
如图5所示,待显示用户界面30包含待显示界面元素300、待显示界面元素301、待显示界面元素302、待显示界面元素303。待显示界面元素300由图4中的View对象A绘制得到。待显示界面元素301由图4中示出的View对象B绘制得到。待显示界面元素302由图4中示出的View对象C绘制得到。待显示界面元素由图3中示出的View对象D绘制得到。待显示界面元素303嵌套到待显示界面元素301中,待显示界面元素301和待显示界面元素302嵌套到待显示界面元素300中之后得到了待显示用户界面30。
在本申请中,嵌套可以是指电子设备将一个待显示界面元素放置到另一个待显示界面元素中。例如,图5所示的待显示界面元素303被放置到到待显示界面元素301中。
参考图6,其示出了一种可能的View对象父子关系示意图。电子设备可以根据图6示出的View对象父子关系示意图绘制出待显示用户界面。然后,待显示用户界面渲染之后得到图2示出的用户界面200。电子设备根据XML文件解析出来的View对象绘制的待显示界面元素也是按照View对象的层级关系一层一层嵌套的。待显示界面元素经过渲染之后得到的界面元素也是一层一层嵌套的。例如,图片213-2-1嵌套在短消息图标213-2中,短消息图标213-2嵌套在常用应用程序图标的托盘213中。
在本申请中,电子设备将父View对象绘制得到的待显示界面元素,可以称为父待显示界面元素。电子设备将子View对象绘制得到的待显示界面元素,可以称为子待显示界面元素。
3.渲染
在本申请中,渲染是指电子设备将待显示用户界面渲染成用户可见的用户界面。具体地,电子设备的CPU将绘制完成的待显示用户界面处理为多维图形,并将图形纹理化。然后电子设备调用GPU将图形光栅化。这里,GPU将图形转换为一系列像素点的过程称为光栅化。最后,电子设备将光栅化的图形投射到显示屏上。这样,就可以得到用户可以看到的用户界面。例如,图6中示出的View对象202-1经过绘制可以得到对应的待显示界面元素。待显示界面元素经过渲染后为呈现在图2示出的用户界面200中的微信图片202-1。
界面绘制的速度影响到电子设备为用户呈现用户界面的效率。在现有技术中,电子设备在界面绘制的过程中,一个一个的绘制电子设备从XML文件中解析出的View对象。具体地,电子设备在UI线程中对第一View对象进行绘制处理之后,再对第二个View对象进行绘制处理,直到对所有的View对象绘制处理完成。如图7示出的现在技术提供的电子设备进行界面绘制的流程示意图。电子设备首先对XML文件中根节点对应的View对象进行绘制得到待显示界面元素。然后,电子设备再按照XML文件中节点的解析顺序依次一个一个地在UI线程中对XML文件中节点对应的View对象进行绘制得到待显示界面元素。最后,电子设备将绘制得到的子待显示界面元素嵌套到对应的父待显示界面元素中。当用户界面对应的XML文件中包含较多的View对象时,电子设备对View对象进行绘制处理耗费较多时间。这样,电子设备显示用户界面时可能会丢帧、卡顿。进一步地,电子设备在显示用户界面时需要较多时间为用户呈现用户界面,用户体验差。可理解的,电子设备显示的用户界面可以是电子设备启动应用程序时打开的应用程序主界面,也可以是电子设备刷新用户界面后的用户界面,还可以是电子设备跳转用户界面后的用户界面。
针对现有技术中电子设备在界面绘制过程耗时较多的问题,本申请实施例提供了一种显示用户界面的方法。实施本申请实施例提供的方法,可以提升电子设备绘制界面的速度,从而快速地在显示屏上显示用户界面,避免出现出现丢帧、卡顿等问题,可以提升用户体验。
下面概述本申请提出的显示用户界面的方法。首先,电子设备接收到用于显示用户界面的用户操作。用于显示用户界面的用户操作可包括但不限于:用于启动应用程序并显示该应用程序主界面的用户操作、用于刷新用户界面的操作、用于跳转用户界面的操作。然后,电子设备获取用户界面对应的XML文件。接着,电子设备对XML文件进行解析得到View对象、View对象的属性以及View对象之间的父子关系。然后,电子设备根据解析出的结果绘制得到待显示用户界面。具体地,电子设备利用UI线程对三方View对象进行绘制处理,利用非UI线程对系统View对象进行绘制处理。最后,电子设备将待显示用户界面渲染成显示屏上用户可见的用户界面。电子设备可以同时绘制三方View对象和系统View对象,并且,可以同时绘制多个系统View对象。这样,电子设备可以减少界面绘制的时间。从而,电子设备可以更快地为用户呈现用户界面,提升用户体验。
下面先介绍本申请涉及到的概念:刷新用户界面、跳转用户界面
在本申请中,刷新用户界面可以是电子设备响应于用户操作更新用户界面中某一部分的内容。电子设备刷新后的用户界面和刷新前的用户界面中的内容不一样。如图8A示出的用户界面示意图所示,当用户打开如图8A所示的用户界面800时,用户可以在显示屏中向上滑动手指来更新用户界面中区域801的内容。区域801中的内容可以包括虚线框802所示的内容、虚线框803所示的内容、以及虚线框704所示的内容。电子设备刷新后的用户界面可以是图8B中示出的用户界面800。刷新后的用户界面700中虚线框801中的内容已经更新为虚线框805所示的内容、虚线框806所示的内容以及虚线框807所示的内容。用户操作不限于向上滑动手指,也可以是向下滑动手指来刷新用户界面,此处不做限定。刷新后的用户界面中更新后的内容也不限于图8B中示出的虚线框801中的内容。
在本申请中,跳转用户界面可以是用户点触用户界面中的某一个控件或者链接后,电子设备中显示的用户界面从用户点触时的用户界面变为另一个用户界面。如图9A示出的用户界面90A,当用户点触用户界面90A中的控件901,电子设备响应于用户的点触操作,电子设备显示的用户界面从如图9A中示出的用户界面90A跳转到如图9B中示出的用户界面90B。
下面结合图10展开描述本申请实施例提供的显示用户界面方法。如图10所示,本申请实施例提供的显示用户界面方法可以包括:
S1001-S1003:电子设备解析用户界面对应的XML文件
S1001、电子设备接收到用于显示用户界面的用户操作。
这里,用于显示用户界面的用户操作可包括但不限于:用于启动应用程序并显示该应用程序主界面的用户操作、用于刷新用户界面的操作、用于跳转用户界面的操作等等。
用于启动应用程序并显示该应用程序主界面的用户操作可以是用户对该应用程序的图标的点触操作。电子设备响应于用户对该应用程序的图标的点触操作,启动应用程序并显示该应用程序的主界面。举例来说,用户点触如图2所示的用户界面200中的应用程序图标(例如,微信图标202、QQ图标203、推特图标204等等)。电子设备响应于用户的点触操作启动应用程序并显示该应用程序的主界面。用于启动应用程序并显示该应用程序主界面的用户操作也可以用户在其他应用程序中点击该应用程序的链接。电子设备响应于用户在其他应用程序中点击该应用程序链接的操作,启动应用程序并显示该应用程序的主界面。例如,电子设备接收到用户在微信中点击淘宝链接的操作。电子设备响应于该操作启动淘宝应用并显示淘宝应用的主界面。此处对用于启动应用程序并显示该应用程序主界面的用户操作不做限定。
用于刷新用户界面的操作可以是向上滑动手指操作。电子设备接收用户的向上滑动手指操作,刷新用户界面。电子设备如何根据用户操作刷新用户界面可参考上文对刷新用户界面的介绍,此处不再赘述。用于刷新用户界面的操作也可以是向下滑动手指操作,也可以是用户点击用户界面中的刷新按钮等等,此处不做限定。
用于跳转用户界面的操作可以是用户点触用户界面中的某一个控件。电子设备接收到用户操作,跳转用户界面。电子设备如何根据用户操作跳转用户界面可参考上文对跳转用户界面的介绍,此处不再赘述。用于跳转用户界面的操作也可以用户点击用户界面中的某一个链接,此处不做限定。
在一种可能的实现方式中,电子设备接收用于显示用户界面的用户操作之后,电子设备获取用户界面对应的XML文件。电子设备可以从该用户界面对应的应用程序的安装包中获取的该用户界面对应的XML文件。电子设备还可以从该用户界面对应的应用程序开发方的服务器中获取的该用户界面对应的XML文件。
S1002、电子设备从用户界面对应的XML文件中解析出每个节点描述的View对象、View对象的属性以及View对象之间的父子关系。
这里步骤S1002还可以这样描述:响应于所述用户操作,电子设备解析所述第一用户界面对应的布局文件,获取View对象、View对象的属性;布局文件包括多个节点,每个节点用于描述一个所述View对象;View对象规定了所述第一用户界面中的界面元素;
在一种可能的实现方式中,电子设备可以获取到电子设备所启动的应用程序主界面对应的XML文件。该应用程序主界面对应的XML文件可以在该应用程序的资源包中。电子设备可以在安装该应用程序时就获取并存储了该应用程序的资源包。电子设备还可以获取到刷新用户界面后的用户界面对应的XML文件。电子设备还可以获取到跳转后的用户界面对应的XML文件。
下面举例示意XML文件,电子设备获取到的XML文件可以是由如下代码组成的文件:
<A ID=“0000”width=“800”height=“1000”>
<B ID=“0001”width=“400”height=“600”>
<D ID=“0002”width=“200”height=“300”>
</D>
</B>
<C ID=“0003”width=“400”height=“600”>
</C>
</A>
上述组成XML文件的代码示意中,XML文件中的每个节点在起始和结束位置有标签,在节点内部的节点就是子节点。<A.>表示A节点的起始位置,</A>表示A节点的结束位置。A节点内的B节点和C节点是A节点的子节点。B节点内的节点D是节点B的子节点。这样,电子设备解析这段代码组成的XML文件时,首先解析A节点对应的View对象,然后解析B节点对应的View对象,其次是D节点对应的View对象,最后是C节点对应的View对象。
电子设备可以从XML文件中解析出每个节点对应的View对象、View对象的类型、颜色、内容宽度、高度以及View对象之间的父子关系等等。电子设备对XML文件解析后可以得到View对象树。电子设备可以利用View对象树保存从XML文件中解析出每个节点对应的View对象、View对象的类型、颜色、内容宽度、高度以及View对象之间的父子关系等等。关于电子设备如何解析XML文件可参考上文中对图3示出的XML进行解析的过程,此处不再赘述。
在一种可能的实现方式中,电子设备将View对象、View对象的属性以及View对象的父子关系保存为树形结构图形;树形结构图形中的一个节点表征一个View对象;树形结构图形中的节点属性对应View对象的属性;树形结构图形中节点之间的上下级关系表征View对象之间的父子关系。这样,电子设备可以更容易获取到View对象之间的父子关系,以及可以更方便地查找到View对象。
在一种可能的实现方式中,电子设备创建解析器指针;解析器指针指向布局文件中正在解析的节点;当电子设备解析完布局文件中的一个节点时,解析器指针的移动距离增加第一预设值;第一预设值为正整数;电子设备记录解析器指针的移动距离;移动距离用来指示电子设备解析到第几个节点。电子设备可以通过解析器指针的移动距离获知当前解析到第几个节点,以及这些节点是第几个开始解析的。这样,电子设备通过解析器指针的移动距离可以获取到View对象的解析顺序。
在一种可能的实现方式中,电子设备利用解析器指针的移动距离确定节点在XML文件中的位置。解析器指针的移动距离可以记录XML文件解析到第几行,第几个节点。电子设备在解析每一节点时,电子设备可以由一个解析器指针指向当前节点。电子设备每解析一个节点,解析器指针的移动距离可以加1。XML文件中的一个节点可以由一行程序代码组成,也可以由多行程序代码组成。此处不作限定。这样,电子设备根据解析器指针距离知道解析到了XML文件中哪一个节点。电子设备不用从XML文件的第一行开始遍历查找解析到哪一个节点,可以减少XML文件的解析时间。
在一种可能的实现方式中,电子设备可以设置View对象的布局属性。View对象的布局属性是指View对象在显示屏中的位置、宽、高等等。可选地,电子设备可以根据显示屏的分辨率来设置View对象的布局属性。电子设备根据显示屏的分辨率来决定电子设备根据View对象绘制得到的待显示界面元素的宽度和高度,以及待显示界面元素渲染到显示屏的哪一个区域。显示屏分辨率越大的电子设备(即显示屏尺寸越大的电子设备),电子设备绘制的待显示界面元素的宽度越宽和高度越高。这样,待显示界面元素渲染之后呈现在用户界面中的界面元素的宽度越宽和高度越高。举例来说,对于图2用户界面中示出的微信图标202。用户在显示屏分辨率大的电子设备(例如,显示屏分辨率为1242x 2688,单位为像素,对应6.5英寸的显示屏)比显示屏分辨率小的电子设备(例如,显示屏分辨率为640x 1136,单位为像素,对应4英寸的显示屏)上看到的微信图标202要大一些(即微信图标202宽度更宽和高度更高)。可选地,电子设备可以从电子设备的系统配置文件中获取到显示屏的分辨率。
S1003、电子设备记录从XML文件中解析出每个View对象的解析信息。
电子设备记录解析XML文件中每个View对象的解析信息。该解析信息包括每个节点描述的View对象的父子关系以及该节点在XML文件中的位置。
在一种实现方式中,电子设备可以利用中间对象来保存解析信息。电子设备创建的中间对象可以是:
在一种可能的实现方式中,电子设备在记录完每个View对象的解析信息之后,根据记录的解析信息对解析出的多个具有父子关系的View对象组成的View对象树拆分为多个子树。如图6所示的一种可能的View对象父子关系示意图。电子设备可以将图6中的View父子关系拆分出子树21、子树22、子树23等等。子树是由一个View对象和这个View对象的子View对象组成的。其中,子树中可以有多层子View对象,即子View对象还可以是下一层View对象的父View对象。子树也可以只有一个View对象。电子设备可以根据View对象的嵌套复杂度决定拆分后的子树大小。举例来说,一个View对象下面还可以包含多层子View对象。一个View对象下面包含越多层的子View对象,那么这个View对象的嵌套复杂度越高。如图6中示出的View对象213,View对象213有子View对象213-1、子View对象213-2、子View对象213-3。子View对象213-1有子View对象213-1-1和子View对象213-1-2。图6中的View对象202有子View对象202-1和子View对象202-2。子View对象202-1和子View对象202-2都没有子View对象。这样,View对象213的嵌套复杂度比View对象202的嵌套复杂度高。嵌套复杂度是用来衡量一个View对象嵌套了多少层子View对象,一个View对象包含的子View对象层数越多,该View对象的嵌套复杂度就越高。
S1004-S1007:电子设备将解析出的View对象进行绘制处理得到待显示用户界面。
S1004、电子设备判断解析出的View对象是否是系统View对象;若否,则执行S1005;若是,则执行S1006。
电子设备可以根据View对象的类型判断出该View对象是系统View对象还是三方View对象。例如,当View对象的类型为“android.widget.Textview”,那么这个View对象就是系统View对象。当View对象的类型为“com.sina.weibo.feed.view.MBlogListItemButtonsView”,那么这个View对象就是三方View对象。如果一个View对象的类型的名称前缀是“android”,那么这个View对象是系统View对象。如果一个控件的类型的名称前缀是其他应用程序的名称,如“com.sina.weibo”,那么这个View对象是三方View对象。
S1005、电子设备判断出解析出的View对象不是系统View对象,则电子设备按顺序将View对象绘制成待显示界面元素。
当电子设备判断出解析出的View对象不是系统View对象时,电子设备按顺序将View对象绘制成待显示界面元素。电子设备对View对象进行绘制处理的顺序可以是该View对象对应的在XML文件中节点的解析顺序。举例来说,电子设备对XML文件进行解析,首先解析A节点对应的View对象A,然后解析B节点对应的View对象B,其次是D节点对应的View对象D,最后是C节点对应的View对象D。那么,电子设备在进行界面绘制时,按照XML文件的解析顺序首先对View对象A进行绘制处理,然后对View对象B进行绘制处理,再对View对象D进行绘制处理,最后对View对象C进行绘制处理。这里,电子设备是根据View对象的属性将View对象绘制成待显示界面元素。绘制得到的待显示界面元素的属性和View对象的属性一一对应。电子设备如何将View对象绘制成待显示界面元素可参考上文中描述的电子设备的界面绘制过程,此处不再赘述。
在一种可能的实现方式中,电子设备可以在UI线程中一个一个、依次将View对象绘制成待显示界面元素。可理解的,首先电子设备在UI线程对第一个三方View对象进行绘制处理。然后,电子设备对第二个三方View对象进行绘制处理。依次地,电子设备在UI线程完成对最后一个View对象的绘制处理。
S1006、电子设备判断出解析出的View对象是系统View,则电子设备同时对多个系统View对象进行绘制,得到多个待显示界面元素。
当电子设备判断出解析出的View对象是系统View对象时,电子设备可以同时绘制多个系统View对象,得到多个待显示界面元素。这里,电子设备是根据View对象的属性将View对象绘制成待显示界面元素。绘制得到的待显示界面元素的属性和View对象的属性一一对应。电子设备同时调用了多个线程对多个系统View对象进行绘制处理。电子设备在每个线程完成分配给该线程的第一个系统View对象的绘制处理之后,就对分配该线程的第二个系统View对象进行绘制处理。系统View对象可以不需要按照顺序在一个线程中一个一个的进行绘制,这样,可以减少电子设备的界面绘制时间。
在一种可能的实现方式中,电子设备可以利用多个非UI线程同时来对系统View对象进行绘制处理。这样,可以减少电子设备进行界面绘制的时间。
在一种可能的实现方式中,电子设备可以根据当前CPU的使用率和子树的数量来调整用于绘制系统View对象的非UI线程的数量。CPU的使用率越高,电子设备利用越少的非UI线程来绘制系统View对象。举例来说,若当前CPU使用率大于90%,则只使用UI线程绘制View对象。若当前CPU使用大于60%且小于90%,则利用一个非UI线程来绘制系统View对象。若当前CPU利用率小于60%,则利用两个非UI线程来绘制系统View对象。子树的数量越多,电子设备可以选择利用越多的非UI线程来绘制系统View对象电子设备CPU使用高时,电子设备会根据CPU的使用率来调整非UI线程的数量。这样,可以减少由于过多的非UI线程导致的电子设备卡顿或者系统崩溃的问题。
在一种可能的实现方式中,电子设备可以根据子树的嵌套复杂度来决定非UI线程的数量。子树嵌套复杂度越高,电子设备可以选择利用越多的非UI线程来绘制系统View。
在一种可能的实现方式中,电子设备可以根据系统View对象的数量来决定非UI线程的数量。系统View对象的数量越多,电子设备可以选择利用越多的非UI线程来绘制系统View对象。
S1007、电子设备根据记录的View对象解析信息来嵌套待显示界面元素,并得到待显示用户界面。
电子设备根据的View对象绘制得到的待显示界面元素都是零散的。电子需要根据待显示界面元素对应的View对象的解析信息来嵌套待显示界面元素。该解析信息可以包括View对象之间的父子关系、View对象的解析顺序。电子设备可以从由XML文件中根节点对应的View对象绘制得到的待显示界面元素开始,将根节点的子节点对应的View对象绘制的子待显示界面元素嵌套到根节点对应的父View对象绘制得到的父待显示界面元素中。电子设备绘制得到的所有待显示界面元素完成嵌套后就组成了待显示用户界面。
在一种可能的实现方式中,电子设备将待显示界面元素嵌套为待显示用户界面,具体包括:电子设备根据View对象之间的父子关系,将子View对象对应的待显示界面元素放置到到父View对象对应的待显示界面元素中;子View对象和父View对象具有父子关系。电子设备获取到View对象之间的父子关系,然后利用View对象之间的父子关系来嵌套待显示界面元素。这样,可以避免嵌套得到待显示用户界面出现嵌套错误。这样,电子设备也可以更准确地对待显示界面元素进行嵌套。
在一种可能的实现方式中,电子设备将待显示界面元素嵌套为待显示用户界面,具体包括:电子设备按照View对象的解析顺序,依次嵌套View对象对应的待显示界面元素,得到待显示用户界面。这样,当待显示界面元素对应的View对象有多个子View对象时,电子设备可以按照每个子View对象的解析顺序依次将子View对象对应的待显示界面元素嵌套到父View对象对应的待显示界面元素中。
在一种可能的实现方式中,电子设备可以按照中序遍历来嵌套所有的绘制得到的待显示界面元素。中序遍历是二叉树遍历的一种,也可以叫做中根遍历、中序周游等。在二叉树中,中序遍历首先遍历左子树,然后访问根节点,最后遍历右子树。举例来说,如图5所示的解析后的View对象层级关系示意图。当电子设备绘制完View对象A、View对象B、View对象C、View对象D之后,得到了如图5示出的待显示用户界面300。电子设备可以根据记录的每个View对象的解析记录,以及每个View对象在XML文件中的位置来嵌套由每个View对象绘制得到的待显示界面元素。电子设备按照中序遍历先将由View对象D绘制得到的待显示界面元素303嵌套到由View对象B绘制得到的待显示界面元素301中。然后,电子设备把由View对象B绘制得到的待显示界面元素301嵌套到由View对象A绘制得到的待显示界面元素301中。最后,电子设备把由View对象C绘制的待显示界面元素302嵌套到由View对象A绘制得到的待显示界面元素300中。
在一种可能的实现方式中,电子设备电子设备判断正在嵌套的待显示界面元素是否有子待显示界面元素。若有,则电子设备将子待显示界面元素嵌套到父待显示界面元素中。这样,可以避免在嵌套时当前正在嵌套到父待显示界面元素的待显示界面元素有遗漏的子待显示界面元素没有嵌套。
S1008、电子设备将待显示用户界面渲染成用户界面。
这里,电子设备将待显示用户界面渲染成用户界面之后,电子设备将用户界面显示在显示屏上。步骤S1008可参考上文描述的电子设备的渲染过程,此处不再赘述。
在一种可能的实现方式中,电子设备根据显示屏的分辨率设置第一用户界面中的界面元素在显示屏中的位置和宽度、高度;电子设备将待显示用户界面渲染成用户界面,具体包括:电子设备根据所述布局属性将待显示用户界面渲染成用户界面,渲染得到后的用户界面中的界面元素符合布局属性。电子设备根据显示屏的大小来设置待显示界面元素的大小。这样,电子设备渲染出的用户界面可以更适应显示屏。
本申请提出的显示用户界面方法中,电子设备启动应用程序或刷新用户界面时,电子设备获取指定的XML文件并进行解析。然后电子设备绘制从XML文件中解析出的View对象。电子设备利用UI线程绘制三方View,并利用多个非UI线程同时绘制系统View。最后,电子设备将绘制的待显示界面元素嵌套到父待显示界面元素中,嵌套完成后得到待显示用户界面。最后,电子设备将待显示用户界面渲染成用户界面。这样,电子设备可以节约界面绘制时间。从而,电子设备可以更快地显示用户界面,提升用户体验。
下面介绍本申请以下实施例中提供的示例性电子设备100。
图11示出了电子设备100的结构示意图。
下面以电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备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等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器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总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备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的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块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的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industryassociation of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。本申请中,电子设备100可以根据加速度传感器180E检测到加速度大小、重力大小的变化来进行横竖屏切换以及折叠屏的单屏显示与大屏显示切换。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180G检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,电子设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
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的软件和硬件的工作流程。
参见图12,图12中的内核层、框架层、应用层分别对应图1中的内核层、应用程序框架层、应用程序层。
窗口管理器负责应用的用户界面分辨率的管理。窗口管理模块将用户界面的分辨率发给视图管理模块和绘图表面管理模块。
视图管理器获取应用层中APP的XML文件,然后解析出XML文件中的每个节点对应的View对象。然后将解析出的View对象绘制成待显示界面元素。并根据从窗口管理器获取到的用户界面分辨率来设置控件的布局属性。
绘图表面管理器将视图管理模块绘制得到的待显示界面元素组成待显示用户界面。
显示驱动用来显示通过渲染待显示用户界面得到的用户界面。
本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种用于电子设备显示用户界面的方法,所述电子设备包括显示屏,其特征在于,包括:
电子设备接收到用于显示第一用户界面的用户操作;
响应于所述用户操作,所述电子设备解析所述第一用户界面对应的布局文件,获取View对象、所述View对象的属性;所述布局文件包括多个节点,每个节点用于描述一个所述View对象;所述View对象规定了所述第一用户界面中的界面元素;
所述电子设备根据所述View对象的属性,所述电子设备调用多个非UI线程并行绘制系统View对象,生成和所述系统View对象对应的待显示界面元素;每个所述非UI线程一次绘制一个所述系统View对象;所述电子设备调用UI线程逐一绘制三方View对象,生成和所述三方View对象对应的所述待显示界面元素;所述UI线程一次绘制一个三方View对象;其中,由Android标准提供的View对象为所述系统View对象,非Android标准提供的View对象为所述三方View对象;所述待显示界面元素是具有几何形状和内容的文字或图片;
所述电子设备将所述待显示界面元素嵌套为待显示用户界面;
所述电子设备将所述待显示用户界面渲染成所述第一用户界面;
所述电子设备在显示屏上显示所述第一用户界面。
2.根据权利要求1所述方法,其特征在于,所述电子设备为所述第一用户界面对应的应用程序创建的一个进程中包含一个或多个线程,在所述一个或多个线程中,唯一的用于显示用户界面以及实现用户界面交互功能的主线程为所述UI线程,所述UI线程以外的其他线程为所述非UI线程。
3.根据权利要求2所述的方法,其特征在于,所述非UI线程的数量由所述电子设备的CPU使用率确定;所述CPU使用率越高,所述非UI线程数量越少。
4.根据权利要求2所述的方法,其特征在于,所述非UI线程的数量由所述View对象中包含的系统View对象的数量确定;所述系统View对象的数量越多,所述非UI线程数量越多。
5.根据权利要求1或2所述的方法,其特征在于,所述电子设备接收到用于显示第一用户界面的用户操作之后,所述方法还包括:
所述电子设备解析所述第一用户界面对应的布局文件,获取所述View对象之间的父子关系;
所述电子设备将所述待显示界面元素嵌套为待显示用户界面,具体包括:所述电子设备根据所述View对象之间的父子关系,将子View对象对应的待显示界面元素放置到父View对象对应的待显示界面元素中;所述子View对象和所述父View对象具有父子关系。
6.根据权利要求5所述的方法,其特征在于,所述电子设备解析所述第一用户界面对应的布局文件,获取所述View对象之间的父子关系之后,所述方法还包括:
所述电子设备将所述View对象、所述View对象的属性以及所述View对象的父子关系保存为树形结构图形;所述树形结构图形中的一个节点表征一个所述View对象;所述树形结构图形中的节点属性对应所述View对象的属性;所述树形结构图形中节点之间的上下级关系表征所述View对象之间的父子关系。
7.根据权利要求6所述的方法,其特征在于,所述树形结构图形包含多个子树,所述子树的数量越多,所述非UI线程数量越多;所述子树描述了一部分具有父子关系的View对象。
8.根据权利要求1或2所述的方法,其特征在于,所述电子设备解析所述第一用户界面对应的布局文件之后,所述方法还包括:
所述电子设备记录解析所述布局文件时,所述View对象的解析顺序;
所述电子设备将所述待显示界面元素嵌套为待显示用户界面,具体包括:所述电子设备按照所述View对象的解析顺序,依次嵌套所述View对象对应的待显示界面元素,得到待显示用户界面。
9.根据权利要求8所述的方法,其特征在于,所述电子设备记录解析所述布局文件时,所述View对象的解析顺序包括:
所述电子设备创建中间对象;所述中间对象是一种数据结构;
所述电子设备使用所述中间对象记录所述View对象的解析顺序以及所述View对象之间的父子关系。
10.根据权利要求1所述的方法,其特征在于,所述用户操作包括:用于启动应用程序并显示所述应用程序提供的主界面的用户操作、用于刷新用户界面的操作、用于跳转用户界面的操作。
11.根据权利要求1所述的方法,其特征在于,所述View对象的属性包括:所述View对象的类型、颜色、ID、内容、所述View对象之间的相对位置、相对宽度和相对高度。
12.根据权利要求1所述的方法,其特征在于,所述电子设备对布局文件进行解析处理包括:
所述电子设备创建解析器指针;所述解析器指针指向所述布局文件中正在解析的节点;
当所述电子设备解析完所述布局文件中的一个节点时,所述解析器指针的移动距离增加第一预设值;所述第一预设值为正整数;
电子设备记录所述解析器指针的移动距离;所述移动距离用来指示所述电子设备解析到第几个节点。
13.根据权利要求1所述的方法,其特征在于,所述电子设备解析所述第一用户界面对应的布局文件之后,所述方法还包括:
所述电子设备根据所述显示屏的分辨率设置所述第一用户界面中的界面元素在显示屏中的位置和宽度、高度;
所述电子设备将所述待显示用户界面渲染成所述第一用户界面,具体包括:所述电子设备根据布局属性将所述待显示用户界面渲染成所述第一用户界面,渲染得到后的所述第一用户界面中的界面元素符合所述布局属性。
14.根据权利要求1所述的方法,所述电子设备解析所述第一用户界面对应的布局文件之后,所述方法还包括:
所述电子设备根据所述View对象所属类型的名称判断所述View对象是否为系统View对象;
若所述View对象所属类型的名称由所述电子设备操作系统的名称组成,则所述View对象为系统View对象;若所述View对象类型名称由应用程序的名称组成,则所述View对象为三方View对象。
15.一种电子设备,其特征在于,包括:通信接口、存储器和处理器;所述通信接口、所述存储器与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述电子设备执行如权利要求1-14任一项所述方法。
16.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至14任一项所述的方法。
17.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1至14任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910787833.XA CN110597512B (zh) | 2019-08-23 | 2019-08-23 | 显示用户界面的方法及电子设备 |
PCT/CN2020/107549 WO2021036735A1 (zh) | 2019-08-23 | 2020-08-06 | 显示用户界面的方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910787833.XA CN110597512B (zh) | 2019-08-23 | 2019-08-23 | 显示用户界面的方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110597512A CN110597512A (zh) | 2019-12-20 |
CN110597512B true CN110597512B (zh) | 2022-04-08 |
Family
ID=68855391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910787833.XA Active CN110597512B (zh) | 2019-08-23 | 2019-08-23 | 显示用户界面的方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110597512B (zh) |
WO (1) | WO2021036735A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597512B (zh) * | 2019-08-23 | 2022-04-08 | 荣耀终端有限公司 | 显示用户界面的方法及电子设备 |
CN111176647B (zh) * | 2020-02-27 | 2023-06-02 | 北京飞漫软件技术有限公司 | 一种构建表盘对象的方法及系统 |
CN114238804A (zh) * | 2020-09-08 | 2022-03-25 | 荣耀终端有限公司 | 组件显示方法和电子设备 |
CN114201978A (zh) * | 2020-09-18 | 2022-03-18 | 华为技术有限公司 | 一种对应用程序的界面进行翻译的方法及相关设备 |
EP4209898A4 (en) * | 2020-09-29 | 2024-03-13 | Huawei Tech Co Ltd | LAYOUT METHOD FOR AN APPLICATION INTERFACE AND ELECTRONIC DEVICE |
CN112860259B (zh) * | 2021-03-31 | 2024-02-06 | 中国工商银行股份有限公司 | 界面处理方法、装置、电子设备、存储介质 |
CN113713375A (zh) * | 2021-08-02 | 2021-11-30 | 网易(杭州)网络有限公司 | 一种界面元素显示方法、装置、终端及存储介质 |
CN114489689B (zh) * | 2021-08-26 | 2023-01-13 | 荣耀终端有限公司 | 应用程序的安装方法、系统、电子设备及服务器 |
CN113849247B (zh) * | 2021-09-26 | 2024-04-30 | 上海哔哩哔哩科技有限公司 | 直播间页面元素的显示方法、装置及系统 |
CN114461171B (zh) * | 2022-01-27 | 2023-11-28 | 山东省城市商业银行合作联盟有限公司 | 网上银行页面的朗读方法及系统 |
CN116089056B (zh) * | 2022-08-22 | 2023-10-20 | 荣耀终端有限公司 | 用于图像绘制的方法及相关装置 |
CN116521043B (zh) * | 2022-09-01 | 2023-12-22 | 苏州浩辰软件股份有限公司 | 一种图纸快速响应的方法、系统及计算机程序产品 |
CN116662270B (zh) * | 2022-09-09 | 2024-05-10 | 荣耀终端有限公司 | 文件解析方法及相关装置 |
CN115599384B (zh) * | 2022-12-14 | 2023-05-26 | 深圳市明源云科技有限公司 | 图片文字生成方法、装置、设备及其存储介质 |
CN116450057B (zh) * | 2023-06-19 | 2023-08-15 | 成都赛力斯科技有限公司 | 基于客户端的车辆功能图片生成方法、装置及存储介质 |
CN116976286B (zh) * | 2023-09-22 | 2024-02-27 | 北京紫光芯能科技有限公司 | 用于进行文本布局的方法及装置、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329665A (zh) * | 2007-06-18 | 2008-12-24 | 国际商业机器公司 | 解析标记语言文档的方法和解析器 |
CN104123127A (zh) * | 2013-04-27 | 2014-10-29 | 北京宇和永泰网络科技有限公司 | 手机软件开发通用平台 |
CN107729094A (zh) * | 2017-08-29 | 2018-02-23 | 口碑(上海)信息技术有限公司 | 一种用户界面渲染的方法及装置 |
CN108733445A (zh) * | 2018-05-17 | 2018-11-02 | 北京五八信息技术有限公司 | 一种视图管理方法、装置、设备及计算机可读存储介质 |
CN109634598A (zh) * | 2018-12-14 | 2019-04-16 | 北京字节跳动网络技术有限公司 | 一种页面显示方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020149619A1 (en) * | 2001-02-12 | 2002-10-17 | Perot Systems Corporation | System and method for constructing a graphical user interface |
US9569342B2 (en) * | 2012-12-20 | 2017-02-14 | Microsoft Technology Licensing, Llc | Test strategy for profile-guided code execution optimizers |
CN104007967B (zh) * | 2014-05-21 | 2017-09-12 | 广州华多网络科技有限公司 | 一种基于可扩展标记语言的用户界面生成方法和装置 |
CN106528159A (zh) * | 2016-11-22 | 2017-03-22 | 深圳铂睿智恒科技有限公司 | 一种移动终端实现应用具有动态效果的方法及系统 |
CN109669752A (zh) * | 2018-12-19 | 2019-04-23 | 北京达佳互联信息技术有限公司 | 一种界面绘制方法、装置及移动终端 |
CN110597512B (zh) * | 2019-08-23 | 2022-04-08 | 荣耀终端有限公司 | 显示用户界面的方法及电子设备 |
-
2019
- 2019-08-23 CN CN201910787833.XA patent/CN110597512B/zh active Active
-
2020
- 2020-08-06 WO PCT/CN2020/107549 patent/WO2021036735A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329665A (zh) * | 2007-06-18 | 2008-12-24 | 国际商业机器公司 | 解析标记语言文档的方法和解析器 |
CN104123127A (zh) * | 2013-04-27 | 2014-10-29 | 北京宇和永泰网络科技有限公司 | 手机软件开发通用平台 |
CN107729094A (zh) * | 2017-08-29 | 2018-02-23 | 口碑(上海)信息技术有限公司 | 一种用户界面渲染的方法及装置 |
CN108733445A (zh) * | 2018-05-17 | 2018-11-02 | 北京五八信息技术有限公司 | 一种视图管理方法、装置、设备及计算机可读存储介质 |
CN109634598A (zh) * | 2018-12-14 | 2019-04-16 | 北京字节跳动网络技术有限公司 | 一种页面显示方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110597512A (zh) | 2019-12-20 |
WO2021036735A1 (zh) | 2021-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597512B (zh) | 显示用户界面的方法及电子设备 | |
CN109814766B (zh) | 一种应用显示方法及电子设备 | |
CN110362244B (zh) | 一种分屏方法及电子设备 | |
CN112148400B (zh) | 锁定状态下的显示方法及装置 | |
CN111669459B (zh) | 键盘显示方法、电子设备和计算机可读存储介质 | |
WO2020253758A1 (zh) | 一种用户界面布局方法及电子设备 | |
CN111176506A (zh) | 一种屏幕显示方法及电子设备 | |
CN114461111B (zh) | 启动功能的方法及电子设备 | |
CN109559270B (zh) | 一种图像处理方法及电子设备 | |
CN111078091A (zh) | 分屏显示的处理方法、装置及电子设备 | |
CN111240547A (zh) | 跨设备任务处理的交互方法、电子设备及存储介质 | |
CN109857401B (zh) | 电子设备的显示方法、图形用户界面及电子设备 | |
CN113132526B (zh) | 一种页面绘制方法及相关装置 | |
CN113961157B (zh) | 显示交互系统、显示方法及设备 | |
CN111970401B (zh) | 一种通话内容处理方法、电子设备和存储介质 | |
WO2023130921A1 (zh) | 一种适配多设备的页面布局的方法及电子设备 | |
CN112068907A (zh) | 一种界面显示方法和电子设备 | |
CN113986070A (zh) | 一种应用卡片的快速查看方法及电子设备 | |
WO2022057889A1 (zh) | 一种对应用程序的界面进行翻译的方法及相关设备 | |
CN114205457A (zh) | 一种移动用户界面元素的方法及电子设备 | |
WO2022089276A1 (zh) | 一种收藏处理的方法及相关装置 | |
WO2024067551A1 (zh) | 界面显示方法及电子设备 | |
WO2023160455A1 (zh) | 删除对象的方法及电子设备 | |
WO2024046010A1 (zh) | 一种界面显示方法、设备及系统 | |
CN117631920A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210423 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Applicant after: Honor Device Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |