CN112835580B - 指令处理方法、装置、设备以及存储介质 - Google Patents

指令处理方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN112835580B
CN112835580B CN202110260672.6A CN202110260672A CN112835580B CN 112835580 B CN112835580 B CN 112835580B CN 202110260672 A CN202110260672 A CN 202110260672A CN 112835580 B CN112835580 B CN 112835580B
Authority
CN
China
Prior art keywords
rendering
container
module
instruction
rendered data
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
CN202110260672.6A
Other languages
English (en)
Other versions
CN112835580A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110260672.6A priority Critical patent/CN112835580B/zh
Publication of CN112835580A publication Critical patent/CN112835580A/zh
Application granted granted Critical
Publication of CN112835580B publication Critical patent/CN112835580B/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
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提供了一种指令处理方法、装置、设备以及存储介质,涉及智能设备、云服务、渲染等计算机技术领域。具体实现方案为:对渲染指令进行解析,得到已渲染数据;发送所述已渲染数据,以基于所述已渲染数据获取容器引擎,所述容器引擎用于基于所述已渲染数据构建容器视图以及生成显示页面。本公开实施例,对渲染指令进行解析后,可以得到已渲染数据,进而复用设备端的容器引擎等,实现所需的渲染效果,可以减少渲染所需的计算量,提高渲染速度,优化渲染效果。

Description

指令处理方法、装置、设备以及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及智能设备、云服务、渲染领域。
背景技术
相关技术中,渲染过程主要包括对需要渲染的文件进行编译后转化为用户可见的结果。可以在云端对文件进行编译,再将编译后的代码发送至设备端显示渲染效果。在此过程中,云端和设备端之间需要传输大量的数据,网络、传输速度、数据丢失等因素会影响渲染效果。而设备端进行渲染需要的计算量大,也可能影响渲染效果。
发明内容
本公开提供了一种指令处理方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种指令处理方法,包括:对渲染指令进行解析,得到已渲染数据;发送所述已渲染数据,以基于所述已渲染数据获取容器引擎,所述容器引擎用于基于所述已渲染数据构建容器视图以及生成显示页面。
根据本公开的另一方面,提供了一种指令处理装置,包括:
解析单元,用于对渲染指令进行解析,得到已渲染数据;第一发送单元,用于发送所述已渲染数据,以基于所述已渲染数据获取容器引擎,所述容器引擎用于基于所述已渲染数据构建容器视图以及生成显示页面。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例中的方法。
根据本公开的技术,对渲染指令进行解析后,可以得到已渲染数据,进而复用设备端的容器引擎等,实现所需的渲染效果,可以减少渲染所需的计算量,提高渲染速度,优化渲染效果。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开一实施例的指令处理方法的流程示意图;
图2是根据本公开另一实施例的指令处理方法的流程示意图;
图3是根据本公开一实施例的指令处理装置的框图;
图4是根据本公开另一实施例指令处理装置的框图;
图5是本公开一实施例的ACE***设置于智能设备的示意图;
图6是本公开一实施例的指令收发服务的一个示意图;
图7是本公开一实施例的指令收发服务的另一个示意图;
图8是本公开一实施例的指令收发服务的另一个示意图;
图9用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开一实施例的指令处理方法的流程示意图。该方法可以包括:
S101、对渲染指令进行解析,得到已渲染数据;
S102、发送所述已渲染数据,以基于所述已渲染数据获取容器引擎,所述容器引擎用于基于所述已渲染数据构建容器视图以及生成显示页面。
示例性地,设备端可以包括能够显示的智能设备。例如,带有屏幕各种语音智能设备。设备端的操作***中可以包括容器引擎***,该***可以包括跨进程处理模块、指令处理模块、渲染模块、容器模块等。该***的通信模块可以称为跨进程处理模块,能够与客户端通信。容器模块可以获取多种类型的容器引擎。例如,页面(Page)容器引擎、对话框(Dialog)容器引擎、小程序(Mini App)容器引擎等。容器引擎可以提供脚本运行环境等。容器引擎还可以称为应用容器引擎、应用容器、容器实例、应用容器实例、引擎实例、容器、引擎等。客户端可以包括应用程序、小程序等。客户端中可以包括通信模块、组件的描述信息的集合等。设备端可以包括通信模块、渲染模块、容器模块等。
本实施例的方法可以用于容器引擎***中,例如,具体可以应用于指令处理模块中。指令处理模块可以对接收到的渲染指令(commands)进行解析,并对解析得到的已渲染数据(或称为预渲染数据)进行分发。例如,指令处理模块可以将已渲染数据分发至容器模块;或者分发至渲染模块,通过渲染模块透传至容器模块。容器模块可以基于已渲染数据获取容器引擎,利用容器引擎运行已渲染数据,构建容器视图,在容器视图中载入需要显示的组件以生成显示页面。
本公开实施例,对渲染指令进行解析后,可以得到已渲染数据,进而复用设备端的容器引擎等,实现所需的渲染效果,可以减少渲染所需的计算量,提高渲染速度,优化渲染效果。
图2是根据本公开另一实施例的指令处理方法的流程示意图。该实施例的方法可以包括上述实施例的各步骤。在一种实施方式中,S101中,对渲染指令进行解析,得到已渲染数据,包括:
S201、根据渲染指令的指令类型,确定所述渲染指令中是否包括有效载荷;
S202、在所述渲染指令中包括有效载荷的情况下,拆分所述有效载荷得到所述已渲染数据。
例如,有些类型的指令是包括有效载荷的。例如RenderSwanView或者RenderSwanDialog、ExecuteSwanCode这些类型的指令中包括有效载荷,需要进行解析。但是页面的脚本(例如JS)有能力动态订阅其他指令。如果指令处理模块收到了没被订阅的指令,可以不解析该指令,也不关心载荷是否有效,例如直接丢掉该指令。
如果指令处理模块收到的渲染指令中包括有效载荷(payload),可以对有效载荷进行拆分得到已渲染数据。有效载荷可以包括需要显示的文字、形状等具体数据。除了解析并拆分得到有效载荷之外,从渲染指令中还可以得到其他需要渲染的内容,进而得到包括有效载荷和其他需要渲染的内容的已渲染数据。渲染指令中的有效载荷可以包括渲染所需的主要信息,例如容器视图信息、布局信息、组件信息等。如果收到的指令中具有有效载荷则对有效载荷进行拆分能够得到渲染所需的主要信息。如果收到的指令中不具有有效载荷,则不需要进行拆分等后续的操作。因此,基于有效载荷能够快速准确地得到渲染所需的主要信息,提高渲染速度,优化渲染效果。
在一种实施方式中,S101中,对渲染指令进行解析,得到已渲染数据,还包括:S203、校验所述已渲染数据的结构完整性。
解析得到已渲染数据后,指令处理模块可以校验已渲染数据的结构完整性。如果已渲染数据的结构完整,并未有缺失,可以将校验通过的已渲染数据分发至容器模块或渲染模块。如果已渲染数据的结构不完整,可以不分发校验未通过的已渲染数据。这样有利于利用完整的已渲染数据展现更好的渲染效果。
在一种实施方式中,对渲染指令进行解析,得到已渲染数据,还包括:
S204、对校验通过的已渲染数据进行解码和/或解压缩。
例如,指令处理模块可以对完整性校验通过的已渲染数据进行解码,将解码后的已渲染数据分发至容器模块或渲染模块。
再如,指令处理模块可以对完整性校验通过的已渲染数据进行解压缩,将解压缩后的已渲染数据分发至容器模块或渲染模块。
再如,指令处理模块可以对完整性校验通过的已渲染数据进行解码,将解码后的已渲染数据进行解压缩,将解压缩后的已渲染数据分发至容器模块或渲染模块。
已渲染数据可能是经过编码的和/或进行压缩的,对已渲染数据进行解码和/或解压缩后,可以使得容器引擎能够快速准确地确定数据的含义,利用容器引擎创建容器视图,进而生成能够在设备屏幕上展现的显示页面。
在一种实施方式中,所述方法还包括:S100、接收来自云端或客户端的渲染指令。
例如,云端可以将需要渲染的内容编译成各个渲染指令,发送给设备端的指令收发服务。指令收发服务可以与云端通信,从云端接收渲染指令。渲染指令中可以包括已编译代码,主要包括布局相关的信息等,数据量较少。指令收发服务将来自云端的渲染指令发送至指令处理模块。指令处理模块收到渲染指令后,可以对渲染指令进行解析,得到已渲染数据。这样,云端与设备端之间通过渲染指令实现渲染效果,不需要传输大量的数据内容,通过渲染指令传输较少的数据量即可实现所需的渲染效果。类似的,客户端也可以通过渲染指令,传输较少的数据量在设备端实现所需渲染效果。
在一种实施方式中,发送所述已渲染数据,包括:向容器模块和/或渲染模块发送所述已渲染数据。
例如,指令处理模块向容器模块发送已渲染数据。或者,指令处理模块向渲染模块发送已渲染数据,通过渲染模块向容器模块透传该已渲染数据。通过容器模块能够基于渲染数据获取对应的容器引擎,利用容器引擎创建容器视图,进而生成能够在设备屏幕上展现的显示页面。这样,能够复用容器引擎、容器视图、组件等,提高渲染速度,优化渲染效果。
在一种实施方式中,所述方法还包括:
通过跨进程处理模块接收客户端需要渲染的脚本;
向渲染模块发送所述脚本,以在所述渲染模块执行所述脚本得到所述已渲染数据。
示例性地,如果跨进程处理模块接收到客户端需要渲染的脚本,跨进程处理模块可以将该脚本发送至指令处理模块。指令处理模块可以将该脚本发送至渲染模块。渲染模块可以执行该脚本,得到已渲染数据。已渲染数据中可以包括该脚本的处理逻辑。
在本公开实施例中,客户端可以包括能够在操作***中运行的应用程序(APP)、小程序(Mini App或Applet)等。客户端的安装包例如APK可以保存在云端。如果需要在设备端运行该客户端,可以从云端下载该客户端的安装包后,在设备端安装后运行或直接运行该客户端。如果客户端需要实现某个渲染效果,可以将容器参数、布局信息、需要显示的组件的描述信息等按照一定的逻辑生成脚本。跨进程处理模块与客户端的通信模块连接,从客户端的通信模块接收需要渲染的脚本和/或其他需要执行的指令等。跨进程处理模块可以将脚本分发给渲染模块,由渲染模块执行脚本得到已渲染数据。渲染模块可以将已渲染数据发送至容器模块,由容器模块获取所需容器引擎,利用容器引擎构建容器视图以及生成显示页面。
具体地,容器模块可以利用已渲染数据绘制显示页面。例如,已渲染数据中包括引擎标识、容器视图信息、组件信息以及脚本的处理逻辑等,容器模块可以基于引擎标识查找对应的容器引擎;基于容器视图信息构建容器视图;执行组件信息对应的可执行代码,以在所述容器视图中加载所述组件信息对应的图形组件,生成显示页面。容器视图信息可以包括容器视图的尺寸、颜色、位置等信息。组件信息可以包括需要在显示页面展现的各个图形组件的尺寸、颜色、位置、文字、形状等信息。例如,圆形按钮、方形输入框等。脚本的处理逻辑可以包括多种,例如组件的显示顺序、消失顺序等。
图3是根据本公开一实施例的指令处理装置的框图。该装置可以包括:
解析单元301,用于对渲染指令进行解析,得到已渲染数据;
第一发送单元302,用于发送所述已渲染数据,以基于所述已渲染数据获取容器引擎,所述容器引擎用于基于所述已渲染数据构建容器视图以及生成显示页面。
图4是根据本公开另一实施例指令处理装置的框图。该实施例的装置可以包括上述装置实施例的各组件。在一种实施方式中,所述解析单元301包括:
确定子单元3011,用于根据渲染指令的指令类型,确定所述渲染指令中是否包括有效载荷;
拆分子单元3012,用于在所述渲染指令中包括有效载荷的情况下,拆分所述有效载荷得到所述已渲染数据。
在一种实施方式中,所述解析单元301还包括:校验子单元3013,用于校验所述已渲染数据的结构完整性。
在一种实施方式中,所述解析单元301还包括:解码子单元3014,用于对校验通过的已渲染数据进行解码和/或解压缩。
在一种实施方式中,所述装置还包括:第一接收单元401,用于接收来自云端的所述渲染指令。
在一种实施方式中,所述第一发送单元302具体用于向容器模块和/或渲染模块发送所述已渲染数据。
在一种实施方式中,所述装置还包括:
第二接收单元402,用于通过跨进程处理模块接收客户端需要渲染的脚本;
第二发送单元403,用于向渲染模块发送所述脚本,以在所述渲染模块执行所述脚本得到所述已渲染数据。
本公开实施例各装置中的各单元、子单元的功能可以参见上述方法实施例中的对应描述,在此不再赘述。
在一种应用示例中,带有屏幕的智能设备例如:智能音箱等语音智能设备中可以包括应用容器引擎(Application Container Engine,ACE)***。ACE***可以是嵌入式应用***。如图5所示,该***主要包括以下几个部分:
一、客户端通信管理模块。例如图5的有屏语音智能设备中,客户端通信管理模块可以为跨进程渲染管理模块(也可以称为客户端渲染管理模块、客户端管理模块、跨进程管理模块等,是上述方法实施例中跨进程处理模块的示例)。该跨进程渲染管理模块可以与客户端进行通信。
可选地,该ACE***也可以包括客户端(可以称为ACE***客户端、客户端插件、客户端模块等)。ACE***客户端可以设置在其他需要动态渲染内容的应用程序中。例如,第三方接入的应用(APP)的安装包例如APK中可以集成ACE***客户端,该客户端可以安装或下载到设备端运行。客户端可以通过ACE***的跨进程渲染管理模块与其他模块进行交互。客户端中可以包括通信模块(例如指令接收端)、组件集(组件的描述信息的集合)、指令执行模块(例如指令执行器)等。
二、指令解析分发模块(或者称为指令解析分发子***、协议解析分发子***等,是上述方法实施例中指令处理模块的示例,或者是上述装置实施例中指令处理装置的示例),用于基于***协议进行指令的解析与分发。例如,通过指令收发服务模块可以从云端(也可以称为云服务、云端服务等)或客户端接收渲染指令。指令解析分发模块对渲染指令进行解析得到已渲染数据后,可以将已渲染数据分发给容器模块进行处理。指令解析分发模块也可以通过渲染模块向容器模块透传已渲染数据。
例如,云端可以将需要渲染的内容编译成各个渲染指令,发送给设备端的指令收发服务模块。指令收发服务模块可以与云端通信,从云端接收渲染指令。渲染指令中可以为已编译代码,主要包括布局相关的信息等,数据量较少。指令收发服务模块将来自云端的渲染指令发送至指令处理模块。指令处理模块收到渲染指令后,可以对渲染指令进行解析,得到已渲染数据。这样,云端与设备端之间通过渲染指令实现渲染效果,不需要传输大量的数据内容,通过渲染指令传输较少的数据量即可实现所需的渲染效果。类似的,客户端也可以通过渲染指令,通过传输较少的数据量在设备端实现所需渲染效果。
三、设备端能力模块(或者称为端能力模块、设备端能力子***、端能力子***等)。渲染过程中,可能需要调用设备端的各种能力(也可以称为技能)。端能力模块可以从指令解析分发模块接收端能力调用指令,根据端能力调用指令向设备端***服务模块发送对应的调用指令。例如,打开麦克风的指令,打开摄像头的指令等。端能力可以包括多种,例如硬件能力、智能服务和云端服务等。
进一步地,如果设备端能力模块基于端能力调用指令所调用的设备端的服务能力具有特定的渲染效果,可以向渲染模块返回所调用的设备端的服务能力对应的脚本、渲染指令或已渲染数据等信息中至少之一。渲染模块可以对收到的信息进行相应的处理后发送至容器模块。由容器模块基于已渲染数据获取所调用的服务能力的容器引擎,利用该容器引擎构建所调用的服务能力的容器视图,以及生成所调用的服务能力的显示页面。例如,打开麦克风的调用指令的渲染效果包括带有麦克风图像的局部显示的动画,设备端能力模块可以向渲染模块发送该动画对应的已渲染数据。渲染模块可以获取该动画所需的容器引擎例如对话框容器引擎。在对话框容器引擎中可以基于已渲染数据中的视图信息构建容器视图,并基于组件信息运行组件的可执行代码,得到显示页面。
此外,在设备端能力模块调用设备端***服务时,设备端***服务可以按照调用指令执行相应的操作。设备端***服务可以通过设备端能力模块向云端上报所调用的服务能力执行相应的操作后,出现的状态和/或事件等。例如,响应于调用指令,音乐播放器开启并播放音乐。音乐播放器可以向设备端能力模块返回音乐播放记录等,由设备端能力模块上报至云端。
四、容器模块(或者称为容器子***),用于对各种容器引擎进行管理。容器引擎可以包括页面容器引擎、对话框容器引擎、小程序容器引擎等。容器模块可以基于来自渲染模块、指令解析分发模块或跨进程渲染管理模块的已渲染数据,获取所需的容器引擎。例如,如果存在已经打开的页面容器引擎,可以使用该页面容器引擎构建容器页面。如果不存在已经打开的容器引擎,可以启动新的页面容器引擎,使用该新的页面容器引擎构建容器页面。再如,如果存在已经打开的对话框容器引擎,可以先关闭该对话框容器引擎,再基于已渲染数据启动新的对话框容器引擎构建容器页面。如果不存在已经打开的对话框容器引擎,可以直接启动新的对话框容器引擎。使用该新的对话框容器引擎构建容器页面。再如,如果存在已经打开的小程序容器引擎,可以使用该小程序容器引擎构建容器页面。如果不存在已经打开的小程序容器引擎,可以启动新的小程序容器引擎,使用该新的小程序容器引擎构建容器页面。
利用容器引擎构建容器页面后,在容器页面中加载渲染所需的组件的可执行代码,,生成能够在设备端的屏幕上展现渲染效果的显示页面。进而,在设备端的屏幕上,可以展现该显示页面。
五、渲染模块(或者称为渲染子***),用于实现设备的屏幕渲染。
渲染模块可以执行脚本得到已渲染数据,或者从指令解析分发模块接收已渲染数据。然后,渲染模块可以向容器模块发送已渲染数据。
此外,渲染模块还可以从已渲染数据中解析确定是否需要调用端能力。如果需要调用端能力,可以向设备端能力模块发送端能力调用指令,以调用设备端的服务能力。如果设备端能力模块向渲染模块返回了基于端能力调用指令所调用的服务能力对应的已渲染数据,则设备端能力模块可以将该已渲染数据发送至容器模块进行处理。
此外,ACE***中可以包括组件集。ACE***的组件集中可以包括各组件的可执行代码的集合。ACE***客户端中也可以包括组件集,客户端的组件集中可以包括部分自定义组件的描述信息的集合。客户端需要渲染的脚本中,可以包括容器引擎的标识、容器组件信息、组件的描述信息等。如果需要在ACE***中注册自定义组件,客户端需要渲染的脚本中可以包括各自定义组件的描述信息。例如,某个视频网站的APP中,除了包括自身的各种组件、布局之外,还可以包括用于显示“新年快乐”、“中秋快乐”的渲染效果的自定义组件。
在一种示例中,该ACE***可以应用于带有屏幕的语音智能设备,为设备的***应用及第三方应用的内容展现提供高效的处理方式,作为智能语音交互的有益补充,能够提高语音智能设备的表现力,达到更好的用户体验。
该ACE***可以提供多种通信方式的服务:1)基于客户端插件的第三方通信服务;2)基于注册协议的云服务通信;3)基于设备端本地***的服务通信。具有约定的通信内容,应用容器引擎***分配相应的容器,在容器中通过组件集及相关指令组织相关内容,完成屏幕内容的渲染,从而完成各个调用方(调用者)的服务目标。此外,该ACE***还可以对相应服务的生命周期进行管理。
该ACE***可以在语音智能设备中完成渲染,减少与外部例如云端需要传输的数据量;通过复用容器能够提高渲染处理速度和显示效果。
在一种示例中,如图6所示,指令收发服务可以将来自云端(或称为云服务)的指令发送至指令解析分发模块。指令解析分发模块可以包括指令收发适配模块(例如收发服务适配器)、指令拆包校验模块、指令分发模块等。指令解析分发模块可以基于***协议等解析渲染指令,向容器模块发送解析得到的已渲染数据。容器模块可以利用已渲染模块驱动渲染。此外,容器模块也可以透传指令。例如,动态脚本(例如JavaScript,简称JS)可以订阅一些指令来完成业务逻辑,容器模块可以向动态脚本中透传该脚本订阅的指令。此外,容器模块可以向指令解析分发模块进行事件上报、状态同步等。指令解析分发模块可以将这些事件、状态等打包上传至云端。
如图7和图8所示,指令收发服务例如DCS(DuerOS Conversation System)是设备与DuerOS(度秘操作***)云服务之间进行通信的子***。指令收发服务通过进程通信将渲染指令发送至指令收发适配模块例如DcsServiceClientlmpl。指令收发适配模块可以根据指令类型判断是否需要解析有效载荷(Payload)。如果是具有有效载荷的指令,则拆包校验模块拆分有效载荷,并校验拆分后的数据的结构完整性。如果校验通过,可以将校验通过的数据发送至指令分发模块例如DirectiveDispatcher进行解码、解压缩等处理。指令分发模块可以进行指令分发,向容器模块分发页面渲染所需的已渲染数据。已渲染数据可以包括已编译代码。容器模块可以利用收到的已渲染数据构建容器引擎(容器实例)或重用容器引擎(容器实例),进而利用容器引擎构建容器视图。其中容器模块可以使用的容器引擎可以包括页面容器引擎、对话框容器引擎、小程序容器引擎等。例如,在安卓***中页面容器引擎可以包括活动页面(Activity)。容器模块也可以通过跨进程渲染管理模块向客户端返回渲染相关的信息。
该指令解析分发模块协议解析子***通过适配模块,与数据源类型解耦,只关注数据本身,根据不同指令类型,动态驱动容器模块构建相应的容器完成渲染。因此,云端可以不用下发渲染数据而是下发渲染指令,即可在设备上完成渲染。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或要求的本公开的实现。
如图9所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序来执行各种适当的动作和处理。在RAM 803中,还可存储电子设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如指令处理方法。例如,在一些实施例中,指令处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到电子设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的指令处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行指令处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (13)

1.一种指令处理方法,其特征在于,所述方法用于容器引擎***,所述容器引擎***包括跨进程处理模块、渲染模块、容器模块,所述方法包括:
通过所述跨进程处理模块接收客户端需要渲染的脚本;
所述跨进程处理模块向渲染模块发送所述脚本,以在所述渲染模块执行所述脚本得到已渲染数据;
所述渲染模块向所述容器模块发送所述已渲染数据,所述已渲染数据包括引擎标识、容器视图信息、组件信息;所述容器模块基于引擎标识查找对应的容器引擎,所述容器引擎用于基于所述所述容器视图信息构建容器视图以及执行所述组件信息对应的可执行代码,以在所述容器视图中加载所述组件信息对应的图像组件,生成显示页面。
2.根据权利要求1所述的方法,其特征在于,对渲染指令进行解析,得到已渲染数据,包括:
根据渲染指令的指令类型,确定所述渲染指令中是否包括有效载荷;
在所述渲染指令中包括有效载荷的情况下,拆分所述有效载荷得到所述已渲染数据。
3.根据权利要求1所述的方法,其特征在于,对渲染指令进行解析,得到已渲染数据,还包括:
校验所述已渲染数据的结构完整性。
4.根据权利要求3所述的方法,其特征在于,对渲染指令进行解析,得到已渲染数据,还包括:
对校验通过的已渲染数据进行解码和/或解压缩。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
接收来自云端或客户端的所述渲染指令。
6.一种指令处理装置,其特征在于,所述装置用于容器引擎***,所述容器引擎***包括跨进程处理模块、渲染模块、容器模块,所述包括:
解析单元,用于对渲染指令进行解析,得到已渲染数据;
第一发送单元,用于向所述容器模块发送所述已渲染数据,以基于所述已渲染数据获取容器引擎,所述容器引擎用于基于所述已渲染数据构建容器视图以及生成显示页面;
所述装置还包括:
第二接收单元,用于通过跨进程处理模块接收客户端需要渲染的脚本;
第二发送单元,用于向渲染模块发送所述脚本,以在所述渲染模块执行所述脚本得到所述已渲染数据;
其中,所述已渲染数据包括引擎标识、容器视图信息、组件信息;所述容器模块基于引擎标识查找对应的容器引擎,所述容器引擎用于基于所述所述容器视图信息构建容器视图以及执行所述组件信息对应的可执行代码,以在所述容器视图中加载所述组件信息对应的图像组件,生成显示页面。
7.根据权利要求6所述的装置,其中,所述解析单元包括:
确定子单元,用于根据渲染指令的指令类型,确定所述渲染指令中是否包括有效载荷;
拆分子单元,用于在所述渲染指令中包括有效载荷的情况下,拆分所述有效载荷得到所述已渲染数据。
8.根据权利要求6所述的装置,其中,所述解析单元还包括:
校验子单元,用于校验所述已渲染数据的结构完整性。
9.根据权利要求8所述的装置,其中,所述解析单元还包括:
解码子单元,用于对校验通过的已渲染数据进行解码和/或解压缩。
10.根据权利要求6至9中任一项所述的装置,其中,所述装置还包括:
第一接收单元,用于接收来自云端的所述渲染指令。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行权利要求1-5中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据权利要求1-5中任一项所述的方法。
CN202110260672.6A 2021-03-10 2021-03-10 指令处理方法、装置、设备以及存储介质 Active CN112835580B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110260672.6A CN112835580B (zh) 2021-03-10 2021-03-10 指令处理方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110260672.6A CN112835580B (zh) 2021-03-10 2021-03-10 指令处理方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN112835580A CN112835580A (zh) 2021-05-25
CN112835580B true CN112835580B (zh) 2024-05-28

Family

ID=75930066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110260672.6A Active CN112835580B (zh) 2021-03-10 2021-03-10 指令处理方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN112835580B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114780095B (zh) * 2022-06-21 2022-09-27 统信软件技术有限公司 离屏渲染方法、装置、打印方法、计算设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025124A (zh) * 2015-06-24 2017-08-08 上海中信信息发展股份有限公司 网页技术开发单机软件的***架构
CN109697266A (zh) * 2017-10-24 2019-04-30 中国电信股份有限公司 页面渲染***、页面渲染方法及页面渲染装置
CN109902255A (zh) * 2019-02-27 2019-06-18 百度在线网络技术(北京)有限公司 页面混合浏览记录生成方法、装置、设备和存储介质
CN110442811A (zh) * 2019-08-14 2019-11-12 广州虎牙科技有限公司 一种页面的处理方法、装置、计算机设备和存储介质
US10540152B1 (en) * 2016-09-23 2020-01-21 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
CN111274510A (zh) * 2020-01-15 2020-06-12 平安银行股份有限公司 页面渲染方法、装置、设备及可读存储介质
CN111814089A (zh) * 2020-06-30 2020-10-23 广州市百果园信息技术有限公司 一种页面渲染的方法、装置、渲染服务器和存储介质
CN111930381A (zh) * 2020-09-21 2020-11-13 知学云(北京)科技有限公司 一种支持SaaS多租户***的个性化页面配置方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578268B2 (en) * 2010-12-30 2013-11-05 Konica Minolta Laboratory U.S.A., Inc. Rendering electronic documents having linked textboxes

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025124A (zh) * 2015-06-24 2017-08-08 上海中信信息发展股份有限公司 网页技术开发单机软件的***架构
US10540152B1 (en) * 2016-09-23 2020-01-21 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
CN109697266A (zh) * 2017-10-24 2019-04-30 中国电信股份有限公司 页面渲染***、页面渲染方法及页面渲染装置
CN109902255A (zh) * 2019-02-27 2019-06-18 百度在线网络技术(北京)有限公司 页面混合浏览记录生成方法、装置、设备和存储介质
CN110442811A (zh) * 2019-08-14 2019-11-12 广州虎牙科技有限公司 一种页面的处理方法、装置、计算机设备和存储介质
CN111274510A (zh) * 2020-01-15 2020-06-12 平安银行股份有限公司 页面渲染方法、装置、设备及可读存储介质
CN111814089A (zh) * 2020-06-30 2020-10-23 广州市百果园信息技术有限公司 一种页面渲染的方法、装置、渲染服务器和存储介质
CN111930381A (zh) * 2020-09-21 2020-11-13 知学云(北京)科技有限公司 一种支持SaaS多租户***的个性化页面配置方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"WEB端可视化表单生成引擎的设计与实现";宋奕爽等;《软件》;20171231;153-159 *

Also Published As

Publication number Publication date
CN112835580A (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN112882709B (zh) 基于容器引擎***的渲染方法、装置、设备以及存储介质
CN110457143B (zh) 微服务的调用方法及装置
CN113794909A (zh) 视频流传输***、方法、服务器、装置以及存储介质
CN114138372B (zh) 前端组件加载方法及装置
CN111209065B (zh) 动态壁纸设置方法、装置、存储介质及电子设备
CN113568626B (zh) 动态打包、应用程序包开启方法、装置和电子设备
CN113110829B (zh) 多ui组件库数据处理方法及装置
CN108600331A (zh) 交互界面呈现方法、客户端、终端及***
CN112382294A (zh) 语音识别方法、装置、电子设备和存储介质
CN112835580B (zh) 指令处理方法、装置、设备以及存储介质
CN114244821B (zh) 数据处理方法、装置、设备、电子设备和存储介质
CN113746837B (zh) 信息处理方法和装置、电子设备、计算机可读介质
CN111240776A (zh) 动态壁纸设置方法、装置、存储介质及电子设备
CN113961289A (zh) 一种数据处理方法、装置、设备以及存储介质
CN112835582A (zh) 基于容器引擎的渲染方法、装置、设备以及存储介质
CN112882711A (zh) 渲染方法、装置、设备以及存储介质
CN114374703B (zh) 云手机信息的获取方法、装置、设备以及存储介质
CN113407259B (zh) 加载场景的方法、装置、设备以及存储介质
CN112835581B (zh) 端能力调用方法、装置、设备以及存储介质
CN112882710B (zh) 基于客户端的渲染方法、装置、设备以及存储介质
CN112835581A (zh) 端能力调用方法、装置、设备以及存储介质
CN113722115A (zh) 调用接口的方法、装置、设备和计算机可读介质
CN113361235B (zh) Html文件的生成方法、装置、电子设备及可读存储介质
CN116431108B (zh) 对象类型的处理方法、装置、电子设备及存储介质
CN114095758B (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
GR01 Patent grant
GR01 Patent grant