CN107179920B - 网络引擎启动方法及装置 - Google Patents

网络引擎启动方法及装置 Download PDF

Info

Publication number
CN107179920B
CN107179920B CN201610134803.5A CN201610134803A CN107179920B CN 107179920 B CN107179920 B CN 107179920B CN 201610134803 A CN201610134803 A CN 201610134803A CN 107179920 B CN107179920 B CN 107179920B
Authority
CN
China
Prior art keywords
network engine
transition image
buffer area
subunit
engine starting
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
Application number
CN201610134803.5A
Other languages
English (en)
Other versions
CN107179920A (zh
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.)
Banma Zhixing Network Hongkong Co Ltd
Original Assignee
Banma Zhixing Network Hongkong 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 Banma Zhixing Network Hongkong Co Ltd filed Critical Banma Zhixing Network Hongkong Co Ltd
Priority to CN201610134803.5A priority Critical patent/CN107179920B/zh
Priority to PCT/CN2017/074722 priority patent/WO2017152776A1/zh
Publication of CN107179920A publication Critical patent/CN107179920A/zh
Priority to US16/124,023 priority patent/US20190080017A1/en
Application granted granted Critical
Publication of CN107179920B publication Critical patent/CN107179920B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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/445Program loading or initiating
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请公开了一种网络引擎启动方法,包括:显示过渡图像;启动网络引擎,显示页面内容;其中,所述网络引擎在显示页面内容时,复用显示过渡图像所使用的图形缓冲区,所述图形缓冲区用于存储供显示服务模块显示输出的用户界面数据。本申请同时提供一种网络引擎启动装置。采用本申请提供的网络引擎启动方法,由于网络引擎的启动过程和过渡图像的显示过程,复用了相同的图形缓冲区,因此在网络引擎的启动过程中不仅实现了对用户输入的快速反馈,而且没有因为过渡图像的显示而产生额外的缓冲区开销,节省对内存的占用。

Description

网络引擎启动方法及装置
技术领域
本申请涉及网络引擎技术,具体涉及一种网络引擎启动方法。本申请同时涉及一种网络引擎启动装置。
背景技术
个人电脑、智能手机等终端设备已经成为了人们日常生活的重要组成部分。用户通常可以通过点击图标或者按键等方式,启动浏览器或者Web App(基于Web的应用),以实现所需的功能。浏览器或者Web App通常需要启动web engine(网络引擎),由web engine根据从服务器端返回的HTML、XML或者Image等资源,进行页面渲染并在显示设备上输出,以呈现给用户。
Web engine的启动过程通常包括:下载网络资源,将获取的网页文档转换为DOMTree,随后构造用于渲染Dom Tree的渲染树(render tree),并对渲染树的每个节点进行布局处理,确定其在屏幕上的显示位置,最后遍历渲染树将每个节点绘制到图形缓冲区中,并通知提供显示服务的模块(通常称为显示系统或者图形系统)将图形缓冲区中的数据渲染输出到显示设备的硬件缓冲区中,从而完成页面内容的呈现。
由于web engine的启动过程需要执行上述操作,因此通常比较耗时,一般在300ms以上,也就是说从用户执行启动Web App或者浏览器的操作,到页面内容显示出来的这段时间内,屏幕上通常没有内容显示,可能导致用户认为输入操作没有得到任何反馈,甚至可能重复执行相同的操作,影响用户的使用体验。
针对这一问题,有的终端设备在启动web engine的同时,采用一个额外的独立窗口专门用于显示过渡动画,例如:采用Android系统的智能手机通过窗口管理进程进行过渡动画的展示。采用这种方式,对于整个系统来说,由于过渡动画的显示占用了额外的缓冲区,从而增大内存开销。
发明内容
本申请实施例提供一种网络引擎启动方法,以解决现有的网络引擎启动方式在显示过渡动画时需要占用额外缓冲区的问题。本申请实施例还提供一种网络引擎启动装置。
本申请提供一种网络引擎启动方法,包括:
显示过渡图像;
启动网络引擎,显示页面内容;
其中,所述网络引擎在显示页面内容时,复用显示过渡图像所使用的图形缓冲区,所述图形缓冲区用于存储供显示服务模块显示输出的用户界面数据。
可选的,所述显示过渡图像包括:采用动画方式显示过渡图像。
可选的,所述动画方式包括以下任意一种或者组合:渐变透明度、渐变尺寸伸缩、移动、旋转。
可选的,所述获取并显示过渡图像的步骤和所述启动网络引擎显示页面内容的步骤,分别在应用程序进程的不同线程中异步实施。
可选的,所述显示过渡图像包括:
获取过渡图像文件;
通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
读取所述过渡图像文件并执行解码操作;
将解码得到的数据写入所述图形缓冲区中,以显示所述过渡图像。
可选的,当所述方法由启动Web App的指令触发时,所述过渡图像文件的获取方式包括:根据Web App的配置文件中指定的路径获取。
可选的,当所述方法由启动浏览器的指令触发时,所述过渡图像文件的获取方式包括:根据预先设定的路径获取。
可选的,所述通过向图形缓冲区管理模块申请的方式获取图形缓冲区的步骤,以及所述显示过渡图像所包含的其他步骤,分别在不同的线程中实施。
可选的,所述显示过渡图像包括:
通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
按照预设的颜色方案向所述图形缓冲区中写入数据,以显示对应于所述颜色方案的过渡图像。
可选的,所述启动网络引擎,显示页面内容,包括:
所述网络引擎在下载资源以及渲染布局的过程中,判断是否满足预设条件;
若满足,执行下述操作:
获取显示过渡图像时所使用的图形缓冲区;
将已布局好的页面内容绘制到所述图形缓冲区中。
可选的,所述预设条件包括:所述过渡图像显示完毕。
可选的,所述网络引擎在下载资源以及渲染布局的过程中,还执行下述操作:
根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述预设条件包括:
所述过渡图像显示完毕、且所述可绘制区域的尺寸满足首屏要求;
所述将已布局好的页面内容绘制到所述图形缓冲区中,包括:将已布局好的首屏页面内容绘制到所述图形缓冲区中。
可选的,所述网络引擎在下载资源以及渲染布局的过程中,还执行下述操作:
根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述预设条件包括:所述可绘制区域的尺寸满足首屏要求;
所述将已布局好的页面内容绘制到所述图形缓冲区中,包括:将已布局好的首屏页面内容绘制到所述图形缓冲区中。
可选的,所述网络引擎渲染布局的过程,是分层进行的;
所述将已布局好的页面内容绘制到所述图形缓冲区中,包括:将已分层布局好的页面内容合成并绘制到所述图形缓冲区中。
相应的,本申请还提供一种网络引擎启动装置,包括:
过渡图像显示单元,用于显示过渡图像;
网络引擎启动单元,用于启动网络引擎,显示页面内容;其中,所述网络引擎在显示页面内容时,复用过渡图像显示单元所使用的图形缓冲区。
可选的,所述过渡图像显示单元,具体用于采用动画方式显示过渡图像。
可选的,所述过渡图像显示单元和所述网络引擎启动单元,分别用于采用不同的线程异步实现各自的功能。
可选的,所述过渡图像显示单元包括:
文件获取子单元,用于获取过渡图像文件;
图形缓冲区申请子单元,用于通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
解码子单元,用于读取所述文件获取子单元所获取的过渡图像文件并执行解码操作;
第一图形缓冲区写入子单元,用于将所述解码子单元得到的数据写入所述图形缓冲区中,以显示过渡图像。
可选的,所述文件获取子单元具体用于,根据Web App的配置文件中指定的路径获取过渡图像文件。
可选的,所述文件获取子单元具体用于,根据预先设定的路径获取过渡图像文件。
可选的,所述图形缓冲区申请子单元,以及所述过渡图像显示单元中的其他子单元,分别采用不同的线程实现各自的功能。
可选的,所述过渡图像显示单元包括:
图形缓冲区申请子单元,用于通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
第二图像缓冲区写入子单元,用于按照预设的颜色方案向所述图形缓冲区中写入数据,以显示对应于所述颜色方案的过渡图像。
可选的,所述网络引擎启动单元包括:
渲染布局子单元,用于网络引擎下载资源以及渲染布局;
条件判断子单元,用于在渲染布局子单元工作期间,判断是否满足预设条件;
图形缓冲区获取子单元,用于当所述条件判断子单元的输出为是时,获取所述过渡图像显示单元所使用的图形缓冲区;
布局内容绘制子单元,用于将已布局好的页面内容绘制到所述图形缓冲区中。
可选的,所述条件判断子单元所采用的预设条件为:所述过渡图像显示单元完成过渡图像的显示。
可选的于,所述网络引擎启动单元还包括:
可绘制区域计算子单元,用于根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述条件判断子单元所采用的预设条件为:所述过渡图像显示单元完成过渡图像的显示、且所述可绘制区域计算子单元计算的可绘制区域的尺寸满足首屏要求;
所述布局内容绘制子单元,具体用于将已布局好的首屏页面内容绘制到所述图形缓冲区获取子单元获取的图形缓冲区中。
可选的,所述网络引擎启动单元还包括:
可绘制区域计算子单元,用于根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述条件判断子单元所采用的预设条件为:所述可绘制区域计算子单元计算的可绘制区域的尺寸满足首屏要求;
所述布局内容绘制子单元,具体用于将已布局好的首屏页面内容绘制到所述图形缓冲区获取子单元获取的图形缓冲区中。
可选的,所述渲染布局子单元,具体用于网络引擎下载资源以及分层进行渲染布局;
所述布局内容绘制子单元,具体用于将已分层布局好的页面内容合成并绘制到所述图形缓冲区获取子单元获取的图形缓冲区中。
与现有技术相比,本申请具有以下优点:
本申请提供的网络引擎启动方法,包括显示过渡图像、以及通过启动网络引擎显示页面内容的过程,并且在上述过程中,所述网络引擎在显示页面内容时,复用显示过渡动画所使用的图形缓冲区。采用本方法,由于网络引擎的启动过程和过渡图像的显示过程,复用了相同的图形缓冲区,因此在网络引擎的启动过程中不仅实现了对用户输入的快速反馈,而且没有因为过渡图像的显示而产生额外的缓冲区开销,节省对内存的占用。
附图说明
图1是本申请的一种网络引擎启动方法的实施例的流程图;
图2是本申请实施例提供的splash模块显示过渡图像的处理流程的示意图;
图3是本申请实施例提供的多线程处理流程的示意图;
图4是本申请的一种网络引擎启动装置的实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
在本申请中,分别提供了一种网络引擎启动方法,以及一种网络引擎启动装置,在下面的实施例中逐一进行详细说明。为了便于理解,先对本申请涉及的相关技术以及本申请的技术方案作简要的说明。
对于在个人电脑、移动通讯设备等电子设备中运行的应用程序或者系统来说,在显示设备上显示用户界面数据(UI数据),是实现与用户交互的最基本方式。应用程序或者系统可以向各自的图形缓冲区(Graphics buffer)中写入需要显示或者更新的用户界面数据。
所述图形缓冲区是指,用于显示的内存块,通常由专门的模块进行管理,例如:图形缓冲区管理模块,该模块负责存储与管理图形缓冲区,例如可以根据应用程序或者系统的请求为其分配图形缓冲区。由于图形缓冲区用于存储待显示的UI数据,而不同电子设备的显示分辨率不同,因此图形缓冲区的大小也可能不同,以分辨率为1080p为例,每块图形缓冲区的大小通常为8MB。
应用程序或者系统向各自的图形缓冲区中写入UI数据后,可以通知负责提供显示服务的模块(即显示服务模块)进行显示,显示服务模块通过软件或者硬件的方式,将对应于各个应用程序以及系统的图形缓冲区中的UI数据进行计算、合并,并最终渲染输出到显示设备的硬件缓冲区中,从而实现用户界面的显示功能。
本申请的技术方案,则是在上述显示技术的基础上,在启动网络引擎与显示过渡图像两者之间实现了图形缓冲区的复用。由于启动网络引擎比较耗时,为了对用户输入做出快速反馈,本申请的技术方案同样采用了显示过渡图像的方式,在本文中将负责显示过渡图像的模块称为splash模块。而本申请技术方案的核心在于,网络引擎在启动过程中并没有重新申请新的图形缓冲区,而是复用了splash模块所使用的图形缓冲区进行页面内容的显示,从而避免产生额外的图形缓冲区开销,减少对内存资源的占用。
下面对本申请的实施例进行详细说明。
请参考图1,其为本申请的一种网络引擎启动方法的实施例的流程图。所述方法包括如下步骤:
步骤101、显示过渡图像。
当用户通过点击图标或者按键等方式启动浏览器或者Web App时,通常会启动相应的应用程序进程,在应用程序进程的主线程中,可以先调用splash模块显示过渡图像,然后再启动web engine进行页面内容的显示,并且在显示页面内容时复用splash模块所采用的图形缓冲区,即:web engine获取splash模块显示过渡图像时使用的图形缓冲区,并将待显示的页面内容输出到所述图形缓冲区中。
为了能够更快地启动web engine,以便用户尽早看到页面内容,本实施例提供一种优选实施方式:splash模块和web engine的启动以多线程异步的方式实施。例如,应用程序进程创建一个单独的splash线程用于执行splash模块,负责显示过渡图像;而启动webengine的任务则由主线程完成(也可以称为web engine线程)。采用这种方式,一方面由于splash模块是一个轻量级模块,因此能够以很快的方式显示给用户,提供及时反馈功能;另一方面,可以不阻塞web engine的启动过程。本实施例的后续文字,重点针对采用多线程异步方式的实施方式进行说明。
作为比较简单易行的实施方式,splash模块可以按照预设的颜色方案显示过渡图像,例如,预设颜色方案可以指定两种或者两种以上颜色按照特定规律排列显示。具体实施过程包括:通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;按照预设的颜色方案向所述图形缓冲区中写入数据,以显示对应于所述颜色方案的过渡图像。
优选地,为了增加过渡图像的美观性、或者在过渡图像中传达特定的信息,例如:应用程序标志、广告语等,本实施例提供根据过渡图像文件展示过渡图像的优选实施方式。所述过渡图像文件可以是预先设计好的图片文件,例如:bmp文件或者jpg文件等。
采用这种优选实施方式,splash模块显示过渡图像的过程包括获取过渡图像、申请图形缓冲区、解码、写图形缓冲区这样几个步骤,分别对应于如下所示的步骤101-1至101-4,下面结合图2作进一步描述。
步骤101-1、获取过渡图像文件。
splash模块可以通过多种方式获取过渡图像文件。
如果本实施例所述方法由启动Web App的指令触发时,splash模块可以根据WebApp配置文件中指定的路径获取。例如:在Android系统中,每个应用程序都有对应的Manifest配置文件,其中可以配置过渡图像的路径信息,如果用户点击了对应于Web App的图标,在Web App进程被创建时,可以将过渡图像的路径传递给splash模块,从而splash模块可以根据该路径获取过渡图像文件。
如果本实施例所述方法由启动浏览器的指令触发时,splash模块可以根据预先设定的路径获取过渡图像文件。
步骤101-2、通过向图形缓冲区管理模块申请的方式,获取图形缓冲区。
splash模块向图形缓冲区管理模块发送申请图形缓冲区的请求,所述图形缓冲区管理模块可以在其管理的图形缓冲区中查找有无空闲的图形缓冲区,若找到,则将该图形缓冲区返回给splash模块;若没有找到,则可以重新申请内存创建空闲图形缓冲区,并将新创建的图形缓冲区返回给splash模块。在具体实施时,图形缓冲区管理模块返回给splash模块的可以是图形缓冲区的内存地址,splash模块后续则可以根据获取的内存地址执行向图形缓冲区中写入数据的操作。
步骤101-3、读取所述过渡图像文件并执行解码操作。
splash模块读取已获取的过渡图像文件,并根据过渡图像文件的数据存储格式执行相应的解码操作,将过渡图像文件中的数据转换成可以在显示设备上输出显示的格式,例如:转换成RGB色彩模式对应的颜色值。
步骤101-4、将解码得到的数据写入所述图形缓冲区中,以显示所述过渡图像。
splash模块将解码后的数据写入在步骤101-2获取的图形缓冲区中,以在显示设备上显示所述过渡图像。在具体实施时,显示服务模块可以主动检测所述图形缓冲区被更新的事件,也可以由splash模块在完成向图形缓冲区写入解码数据的操作后,主动通知显示服务模块。显示服务模块负责所述图形缓冲区中的待显示数据输出到显示设备的硬件缓冲区中进行显示。
优选地,为了提供更为友好的用户交互方式,可以采用动画方式显示过渡图像,即:显示过渡动画。所述动画方式包括以下任意一种或者组合:渐变透明度(Alpha)、渐变尺寸伸缩(Scale)、移动(Translate)、旋转(Rotate),具体采用哪种或者哪些动画方式,可以预先设定,也可以在Web App的配置文件中指定。在采用动画方式的情况下,splash模块在完成图形缓冲区的写入操作后,可以按照具体的动画方式,通知显示服务模块对图形缓冲区中的数据进行相应的计算、渲染,并输出到显示设备的硬件缓冲区中,从而在显示设备上呈现动画效果。例如:通过对显示位置的渐进调整,可以实现移动的动画效果。
至此通过步骤101-1至步骤101-4,对过渡图像的显示过程进行了说明。在上面描述的实施方式中,splash模块在单独为其创建的splash线程中完成了申请图形缓冲区、图像解码、以及写图形缓冲区等操作。
优选地,为了尽可能快速地显示过渡图像,给用户提供及时反馈,本实施例提供多线程并发实现splash模块功能的优选实施方式。例如:在splash线程启动后,再创建一个getbuf线程,splash线程执行获取过渡图像文件、以及解码的操作,getbuf线程则执行申请图形缓冲区的操作,并将获取的图形缓冲区的内存地址通过线程间的数据共享机制或者通讯机制传递给splash线程,splash线程将解码后的数据写入所述图形缓冲区中,从而实现了向用户快速呈现过渡图像的功能。请参见图3,其为本实施例提供的多线程处理流程的示意图。
步骤102、启动网络引擎,显示页面内容。
现有技术中,网络引擎在启动后,首先执行必要的初始化操作,随后通常可以执行以下操作:下载待展示的页面文档(例如:html文件)及页面文档中涉及的各种资源;解析页面文档,转换为DOM树;根据CSS等样式信息,创建用于渲染DOM树的渲染树(render tree),所述渲染树中的节点通常与页面内容中的可视部分相对应,通常为带有颜色、尺寸等显示属性的矩形,这些矩形的顺序与显示顺序一致;对渲染树的节点进行布局处理,确定其在屏幕上的显示位置;最后遍历渲染树并将其中的节点绘制到网络引擎申请的图形缓冲区中,以在显示设备上呈现页面内容。
而本实施例提供的网络引擎启动方法,网络引擎在执行原有处理流程显示页面内容的过程中,复用了在步骤101中所使用的图形缓冲区,也就是说,为了显示过渡图像所申请的图形缓冲区,在web engine的启动过程中得到了重复利用,没有因为过渡图像的显示而导致额外的缓冲区开销,从而节省了对内存的占用。下面对本步骤中web engine的处理过程作进一步说明。
网络引擎根据下载的资源生成DOM树及渲染树,并对渲染树的节点进行布局,确定在屏幕上的显示位置,在该过程中网络引擎判断是否满足预设条件,若满足,则获取显示过渡图像时所使用的图形缓冲区,并将已布局好的页面内容(即:渲染树中已布局好的各节点)绘制到所述图形缓冲区中。
在具体实施时,所述获取显示过渡图像所使用的图形缓冲区,通常是指获取所述图形缓冲区的内存地址以及大小等信息。对于采用多线程异步实施的方式,web engine线程可以通过线程间的数据共享机制或者通讯机制,从splash线程获取其使用的图形缓冲区的内存地址以及大小等信息。
所述预设条件可以为:过渡图像显示完毕。采用这种方式,splash线程可以在过渡图像显示完毕后向web engine线程发送通知,从而web engine线程可以向splash线程获取其显示过渡图像所使用的图形缓冲区,并将已布局好的页面内容绘制到所述图形缓冲区中。这种处理方式,对于采用动画方式显示过渡图像的实施方式,可以保证过渡动画显示过程的完整性,并且可以尽快向用户呈现页面内容。
优选地,为了向用户呈现完整的首屏信息,避免出现白屏或者部分白屏的现象,本实施例还提供了显示完整首屏内容的优选实施方式,在这种情况下,所述预设条件为:过渡图像显示完毕、且可绘制区域的尺寸满足首屏要求。
其中,所述可绘制区域是指,渲染树中已布局好的节点所对应的显示屏幕中的区域;所述首屏(above the fold,或者,first screen)是指,打开页面后,在显示屏幕上所呈现的第一屏,即:无需执行滚屏操作就能被用户看到的画面。
采用这种优选实施方式,web engine在下载资源以及渲染布局的过程中,可以执行下述操作:根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸。在具体实施时,可以在对渲染树中的节点进行逐一布局的过程中,每完成一个节点的布局,就根据已布局节点在屏幕上的显示位置,计算可绘制区域的尺寸。当检测到过渡图像显示完毕后,如果当前可绘制区域的尺寸尚未达到首屏的大小,则继续进行渲染树中节点的布局,直到可绘制区域的尺寸满足首屏要求,即:可绘制区域的尺寸大于或者等于首屏的大小,才可以向splash线程获取图形缓冲区,并将已布局好的首屏页面内容绘制到所述图形缓冲区中。
采用这种优选实施方式,由于web engine已经将首屏内容准备好了,因此通过写图形缓冲区向用户显示出来的,通常是完整的首屏内容,而不会出现白屏或者部分白屏的现象,从而从视觉体验的角度,实现了过渡图像显示到页面内容显示的无缝切换,能够保证用户良好的浏览体验。
此外,本实施例还提供另一种能够尽快展示首屏页面内容的优选实施方式,即,所述预设条件为:可绘制区域的尺寸满足首屏要求。采用这种优选实施方式,与之前描述的优选实施方式类似,网络引擎在下载资源以及渲染布局的过程中,也根据已布局好页面内容的位置信息,计算可绘制区域的尺寸;不同之处在于,web engine向splash线程获取图形缓冲区的触发条件仅为:可绘制区域的尺寸满足首屏要求。即:当web engine计算得到的可绘制区域的尺寸大于或者等于首屏大小时,就可以通知splash线程首屏页面内容已准备好,并向splash线程获取图形缓冲区、向其中写入首屏页面内容,而无需等待过渡图像显示完毕。
采用这种优选实施方式,可以尽快地向用户展示首屏页面内容,特别是在采用动画方式显示过渡图像的场景下,能够减少用户观看过渡动画的时间,而将用户真正关心或者感兴趣的页面内容尽可能快地呈现出来。
需要说明的是,由于web页面中包含的各种页面元素通常是分层的,例如:最底层为窗口,在其上设置有图片,图片上又可以设置按钮、链接等等。因此,web engine在进行渲染布局、准备可绘制的页面内容的时候,通常采用分层的方式进行,在满足预设条件、获取图形缓冲区后,则可以将分层准备好的待绘制内容,通过层与层之间的叠加覆盖关系进行合成(composite),并将合成后的数据写入从splash线程获取的图形缓冲区中。这样可以减少对图形缓冲区的重复写入操作,提高执行效率。
至此,通过步骤101-步骤102,对本实施例提供的网络引擎启动方法的具体实施方式进行了详细说明。通过上述描述可以看出,采用本实施例提供的网络引擎启动方法,由于网络引擎的启动过程和过渡图像的显示过程,复用了相同的图形缓冲区,因此在网络引擎的启动过程中不仅实现了对用户输入的快速反馈,而且没有因为过渡图像的显示而产生额外的缓冲区开销,节省对内存的占用。
在上述的实施例中,提供了一种网络引擎启动方法,与之相对应的,本申请还提供一种网络引擎启动装置。请参看图4,其为本申请的一种网络引擎启动装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种网络引擎启动装置,包括:过渡图像显示单元401,用于显示过渡图像;网络引擎启动单元402,用于启动网络引擎,显示页面内容;其中,所述网络引擎在显示页面内容时,复用过渡图像显示单元所使用的图形缓冲区。
可选的,所述过渡图像显示单元,具体用于采用动画方式显示过渡图像。
可选的,所述过渡图像显示单元和所述网络引擎启动单元,分别用于采用不同的线程异步实现各自的功能。
可选的,所述过渡图像显示单元包括:
文件获取子单元,用于获取过渡图像文件;
图形缓冲区申请子单元,用于通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
解码子单元,用于读取所述文件获取子单元所获取的过渡图像文件并执行解码操作;
第一图形缓冲区写入子单元,用于将所述解码子单元得到的数据写入所述图形缓冲区中,以显示过渡图像。
可选的,所述文件获取子单元具体用于,根据Web App的配置文件中指定的路径获取过渡图像文件。
可选的,所述文件获取子单元具体用于,根据预先设定的路径获取过渡图像文件。
可选的,所述图形缓冲区申请子单元,以及所述过渡图像显示单元中的其他子单元,分别采用不同的线程实现各自的功能。
可选的,所述过渡图像显示单元包括:
图形缓冲区申请子单元,用于通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
第二图像缓冲区写入子单元,用于按照预设的颜色方案向所述图形缓冲区中写入数据,以显示对应于所述颜色方案的过渡图像。
可选的,所述网络引擎启动单元包括:
渲染布局子单元,用于网络引擎下载资源以及渲染布局;
条件判断子单元,用于在渲染布局子单元工作期间,判断是否满足预设条件;
图形缓冲区获取子单元,用于当所述条件判断子单元的输出为是时,获取所述过渡图像显示单元所使用的图形缓冲区;
布局内容绘制子单元,用于将已布局好的页面内容绘制到所述图形缓冲区中。
可选的,所述条件判断子单元所采用的预设条件为:所述过渡图像显示单元完成过渡图像的显示。
可选的,所述网络引擎启动单元还包括:
可绘制区域计算子单元,用于根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述条件判断子单元所采用的预设条件为:所述过渡图像显示单元完成过渡图像的显示、且所述可绘制区域计算子单元计算的可绘制区域的尺寸满足首屏要求;
所述布局内容绘制子单元,具体用于将已布局好的首屏页面内容绘制到所述图形缓冲区获取子单元获取的图形缓冲区中。
可选的,所述网络引擎启动单元还包括:
可绘制区域计算子单元,用于根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述条件判断子单元所采用的预设条件为:所述可绘制区域计算子单元计算的可绘制区域的尺寸满足首屏要求;
所述布局内容绘制子单元,具体用于将已布局好的首屏页面内容绘制到所述图形缓冲区获取子单元获取的图形缓冲区中。
可选的,所述渲染布局子单元,具体用于网络引擎下载资源以及分层进行渲染布局;
所述布局内容绘制子单元,具体用于将已分层布局好的页面内容合成并绘制到所述图形缓冲区获取子单元获取的图形缓冲区中。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (25)

1.一种网络引擎启动方法,其特征在于,包括:
显示过渡图像;
启动网络引擎,显示页面内容;
其中,所述网络引擎在显示页面内容时,复用显示过渡图像所使用的图形缓冲区,所述图形缓冲区用于存储供显示服务模块显示输出的用户界面数据;
其中,所述启动网络引擎,显示页面内容,包括:
所述网络引擎在下载资源以及渲染布局的过程中,判断是否满足预设条件;
若满足,执行下述操作:
获取显示过渡图像时所使用的图形缓冲区;
将已布局好的页面内容绘制到所述图形缓冲区中。
2.根据权利要求1所述的网络引擎启动方法,其特征在于,所述显示过渡图像包括:采用动画方式显示过渡图像。
3.根据权利要求2所述的网络引擎启动方法,其特征在于,所述动画方式包括以下任意一种或者组合:渐变透明度、渐变尺寸伸缩、移动、旋转。
4.根据权利要求1所述的网络引擎启动方法,其特征在于,所述获取并显示过渡图像的步骤和所述启动网络引擎显示页面内容的步骤,分别在应用程序进程的不同线程中异步实施。
5.根据权利要求1所述的网络引擎启动方法,其特征在于,所述显示过渡图像包括:
获取过渡图像文件;
通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
读取所述过渡图像文件并执行解码操作;
将解码得到的数据写入所述图形缓冲区中,以显示所述过渡图像。
6.根据权利要求5所述的网络引擎启动方法,其特征在于,当所述方法由启动Web App的指令触发时,所述过渡图像文件的获取方式包括:根据Web App的配置文件中指定的路径获取。
7.根据权利要求5所述的网络引擎启动方法,其特征在于,当所述方法由启动浏览器的指令触发时,所述过渡图像文件的获取方式包括:根据预先设定的路径获取。
8.根据权利要求5所述的网络引擎启动方法,其特征在于,所述通过向图形缓冲区管理模块申请的方式获取图形缓冲区的步骤,以及所述显示过渡图像所包含的其他步骤,分别在不同的线程中实施。
9.根据权利要求1所述的网络引擎启动方法,其特征在于,所述显示过渡图像包括:
通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
按照预设的颜色方案向所述图形缓冲区中写入数据,以显示对应于所述颜色方案的过渡图像。
10.根据权利要求1所述的网络引擎启动方法,其特征在于,所述预设条件包括:所述过渡图像显示完毕。
11.根据权利要求10所述的网络引擎启动方法,其特征在于,所述网络引擎在下载资源以及渲染布局的过程中,还执行下述操作:
根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述预设条件包括:
所述过渡图像显示完毕、且所述可绘制区域的尺寸满足首屏要求;
所述将已布局好的页面内容绘制到所述图形缓冲区中,包括:将已布局好的首屏页面内容绘制到所述图形缓冲区中。
12.根据权利要求1所述的网络引擎启动方法,其特征在于,所述网络引擎在下载资源以及渲染布局的过程中,还执行下述操作:
根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述预设条件包括:所述可绘制区域的尺寸满足首屏要求;
所述将已布局好的页面内容绘制到所述图形缓冲区中,包括:将已布局好的首屏页面内容绘制到所述图形缓冲区中。
13.根据权利要求1所述的网络引擎启动方法,其特征在于,所述网络引擎渲染布局的过程,是分层进行的;
所述将已布局好的页面内容绘制到所述图形缓冲区中,包括:将已分层布局好的页面内容合成并绘制到所述图形缓冲区中。
14.一种网络引擎启动装置,其特征在于,包括:
过渡图像显示单元,用于显示过渡图像;
网络引擎启动单元,用于启动网络引擎,显示页面内容;其中,所述网络引擎在显示页面内容时,复用过渡图像显示单元所使用的图形缓冲区;
所述网络引擎启动单元包括:
渲染布局子单元,用于网络引擎下载资源以及渲染布局;
条件判断子单元,用于在渲染布局子单元工作期间,判断是否满足预设条件;
图形缓冲区获取子单元,用于当所述条件判断子单元的输出为是时,获取所述过渡图像显示单元所使用的图形缓冲区;
布局内容绘制子单元,用于将已布局好的页面内容绘制到所述图形缓冲区中。
15.根据权利要求14所述的网络引擎启动装置,其特征在于,所述过渡图像显示单元,具体用于采用动画方式显示过渡图像。
16.根据权利要求14所述的网络引擎启动装置,其特征在于,所述过渡图像显示单元和所述网络引擎启动单元,分别用于采用不同的线程异步实现各自的功能。
17.根据权利要求14所述的网络引擎启动装置,其特征在于,所述过渡图像显示单元包括:
文件获取子单元,用于获取过渡图像文件;
图形缓冲区申请子单元,用于通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
解码子单元,用于读取所述文件获取子单元所获取的过渡图像文件并执行解码操作;
第一图形缓冲区写入子单元,用于将所述解码子单元得到的数据写入所述图形缓冲区中,以显示过渡图像。
18.根据权利要求17所述的网络引擎启动装置,其特征在于,所述文件获取子单元具体用于,根据Web App的配置文件中指定的路径获取过渡图像文件。
19.根据权利要求17所述的网络引擎启动装置,其特征在于,所述文件获取子单元具体用于,根据预先设定的路径获取过渡图像文件。
20.根据权利要求17所述的网络引擎启动装置,其特征在于,所述图形缓冲区申请子单元,以及所述过渡图像显示单元中的其他子单元,分别采用不同的线程实现各自的功能。
21.根据权利要求14所述的网络引擎启动装置,其特征在于,所述过渡图像显示单元包括:
图形缓冲区申请子单元,用于通过向图形缓冲区管理模块申请的方式,获取图形缓冲区;
第二图像缓冲区写入子单元,用于按照预设的颜色方案向所述图形缓冲区中写入数据,以显示对应于所述颜色方案的过渡图像。
22.根据权利要求14所述的网络引擎启动装置,其特征在于,所述条件判断子单元所采用的预设条件为:所述过渡图像显示单元完成过渡图像的显示。
23.根据权利要求22所述的网络引擎启动装置,其特征在于,所述网络引擎启动单元还包括:
可绘制区域计算子单元,用于根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述条件判断子单元所采用的预设条件为:所述过渡图像显示单元完成过渡图像的显示、且所述可绘制区域计算子单元计算的可绘制区域的尺寸满足首屏要求;
所述布局内容绘制子单元,具体用于将已布局好的首屏页面内容绘制到所述图形缓冲区获取子单元获取的图形缓冲区中。
24.根据权利要求14所述的网络引擎启动装置,其特征在于,所述网络引擎启动单元还包括:
可绘制区域计算子单元,用于根据已布局好的页面内容的位置信息,计算可绘制区域的尺寸;
所述条件判断子单元所采用的预设条件为:所述可绘制区域计算子单元计算的可绘制区域的尺寸满足首屏要求;
所述布局内容绘制子单元,具体用于将已布局好的首屏页面内容绘制到所述图形缓冲区获取子单元获取的图形缓冲区中。
25.根据权利要求14所述的网络引擎启动装置,其特征在于,所述渲染布局子单元,具体用于网络引擎下载资源以及分层进行渲染布局;
所述布局内容绘制子单元,具体用于将已分层布局好的页面内容合成并绘制到所述图形缓冲区获取子单元获取的图形缓冲区中。
CN201610134803.5A 2016-03-09 2016-03-09 网络引擎启动方法及装置 Active CN107179920B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610134803.5A CN107179920B (zh) 2016-03-09 2016-03-09 网络引擎启动方法及装置
PCT/CN2017/074722 WO2017152776A1 (zh) 2016-03-09 2017-02-24 网络引擎启动方法及装置
US16/124,023 US20190080017A1 (en) 2016-03-09 2018-09-06 Method, system, and device that invokes a web engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610134803.5A CN107179920B (zh) 2016-03-09 2016-03-09 网络引擎启动方法及装置

Publications (2)

Publication Number Publication Date
CN107179920A CN107179920A (zh) 2017-09-19
CN107179920B true CN107179920B (zh) 2021-06-04

Family

ID=59790021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610134803.5A Active CN107179920B (zh) 2016-03-09 2016-03-09 网络引擎启动方法及装置

Country Status (3)

Country Link
US (1) US20190080017A1 (zh)
CN (1) CN107179920B (zh)
WO (1) WO2017152776A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766532A (zh) * 2017-10-27 2018-03-06 深圳市行云易通科技有限公司 一种前端Node.js自动化正静态方法
CN110908724B (zh) * 2019-12-03 2024-06-07 深圳市迅雷网络技术有限公司 一种Android App启动方法及相关组件
CN111275607B (zh) * 2020-01-17 2022-05-24 腾讯科技(深圳)有限公司 界面显示方法、装置、计算机设备及存储介质
CN113157175B (zh) * 2020-01-22 2024-07-26 优酷文化科技(北京)有限公司 特效引擎,使用其的交互特效生成方法和用户交互方法
WO2022081859A1 (en) 2020-10-14 2022-04-21 VIDAA USA, Inc. Page loading method and display apparatus
CN112487322B (zh) * 2020-12-16 2024-05-28 Vidaa美国公司 一种第三方应用Loading页面的加载方法及显示设备
CN113961284B (zh) * 2021-09-26 2024-09-03 中国船舶集团有限公司第七一六研究所 适用于数据驱动的显示系统的显示信息一致性实现方法
CN117648137A (zh) * 2022-01-10 2024-03-05 荣耀终端有限公司 应用启动方法、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034467A (zh) * 2012-12-06 2013-04-10 北京小米科技有限责任公司 图像显示方法、装置及移动终端
CN103257897A (zh) * 2013-06-03 2013-08-21 贝壳网际(北京)安全技术有限公司 移动终端浏览器的启动方法、装置及移动终端
CN103294688A (zh) * 2012-02-24 2013-09-11 宇龙计算机通信科技(深圳)有限公司 网页浏览方法及系统
CN105204907A (zh) * 2015-09-28 2015-12-30 北京奇虎科技有限公司 浏览器启动方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101136815A (zh) * 2006-08-31 2008-03-05 腾讯科技(深圳)有限公司 在网络直播缓冲过程中播放广告的方法及系统
CN103064925B (zh) * 2012-12-21 2016-04-13 广东欧珀移动通信有限公司 定时处理网页的方法装置
KR102122454B1 (ko) * 2013-10-02 2020-06-12 삼성전자주식회사 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
CN103618936A (zh) * 2013-12-16 2014-03-05 乐视致新电子科技(天津)有限公司 智能电视及其浏览器中链接页面的预加载方法和装置
CN105205157B (zh) * 2015-09-28 2019-12-13 北京奇艺世纪科技有限公司 一种页面加载的方法、装置及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294688A (zh) * 2012-02-24 2013-09-11 宇龙计算机通信科技(深圳)有限公司 网页浏览方法及系统
CN103034467A (zh) * 2012-12-06 2013-04-10 北京小米科技有限责任公司 图像显示方法、装置及移动终端
CN103257897A (zh) * 2013-06-03 2013-08-21 贝壳网际(北京)安全技术有限公司 移动终端浏览器的启动方法、装置及移动终端
CN105204907A (zh) * 2015-09-28 2015-12-30 北京奇虎科技有限公司 浏览器启动方法和装置

Also Published As

Publication number Publication date
US20190080017A1 (en) 2019-03-14
WO2017152776A1 (zh) 2017-09-14
CN107179920A (zh) 2017-09-19

Similar Documents

Publication Publication Date Title
CN107179920B (zh) 网络引擎启动方法及装置
CN110187913B (zh) 小程序的发布、运行方法和装置
KR102278932B1 (ko) 애플리케이션 프로그램 처리 방법 및 단말 디바이스
CN108279966B (zh) 网页截图方法、装置、终端及存储介质
EP2805258B1 (en) Low resolution placeholder content for document navigation
KR102307163B1 (ko) 크로스 플랫폼 렌더링 엔진
JP6185843B2 (ja) 複数のアプリケーション又はプロセスに渡るアニメーション調整
WO2018133663A1 (zh) 页面生成方法、终端和存储介质
JP5171968B2 (ja) ウェブベースコンテンツのレンダリングの加速
US20150339840A1 (en) Dynamic Splitting of Content
JP6678773B2 (ja) 自動再生コンテンツのクリックトゥプレイコンテンツへのサーバに基づく変換
EP2924590A1 (en) Page rendering method and apparatus
US7900132B2 (en) Method and system to process an electronic form
US20230367953A1 (en) Display rendering method and system
CN111339458B (zh) 页面呈现方法和装置
KR20150079867A (ko) Html5-프로토콜 기반 웹페이지 표시 방법 및 장치
CN104809123B (zh) 一种网页渲染方法及系统
US9886465B2 (en) System and method for rendering of hierarchical data structures
CN108228121B (zh) 一种浏览器分屏的方法、装置及移动终端
CN106874023B (zh) 动态页面加载方法和装置
US20130036196A1 (en) Method and system for publishing template-based content
JP6975339B2 (ja) デジタルコンポーネントのバックドロップレンダリング
US20230342018A1 (en) Dynamic element control method, electronic device, and computer readable storage medium
CN107621951B (zh) 一种视图层级优化的方法及装置
EP3008697B1 (en) Coalescing graphics operations

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: 20201130

Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China

Applicant after: Zebra smart travel network (Hong Kong) Limited

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant