CN108572818A - 一种用户界面渲染方法及装置 - Google Patents

一种用户界面渲染方法及装置 Download PDF

Info

Publication number
CN108572818A
CN108572818A CN201710135534.9A CN201710135534A CN108572818A CN 108572818 A CN108572818 A CN 108572818A CN 201710135534 A CN201710135534 A CN 201710135534A CN 108572818 A CN108572818 A CN 108572818A
Authority
CN
China
Prior art keywords
language
interface
event
rendering engine
thread
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.)
Granted
Application number
CN201710135534.9A
Other languages
English (en)
Other versions
CN108572818B (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
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710135534.9A priority Critical patent/CN108572818B/zh
Priority to TW106137747A priority patent/TW201833792A/zh
Priority to PCT/CN2018/077186 priority patent/WO2018161812A1/zh
Publication of CN108572818A publication Critical patent/CN108572818A/zh
Priority to US16/559,047 priority patent/US20200057660A1/en
Application granted granted Critical
Publication of CN108572818B publication Critical patent/CN108572818B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Landscapes

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

Abstract

本申请公开了一种用户界面渲染方法及装置。本申请中,动态语言应用运行平台中预加载有渲染引擎,该方法包括:第一线程获取待处理的用户界面渲染事件,所述第一线程为所述动态语言应用运行平台中的线程;第一线程获取所述事件对应的用于调用渲染引擎的接口,根据获取到的用于调用渲染引擎的接口调用所述渲染引擎提供的相应用户界面渲染功能。采用本申请可实现动态语言应用运行平台与渲染引擎的融合。

Description

一种用户界面渲染方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种用户界面渲染方法及装置。
背景技术
JavaScript是一种动态语言,因其高效、动态、易用等特点越来越受到开发者的欢迎。Node.js是JavaScript运行环境(runtime)或称运行平台,提供了多种系统级的应用程序编程接口(Application Programming Interface,API),用于方便地搭建响应速度快、易于扩展的应用程序。
JavaScript程序的运行依赖JavaScript解释器,在前端开发中,浏览器提供了这样的环境。而Node.js提供了一套脱离浏览器的JavaScript运行环境,主要应用于后台服务器开发。
渲染引擎用于实现对用户界面的渲染。如何在Node.js中集成用户界面渲染能力,是目前业界需要解决的问题。
发明内容
本申请实施例提供一种用户界面渲染方法及装置。
本申请实施例提供的用户界面渲染方法中,动态语言应用运行平台中预加载有渲染引擎,所述方法包括:
第一线程获取待处理的用户界面渲染事件,所述第一线程为所述动态语言应用运行平台中的线程;
所述第一线程根据所述事件对应的用于调用渲染引擎的接口,调用所述渲染引擎提供的相应用户界面渲染功能。
本申请实施例提供的用户界面渲染装置,包括:
获取单元,用于获取待处理的用户界面渲染事件,所述第一线程为动态语言应用运行平台中的线程;其中,所述动态语言应用运行平台中预加载有渲染引擎;
第一处理单元,用于根据所述事件对应的用于调用渲染引擎的接口,调用所述渲染引擎提供的相应用户界面渲染功能。
本申请实施例提供的一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行上述方法。
本申请实施例提供的通信设备,包括:一个或多个处理器;以及,一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行上述方法。
本申请的上述实施例中,动态语言应用运行平台中预加载有渲染引擎,该平台中的第一线程获取到待处理的用户界面渲染事件后,可根据所述事件对应的用于调用渲染引擎的接口,调用所述渲染引擎提供的相应用户界面渲染功能,从而可在该平台中基于渲染引擎实现用户界面渲染,实现了在该平台中集成用户界面渲染能力。
附图说明
本申请的实施例通过示例而非限制的方式示出在所附附图中,类似的附图标记表示类似的元素。
图1根据一些实施例示例性地示出了操作系统架构100;
图2根据一些实施例示例性地示出了预加载有渲染引擎的Node.js的示意图;
图3根据一些实施例示例性地示出了渲染引擎的接口映射关系示意图;
图4根据一些实施例示例性地示出了预加载渲染引擎后Node.js资源的示意图;
图5根据一些实施例示例性地示出了渲染引擎的结构示意图;
图6根据一些实施例示例性地示出了Node.js预加载示意图;
图7根据一些实施例示例性地示出了用户界面渲染流程示意图;
图8为根据一些实施例示例性地示出了事件循环机制示意图;
图9根据一些实施例示例性地示出了用户界面渲染装置的结构示意图;
图10根据一些实施例示例性地示出了一种装置示意图。
具体实施方式
虽然本申请的概念易于进行各种修改和替代形式,但是其具体实施例已经通过附图中的示例示出并且将在本文中详细描述。然而,应当理解,没有意图将本申请的概念限制为所公开的特定形式,而是相反,意图是覆盖与本申请以及所附权利要求一致的所有修改、等同物和替代物。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用,指示所描述的实施例可包括特定特征、结构或特性,但是每个实施例可以或可以不必包括特定特征、结构或特性。此外,这样的短语不一定指的是相同的实施例。进一步地,认为在本领域技术人员的知识范围内,当结合实施例描述特定特征、结构或特性时,结合无论是否明确描述的其它实施例影响这样的特征,结构或特性。另外,应当理解,以“A,B和C中的至少一个”的形式包括在列表中的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。类似地,以“A,B或C中的至少一个”的形式列出的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C)或(A,B和C)。
在一些情况下,所公开的实施例可以在硬件、固件、软件或其任何组合中实现。所公开的实施例还可以被实现为由一个或多个暂时性或非暂时性机器可读(例如,计算机可读)存储介质携带或存储的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器可读形式(例如,易失性或非易失性存储器、介质盘或其他介质)存储或传输信息的任何存储设备,机制或其他物理结构的设备)。
在附图中,一些结构或方法特征可以以特定布置和/或顺序示出。然而,应当理解,可能不需要这样的具体布置和/或排序。相反,在一些实施例中,这些特征可以以与说明性附图中所示不同的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示这种特征在所有实施例中都是需要的,并且在一些实施例中可以不包括或可以与其他特征组合。
操作系统用于向用户应用提供操作系统的基础能力,可基于动态语言应用运行平台实现,从而为动态语言应用提供运行环境。其中,Node.js即为JavaScript的运行环境或运行平台。动态语言应用运行平台中预加载有多种模块,称为公共模,用于提供特定功能,比如系统服务功能。
其中,动态语言是计算机编程语言中的一个语言类别,是一类在运行时可以动态地改变类型、结构的语言,在运行时函数和属性可以被增加、修改和删除。例如JavaScript、Python、Ruby等都属于动态语言。动态语言不需要编译即可运行,在运行时需要运行环境的支撑,这个环境叫做运行时环境,它包含动态语言运行所需要的所有要素,例如Java虚拟机、JavaScript引擎等。
以云操作系统(云OS)中的Host系统为例,它可基于Node.js实现。Node.js是JavaScript的运行环境,是建立在Chrome上的JavaScript引擎的Web应用程序框架,也就是说,操作系统基于Node.js向用户应用提供操作系统的基础能力。Node.js中包括多种模块,称为公共模块,这些模块可通过将用于实现特定功能的代码(比如实现操作系统级服务功能的代码)进行封装得到,比如可封装为组件形式,例如这些模块中可包括实现全球定位系统(Global Positioning System,简称GPS)定位功能的组件、实现电源管理功能的组件等。这些模块的接口被暴露给应用层,应用层中的应用程序可通过调用这些模块的接口,通过JavaScript引擎解析模块中的代码,执行这些模块提供的方法,从而实现这些模块提供的功能。
目前,后台服务器应用一般运行于Node.js。后台服务器应用的用户界面使用渲染引擎进行渲染。而渲染引擎大多专注于图形界面渲染,忽略了编程所需的其他公共模块的集成。使用这样的渲染引擎进行用户界面开发,需要编写或集成大量的公共模块,效率低下。Node.js虽然提供了丰富的JavaScript API,开发者可以利用它提供的模块快速开发功能,但缺失了用户界面渲染能力。
对此,本申请实施例提供了一种将渲染引擎与Node.js相融合的方案。下面结合附图对本申请实施例进行详细描述。
图1示例性地示出了一种操作系统架构100。架构100包括应用层10、应用框架层20和操作系统层30。应用层10中包括一个或多个应用。应用框架层20包括动态语言应用运行平台(比如Node.js)。操作系统层30主要用于提供操作系统级别的代码库以及基本的系统服务,比如提供的系统服务可包括设备驱动服务、事件管理服务等。
本申请实施例基于上述架构,使渲染引擎可以访问到如Node.js等的动态语言应用运行平台提供的能力。下面结合附图对本申请实施例进行详细描述。
动态语言应用运行平台启动时可预加载各种公共模块,并可进一步地将渲染引擎作为动态语言应用运行平台的标准模块进行预加载。
以动态语言应用运行平台为Node.js为例,Node.js启动过程中,Node.js进程被创建。Node.js进程预加载各种能力,这里所说的“能力”也可称为资源,可包括前述所描述的用于实现特定功能的模块(比如组件),还可以包括一些配置信息和/或资源等,比如上下文、事件队列等。Node.js所预加载的能力中至少包括渲染引擎,进一步还可包括Node.js提供的能力。其中,Node.js提供的能力可包括:Node.js中的公共模块(比如用于提供特定功能或服务的组件)和/或JavaScript运行环境相关信息。Node.js中的公共模块可通过对用于实现特定功能的JavaScript代码封装得到。每个模块均具有接口(比如API),可提供给应用层供应用程序调用。JavaScript运行环境相关信息可包括但不限于JavaScript引擎的上下文、事件循环相关配置中的一种或多种。其中,上下文用于描述引擎内部的各种对象、状态和功能。JavaScript引擎的上下文中可包括由Node.js进程所预加载的模块的接口(如API)。事件循环相关配置具体可包括Node.js的事件队列的配置,比如事件队列所在的内存区域位置、队列大小等。
在一些实施例中,Node.js进程可将预加载的能力(比如渲染引擎)封装为Node.js中的标准模块,作为Node.js的一个标准模块预加载的Node.js中,图2示例性地示出了预加载有渲染引擎的Node.js的示意图。
在一些实施例中,渲染引擎可由动态语言(如JavaScript语言)实现,即,渲染引擎中包含的函数由动态语言(如JavaScript语言)编写。在另外一些实施例中,渲染引擎的实现可分为两部分,其中为了性能考虑和多线程的利用,部分采用c/c++等自然语言实现,而另外的部分则采用动态语言,比如JavaScript语言实现。当然,渲染引擎也可以全部由c/c++等自然语言实现。
对于全部或部分由c/c++等自然语言实现的渲染引擎,渲染引擎可提供该自然语言的API(该API用于调用渲染引擎提供的基于该自然语言实现的用户界面渲染功能,即,调用渲染引擎中包含的该自然语言编写的函数),而动态语言应用运行平台支持动态语言,比如Node.js支持JavaScript语言,因此需要将渲染引擎提供的自然语言API(如c/c++API)映射为动态语言应用运行平台(如Node.js)支持的动态语言API(如JavaScript API),并将映射得到的API提供给应用层,动态语言应用运行平台(如Node.js)中保存该API的映射关系。图3示例性地示出了渲染引擎的API映射关系示意图。其中,渲染引擎中可包括多种组件,比如Window system组件(窗口系统组件)、UI Elements组件(用户界面部件组件)、Layout组件(布局组件)、Event Handling组件(事件处理组件)等,这些符合c/c++标准的组件的API被一一映射为对应的符合JavaScript标准的API。
对于全部由动态语言(如JavaScript语言)实现的渲染引擎,由于渲染引擎可提供动态语言API(该API用于调用渲染引擎提供的基于该自然语言实现的用户界面渲染功能,即,调用渲染引擎中包含的该自然语言编写的函数),而动态语言运行平台(如Node.js)支持动态语言,比如JavaScript语言,因此无需进行API映射。
在一些实施例中,进一步地,动态语言应用运行平台中预加载的能力还可包括但不限于以下中的一种或多种组合:
-操作系统提供的能力
操作系统提供的能力可包括:操作系统层提供的系统服务等。操作系统层中可包括用于提供系统服务的模块,这些模块可由用于实现特定能力的代码封装得到。每个模块均具有接口(比如API)。本申请实施例中,可通过将操作系统层中的模块的API添加到动态语言引擎(如JavaScript引擎)的上下文中,实现对操作系统能力的预加载。
-用户自定义的能力
用户自定义的能力,即用户自定义的用于实现特定功能的代码,可被封装为模块,每个模块均具有接口(如API)。本申请实施例中,可通过将用户自定义的模块的API添加到动态语言引擎(如JavaScript引擎)的上下文中,实现对用户自定义能力的预加载。
图4以动态语言应用运行平台为Node.js为例,示例性地示出了预加载渲染引擎后应用进程中的相关资源的示意图。如图所示,应用进程中包括Node.js线程,Node.js线程基于Node.js的事件循环机制进行用户界面渲染等事件的处理。Node.js线程可基于渲染引擎实现用户界面渲染。作为一个例子,Node.js线程可通过调用渲染引擎提供的接口实现应用程序用户界面渲染,通过调用公共模块1提供的接口实现网络连接功能,通过调用公共模块2提供的接口实现设备能力查询功能,通过调用公共模块3提供的接口实现事件管理功能。
图5示例性地示出了渲染引擎的结构示意图。渲染引擎的实现可分为两部分。为了性能考虑和多线程的利用等,一部分可使用自然语言实现(如c/c++等语言),另一部分使用动态语言实现(如JavaScript)。以自然语言为c/c++、动态语言为JavaScript为例,如果Node.js线程需要调用渲染引擎中由JavaScript实现的部分,则基于JavaScript API调用该部分中对应的函数;如果Node.js线程需要调用渲染线程中由c/c++实现的部分,则向JavaScript虚拟机发送调用指令,该调用指令中包括JavaScript API,JavaScript虚拟机将该JavaScript API映射为对应的c/c++API,并基于映射得到的c/c++API调用渲染引擎中由c/c++的实现部分中的相应函数,以实现用户界面渲染功能。
图6以Node.js为例,示例性地示出了本申请实施例提供的Node.js资源加载过程。该过程示例性地描述了Node.js启动过程。如图所示,在S610中,Node.js进程启动(比如启动JavaScript应用程序时则启动对应的Node.js进程)。在S611~S613中,Node.js进程执行初始化过程,在该过程中,Node.js进程预加载渲染引擎以及公共模块,所述公共模块可包括网络模块、系统模块等。具体预加载过程可参见前述实施例的描述。
图7示例性地示出了本申请实施例提供的用户界面渲染流程。如图所示,在S701中,第一线程获取待处理的用户界面渲染事件;在S702中,第一线程根据所述事件对应的用于调用渲染引擎的接口,调用所述渲染引擎提供的相应用户界面渲染功能。其中,第一线程可以是Node.js线程。作为一个示例,用户界面渲染事件可在以下情况下生成:由用户操作行为引起的需要刷新用户界面的情况(比如,用户通过触摸操作进行应用程序的切换,因此需要刷新屏幕显示内容,以显示切换到的目标应用程序的用户界面);再例如,用户点击用户界面中的一个功能按键来打开一个页面时,可生成用户界面渲染事件。
进一步地,如果第一线程对应的应用还基于公共模块接口调用了公共模块提供的功能,则在S703中,第一线程根据所述事件对应的用于调用公共模块的接口,调用所述公共模块提供的相应公共功能。
可选地,如前所述,渲染引擎提供的接口包括自然语言接口,该自然语言接口被映射为动态语言接口,该自然语言接口用于调用渲染引擎中基于该自然语言提供的用户界面渲染功能,动态语言为Node.js支持的动态语言,则在S702中,Node.js线程可获取所述事件对应的用于调用渲染引擎的动态语言接口,将获取到的动态语言接口映射为对应的自然语言接口,根据映射得到的自然语言接口调用渲染引擎提供的相应用户界面渲染功能。在一些例子中,具体过程可参见图5所示。
Node.js采用事件循环(Event loop)机制。本申请实施例中,渲染引擎被预加载到Node.js中,因此渲染引擎的事件与Node.js的事件可基于Node.js的事件队列进行事件循环。在没有事件发生的情况下,事件循环处于等待状态并阻塞,当Node.js或者渲染引擎有事件发生时,会将事件循环唤醒。比如,当渲染引擎有事件发生时,可通过异步方式唤醒事件循环,该渲染引擎的事件被存储于事件队列。该事件队列通常采用先进先出的机制。
图8以Node.js为例,示例性地示出了本申请实施例的事件循环机制。如图所示,Node.js的事件和渲染引擎的事件按照发生的先后顺序被存储在事件队列中。Node.js线程从事件队列中读取事件进行响应时,如果当前读取到的是用户界面渲染事件,则根据该用户界面渲染事件对应的用于调用渲染引擎的接口,调用渲染线程中相应的功能,以实现用户界面渲染功能,如果当前读取的是其他Node.js事件,则根据读取到的Node.js事件所对应的用于调用公共模块的接口,调用相应的功能模块,从而实现了将渲染引擎中的事件处理融入到了Node的事件循环中。
可选地,可采用异步处理机制对事件进行处理。具体地,可向Node.js线程注册回调函数,该回调函数用于在有用户界面渲染事件发生时通知Node.js线程。这样,当有用户界面渲染事件进入队列时,可通过该回调函数通知Node.js进程,Node.js进程可在接收到该回调函数的通知后,从Node.js事件队列中获取待处理的用户界面渲染事件。
可选地,可由另外的线程对Node.js事件队列进行管理。为描述方便,此处将用于管理Node.js事件队列的线程称为事件线程。事件线程可与操作系统对接,从操作系统接收操作系统相关事件,并将该操作系统相关事件存储在Node.js事件队列。其中,所述操作系统相关事件可包括但不限于:按键事件(key event)、触摸事件(touch event)、渲染事件(render event)。
通过以上描述可以看出,本申请的上述实施例中,Node.js中包括公共模块和渲染引擎,Node.js线程获取到待处理的用户界面渲染事件后,一方面可获取所述事件对应的用于调用渲染引擎的接口,根据获取到的用于调用渲染引擎的接口调用所述渲染引擎提供的相应用户界面渲染功能,另一方面可获取所述事件对应的用于调用公共模块的接口,根据获取到的用于调用公共模块的接口调用所述公共模块提供的相应公共功能。由此可见,由于Node.js中包括渲染引擎,因此一方面可在Node.js中基于渲染引擎实现用户界面渲染,另一方面,由于Node.js中还包括公共模块,因此第一线程还可在Node.js中基于公共模块实现公共功能,从而在Node.js中集成了用户界面渲染能力,为开发者进行程序开发提供了方便,即开发者仅需开发可在Node.js中运行的应用程序,该应用程序即可使用Node.js中的公共模块提供的公共功能,还可以使用Node.js中的渲染引擎提供的用户界面渲染功能。
本申请的上述实施例可应用于移动终端,比如手机、智能穿戴设备、车载设备、PDA等。以应用于基于云操作系统的手机为例,采用本申请实施例,可由Node.js线程基于渲染引擎实现用户界面渲染,从而使得用户界面渲染操作可使用Node.js所提供的能力,实现了Node.js与渲染引擎的融合。
基于相同的技术构思,本申请实施例还提供了一种用户界面渲染装置,可实现前述实施例描述的用户界面渲染流程。
图9示例性地示出了本申请实施例提供的用户界面渲染装置的结构示意图。该装置可包括:获取单元901、第一处理单元902,可选地,还可包括第二处理单元903,其中:
获取单元901,用于获取待处理的用户界面渲染事件,所述第一线程为动态语言应用运行平台中的线程;其中,所述动态语言应用运行平台中预加载有渲染引擎;
第一处理单元902,用于获取所述事件对应的用于调用渲染引擎的接口,根据获取到的用于调用渲染引擎的接口调用所述渲染引擎提供的相应用户界面渲染功能。
可选地,所述动态语言应用运行平台中还预加载有公共模块,第二处理单元903用于获取所述事件对应的用于调用公共模块的接口,根据获取到的用于调用公共模块的接口调用所述公共模块提供的相应公共功能。
可选地,所述渲染引擎提供的接口包括第一语言接口,所述第一语言接口被映射为第二语言接口,所述第一语言接口用于调用所述渲染引擎中基于所述第一语言提供的用户界面渲染功能,所述第二语言为所述动态语言应用运行平台支持的动态语言。第一处理单元902具体用于:获取所述事件对应的用于调用渲染引擎的第二语言接口,将获取到的第二语言接口映射为对应的第一语言接口,根据映射得到的第一语言接口调用所述渲染引擎提供的相应用户界面渲染功能。
可选地,第一处理单元902具体用于:向第二语言虚拟机发送调用指令,所述调用指令中包括用于调用渲染引擎的第二语言接口,所述调用指令用于触发所述第二语言虚拟机将所述第二语言接口映射为对应的第一语言接口,并基于映射得到的第一语言接口调用所述渲染引擎提供的相应用户界面渲染功能。
可选地,获取单元901具体用于:在接收到回调函数的通知后,从所述动态语言应用运行平台事件队列中获取待处理的用户界面渲染事件;其中,所述回调函数用于在有用户界面渲染事件进入所述事件队列时通知所述第一线程。
可选地,所述动态语言应用运行平台包括Node.js,所述第二语言包括JavaScript语言。
基于相同的技术构思,本申请实施例还提供了一种装置1000,该装置1000可实现前述实施例描述的流程。
图10示例性地示出了根据各种实施例的示例装置1000。装置1000可包括一个或多个处理器1002,系统控制逻辑1001耦合于至少一个处理器1002,非易失性存储器(non-volatile memory,NMV)/存储器1004耦合于系统控制逻辑1001,网络接口1006耦合于系统控制逻辑1001。
处理器1002可包括一个或多个单核处理器或多核处理器。处理器1002可包括任何一般用途处理器或专用处理器(如图像处理器、应用处理器基带处理器等)的组合。
一个实施例中的系统控制逻辑1001,可包括任何适当的接口控制器,以提供到处理器1002中的至少一个的任何合适的接口,和/或提供到与系统控制逻辑1001通信的任何合适的设备或组件的任何合适的接口。
一个实施例中的系统控制逻辑1001,可包括一个或多个内存控制器,以提供到系统内存1003的接口。系统内存1003用来加载以及存储数据和/或指令。例如,对应装置1000,在一个实施例中,系统内存1003可包括任何合适的易失性存储器。
NVM/存储器1004可包括一个或多个有形的非暂时的计算机可读介质,用于存储数据和/或指令。例如,NVM/存储器1004可包括任何合适的非易失性存储装置,如一个或多个硬盘(hard disk device,HDD),一个或多个光盘(compact disk,CD),和/或一个或多个数字通用盘(digital versatile disk,DVD)。
NVM/存储器1004可包括存储资源,该存储资源物理上是该系统所安装的或者可以被访问的设备的一部分,但不一定是设备的一部分。例如,NVM/存储器1004可经由网络接口1006被网络访问。
系统内存1003以及NVM/存储器1004可分别包括临时的或持久的指令1010的副本。指令1010可包括当由处理器1002中的至少一个执行时导致装置1000实现6描述的方法之一或组合的指令。各实施例中,指令1010或硬件、固件,和/或软件组件可另外地/可替换地被置于系统控制逻辑1001,网络接口1006和/或处理器1002。
网络接口1006可包括一个接收器来为装置1000提供无线接口来与一个或多个网络和/或任何合适的设备进行通信。网络接口1006可包括任何合适的硬件和/或固件。网络接口1006可包括多个天线来提供多输入多输出无线接口。在一个实施例中,网络接口1006可包括一个网络适配器、一个无线网络适配器、一个电话调制解调器,和/或无线调制解调器。
在一个实施例中,处理器1002中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装以形成系统级封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上以形成系统芯片。
装置1000可进一步包括输入/输出装置1005。输入/输出装置1005可包括用户接口旨在使用户与装置1000进行交互,可包括外围组件接口,其被设计为使得外围组件能够与系统交互,和/或,可包括传感器,旨在确定环境条件和/或有关装置1000的位置信息。

Claims (17)

1.一种用户界面渲染方法,其特征在于,动态语言应用运行平台中预加载有渲染引擎,所述方法包括:
第一线程获取待处理的用户界面渲染事件,所述第一线程为所述动态语言应用运行平台中的线程;
所述第一线程根据所述事件对应的用于调用渲染引擎的接口,调用所述渲染引擎提供的相应用户界面渲染功能。
2.如权利要求1所述的方法,其特征在于,所述动态语言应用运行平台中还预加载有公共模块,所述方法还包括:
所述第一线程根据所述事件对应的用于调用公共模块的接口,调用所述公共模块提供的相应公共功能。
3.如权利要求2所述的方法,其特征在于,所述公共模块包括以下模块中的一种或多种:
网络模块,用于提供网络连接功能;
系统模块,用于提供系统服务功能。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述渲染引擎提供的接口包括第一语言接口,所述第一语言接口被映射为第二语言接口,所述第一语言接口用于调用所述渲染引擎中基于所述第一语言提供的用户界面渲染功能,所述第二语言为所述动态语言应用运行平台支持的动态语言;
所述第一线程根据所述事件对应的用于调用渲染引擎的接口,调用所述渲染引擎提供的相应用户界面渲染功能,包括:
所述第一线程获取所述事件对应的用于调用渲染引擎的第二语言接口,将获取到的第二语言接口映射为对应的第一语言接口,根据映射得到的第一语言接口调用所述渲染引擎提供的相应用户界面渲染功能。
5.如权利要求4所述的方法,其特征在于,根据映射得到的第一语言接口调用所述渲染引擎提供的相应用户界面渲染功能,包括:
所述第一线程向第二语言虚拟机发送调用指令,所述调用指令中包括用于调用渲染引擎的第二语言接口;
所述第二语言虚拟机将所述第二语言接口映射为对应的第一语言接口,并基于映射得到的第一语言接口调用所述渲染引擎提供的相应用户界面渲染功能。
6.如权利要求1至3中任一项所述的方法,其特征在于,第一线程获取待处理的用户界面渲染事件,包括:
所述第一线程在接收到回调函数的通知后,从所述动态语言应用运行平台事件队列中获取待处理的用户界面渲染事件;其中,所述回调函数用于在有用户界面渲染事件进入所述事件队列时通知所述第一线程。
7.如权利要求6所述的方法,其特征在于,还包括:
第二线程从操作系统接收操作系统相关事件,并将所述操作系统相关事件存储在所述事件队列;其中,所述操作系统相关事件中包括用户界面渲染事件。
8.如权利要求1至3中任一项所述的方法,其特征在于,还包括:
所述动态语言应用运行平台启动时,将所述渲染引擎提供的第一语言接口映射为第二语言接口,并保存所述渲染引擎提供的第一语言接口与映射得到的第二语言接口之间的映射关系信息;
将接口映射后的渲染引擎加载到所述动态语言应用运行平台中。
9.如权利要求1至3中任一项所述的方法,其特征在于,所述动态语言应用运行平台包括Node.js,所述第二语言包括JavaScript语言。
10.一种用户界面渲染装置,其特征在于,包括:
获取单元,用于获取待处理的用户界面渲染事件,所述第一线程为动态语言应用运行平台中的线程;其中,所述动态语言应用运行平台中预加载有渲染引擎;
第一处理单元,用于根据所述事件对应的用于调用渲染引擎的接口,调用所述渲染引擎提供的相应用户界面渲染功能。
11.如权利要求10所述的装置,其特征在于,所述动态语言应用运行平台中还预加载有公共模块,所述装置还包括:
第二处理单元,用于获取所述事件对应的用于调用公共模块的接口,根据获取到的用于调用公共模块的接口调用所述公共模块提供的相应公共功能。
12.如权利要求10或11所述的装置,其特征在于,所述渲染引擎提供的接口包括第一语言接口,所述第一语言接口被映射为第二语言接口,所述第一语言接口用于调用所述渲染引擎中基于所述第一语言提供的用户界面渲染功能,所述第二语言为所述动态语言应用运行平台支持的动态语言;
所述第一处理单元具体用于:获取所述事件对应的用于调用渲染引擎的第二语言接口,将获取到的第二语言接口映射为对应的第一语言接口,根据映射得到的第一语言接口调用所述渲染引擎提供的相应用户界面渲染功能。
13.如权利要求12所述的装置,其特征在于,所述第一处理单元具体用于:
向第二语言虚拟机发送调用指令,所述调用指令中包括用于调用渲染引擎的第二语言接口,所述调用指令用于触发所述第二语言虚拟机将所述第二语言接口映射为对应的第一语言接口,并基于映射得到的第一语言接口调用所述渲染引擎提供的相应用户界面渲染功能。
14.如权利要求10或11所述的装置,其特征在于,所述获取单元具体用于:
在接收到回调函数的通知后,从所述动态语言应用运行平台事件队列中获取待处理的用户界面渲染事件;其中,所述回调函数用于在有用户界面渲染事件进入所述事件队列时通知所述第一线程。
15.如权利要求10或11所述的装置,其特征在于,所述动态语言应用运行平台包括Node.js,所述第二语言包括JavaScript语言。
16.一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行如权利要求1-9中任一项所述的方法。
17.一种通信设备,其特征在于,包括:
一个或多个处理器;以及
一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行如权利要求1至9中任一项所述的方法。
CN201710135534.9A 2017-03-08 2017-03-08 一种用户界面渲染方法及装置 Active CN108572818B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201710135534.9A CN108572818B (zh) 2017-03-08 2017-03-08 一种用户界面渲染方法及装置
TW106137747A TW201833792A (zh) 2017-03-08 2017-11-01 用戶介面渲染方法及裝置
PCT/CN2018/077186 WO2018161812A1 (zh) 2017-03-08 2018-02-26 一种用户界面渲染方法及装置
US16/559,047 US20200057660A1 (en) 2017-03-08 2019-09-03 Method and system for rendering user interfaces

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710135534.9A CN108572818B (zh) 2017-03-08 2017-03-08 一种用户界面渲染方法及装置

Publications (2)

Publication Number Publication Date
CN108572818A true CN108572818A (zh) 2018-09-25
CN108572818B CN108572818B (zh) 2021-07-23

Family

ID=63448871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710135534.9A Active CN108572818B (zh) 2017-03-08 2017-03-08 一种用户界面渲染方法及装置

Country Status (4)

Country Link
US (1) US20200057660A1 (zh)
CN (1) CN108572818B (zh)
TW (1) TW201833792A (zh)
WO (1) WO2018161812A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697060A (zh) * 2018-12-29 2019-04-30 广州华多网络科技有限公司 视频特效软件及其生成方法、装置、设备和存储介质
CN109739505A (zh) * 2019-01-08 2019-05-10 网易(杭州)网络有限公司 一种用户界面的处理方法和装置
CN110471709A (zh) * 2019-07-15 2019-11-19 北京字节跳动网络技术有限公司 一种加速网页打开速度的方法、装置、介质和电子设备
CN111158818A (zh) * 2019-12-24 2020-05-15 中国建设银行股份有限公司 一种页面渲染方法和装置
CN111381920A (zh) * 2020-02-17 2020-07-07 网易(杭州)网络有限公司 弹窗组件的显示方法、装置以及电子终端
CN111414150A (zh) * 2019-01-04 2020-07-14 厦门雅基软件有限公司 游戏引擎渲染方法、装置、电子设备及计算机存储介质
CN111694569A (zh) * 2019-03-15 2020-09-22 北京奇虎科技有限公司 一种小程序公共组件库的构建方法、装置和计算设备
CN113076152A (zh) * 2020-01-03 2021-07-06 腾讯科技(深圳)有限公司 渲染方法及装置、电子设备和计算机可读存储介质

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595228B (zh) 2018-05-10 2021-03-12 Oppo广东移动通信有限公司 应用程序预测模型建立方法、装置、存储介质及移动终端
CN108595227A (zh) 2018-05-10 2018-09-28 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN108614722B (zh) 2018-05-10 2020-09-08 上海瑾盛通信科技有限公司 应用程序预加载方法、装置、存储介质及终端
CN108710513B (zh) 2018-05-15 2020-07-21 Oppo广东移动通信有限公司 应用程序启动方法、装置、存储介质及终端
CN108762843B (zh) * 2018-05-29 2020-05-05 Oppo广东移动通信有限公司 应用程序的预加载方法、装置、存储介质及智能终端
CN108804157A (zh) 2018-06-05 2018-11-13 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及终端
CN111414296B (zh) * 2020-03-25 2023-04-07 北京字节跳动网络技术有限公司 信号监听方法、装置、计算机设备和存储介质
CN111581555B (zh) * 2020-04-27 2023-09-15 北京字节跳动网络技术有限公司 一种文档加载方法、装置、设备及存储介质
CN111740948B (zh) * 2020-05-12 2023-04-07 北京沃东天骏信息技术有限公司 数据包发布方法、动态更新方法、装置、设备及介质
CN111857658A (zh) * 2020-06-19 2020-10-30 北京字节跳动网络技术有限公司 一种渲染动态组件的方法、装置、介质和电子设备
CN112256421B (zh) * 2020-11-12 2024-06-18 Oppo广东移动通信有限公司 通信处理方法、装置、存储介质及电子设备
CN113778431B (zh) * 2021-02-07 2024-09-20 北京沃东天骏信息技术有限公司 小程序动态渲染方法、装置、设备、可读存储介质及产品
CN112835582A (zh) * 2021-03-10 2021-05-25 百度在线网络技术(北京)有限公司 基于容器引擎的渲染方法、装置、设备以及存储介质
CN114356324A (zh) * 2021-12-16 2022-04-15 阿里巴巴(中国)有限公司 界面处理方法、装置、设备和存储介质
CN114327446B (zh) * 2022-03-14 2022-06-07 恒生电子股份有限公司 一种小程序转换应用程序的处理方法及装置
CN114821002B (zh) * 2022-04-12 2024-09-03 支付宝(杭州)信息技术有限公司 基于ar的互动方法、装置及电子设备
CN114924837A (zh) * 2022-05-18 2022-08-19 京东方科技集团股份有限公司 数据处理方法、电子设备和可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103713891A (zh) * 2012-10-09 2014-04-09 阿里巴巴集团控股有限公司 一种在移动设备上进行图形渲染的方法和装置
US20150149888A1 (en) * 2013-11-27 2015-05-28 Moboom Ltd. Systems and methods for executing aspects of a document
CN105354014A (zh) * 2014-08-18 2016-02-24 阿里巴巴集团控股有限公司 应用界面渲染展示方法及装置
CN105867911A (zh) * 2016-03-24 2016-08-17 江苏大学 一种Iris 2D图形引擎的实现方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286142B2 (en) * 2011-04-07 2016-03-15 Adobe Systems Incorporated Methods and systems for supporting a rendering API using a runtime environment
US9384012B2 (en) * 2011-12-16 2016-07-05 Sap Se Standalone data entry for backend system
WO2015036872A2 (en) * 2013-09-10 2015-03-19 Calgary Scientific Inc. Architecture for distributed server-side and client-side image data rendering
CN103970966B (zh) * 2014-05-27 2018-01-16 武汉兆图科技有限公司 一种跨嵌入式平台的三维渲染引擎的构建方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103713891A (zh) * 2012-10-09 2014-04-09 阿里巴巴集团控股有限公司 一种在移动设备上进行图形渲染的方法和装置
US20150149888A1 (en) * 2013-11-27 2015-05-28 Moboom Ltd. Systems and methods for executing aspects of a document
CN105354014A (zh) * 2014-08-18 2016-02-24 阿里巴巴集团控股有限公司 应用界面渲染展示方法及装置
CN105867911A (zh) * 2016-03-24 2016-08-17 江苏大学 一种Iris 2D图形引擎的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
宋小远: "一种Android平台混合应用运行环境", 《计算机系统应用》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697060A (zh) * 2018-12-29 2019-04-30 广州华多网络科技有限公司 视频特效软件及其生成方法、装置、设备和存储介质
CN111414150A (zh) * 2019-01-04 2020-07-14 厦门雅基软件有限公司 游戏引擎渲染方法、装置、电子设备及计算机存储介质
CN109739505A (zh) * 2019-01-08 2019-05-10 网易(杭州)网络有限公司 一种用户界面的处理方法和装置
US11890540B2 (en) 2019-01-08 2024-02-06 Netease (Hangzhou) Network Co., Ltd. User interface processing method and device
CN111694569A (zh) * 2019-03-15 2020-09-22 北京奇虎科技有限公司 一种小程序公共组件库的构建方法、装置和计算设备
CN110471709A (zh) * 2019-07-15 2019-11-19 北京字节跳动网络技术有限公司 一种加速网页打开速度的方法、装置、介质和电子设备
CN110471709B (zh) * 2019-07-15 2022-12-06 北京字节跳动网络技术有限公司 一种加速网页打开速度的方法、装置、介质和电子设备
CN111158818A (zh) * 2019-12-24 2020-05-15 中国建设银行股份有限公司 一种页面渲染方法和装置
CN111158818B (zh) * 2019-12-24 2023-12-01 中国建设银行股份有限公司 一种页面渲染方法和装置
CN113076152A (zh) * 2020-01-03 2021-07-06 腾讯科技(深圳)有限公司 渲染方法及装置、电子设备和计算机可读存储介质
CN111381920A (zh) * 2020-02-17 2020-07-07 网易(杭州)网络有限公司 弹窗组件的显示方法、装置以及电子终端

Also Published As

Publication number Publication date
WO2018161812A1 (zh) 2018-09-13
CN108572818B (zh) 2021-07-23
US20200057660A1 (en) 2020-02-20
TW201833792A (zh) 2018-09-16

Similar Documents

Publication Publication Date Title
CN108572818A (zh) 一种用户界面渲染方法及装置
US11868785B2 (en) Application program page processing method and device
CN108572965B (zh) 一种资源加载方法及装置
CN104866383B (zh) 一种接口调用方法、装置及终端
US7739693B2 (en) Generic application program interface for native drivers
US20220292628A1 (en) Image processing method and apparatus
CN106648569B (zh) 目标序列化实现方法和装置
CN113867993B (zh) 虚拟化的rdma方法、系统、存储介质及电子设备
US9275165B2 (en) Method and apparatus for defining an application to allow polymorphic serialization
WO2022199283A1 (zh) 用于确定调用栈栈帧的对象的方法、装置、设备和介质
US20120079009A1 (en) Method and apparatus for choosing resources based on context and inheritance
CN104657224A (zh) 一种进程间通信的方法和装置
CN113986424A (zh) 一种页面显示方法及装置
CN107423291B (zh) 一种数据翻译方法以及客户端设备
US10599444B2 (en) Extensible input stack for processing input device data
CN112286594B (zh) 对象序列化和反序列化方法及设备、电子设备和介质
CN110874321B (zh) 测试接口的远程调用方法、调用封装引擎及远程代理引擎
US20190213015A1 (en) Extensible input stack for processing input device data
KR101614920B1 (ko) 다수 개의 컴퓨팅 시스템 및/또는 환경들에서의 입출력 자원들의 공유
CN114138507B (zh) Python程序服务化方法、装置及计算机可读存储介质
CN116450228A (zh) 用于运行应用程序的方法和电子设备
EP4172766A1 (en) Programming language trigger mechanisms for parallel asynchronous enumerations
CN117707949A (zh) 一种自定义格式数据的批量生成方法以及装置
CN115878282A (zh) 跨平台交互方法、装置及设备
CN116382707A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1260922

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201216

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: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant