CN108563517A - 系统接口的调用方法及装置 - Google Patents
系统接口的调用方法及装置 Download PDFInfo
- Publication number
- CN108563517A CN108563517A CN201810276829.2A CN201810276829A CN108563517A CN 108563517 A CN108563517 A CN 108563517A CN 201810276829 A CN201810276829 A CN 201810276829A CN 108563517 A CN108563517 A CN 108563517A
- Authority
- CN
- China
- Prior art keywords
- interface
- application
- engine
- web application
- goal systems
- 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
Links
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种系统接口的调用方法及装置。其中,该方法包括:接收网页应用发送的接口调用请求,其中,所述网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,所述接口调用请求用于请求调用目标系统接口执行目标操作,所述接口调用请求中携带有所述目标系统接口的目标接口标识;从具有对应关系的接口标识和系统接口中确定所述目标接口标识对应的所述目标系统接口;响应所述接口调用请求调用所述目标系统接口执行所述目标操作。本发明解决了相关技术中网页应用调用系统接口的效率较低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种系统接口的调用方法及装置。
背景技术
网页应用本身不具有访问设备的能力,网页应用需要调用JavaScript导入的Imported函数,需要将网页应用中强类型的数据结构转换为JavaScript无类型数据结构;然后JavaScript调用浏览器内核提供的Web API又需要将无类型的JavaScript数据结构转为强类型的native数据结构,中间存在巨大的性能瓶颈。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种系统接口的调用方法及装置,以至少解决相关技术中网页应用调用系统接口的效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种系统接口的调用方法,包括:接收网页应用发送的接口调用请求,其中,所述网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,所述接口调用请求用于请求调用目标系统接口执行目标操作,所述接口调用请求中携带有所述目标系统接口的目标接口标识;从具有对应关系的接口标识和系统接口中确定所述目标接口标识对应的所述目标系统接口;响应所述接口调用请求调用所述目标系统接口执行所述目标操作。
根据本发明实施例的另一方面,还提供了一种系统接口的调用装置,包括:第一接收模块,用于接收网页应用发送的接口调用请求,其中,所述网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,所述接口调用请求用于请求调用目标系统接口执行目标操作,所述接口调用请求中携带有所述目标系统接口的目标接口标识;确定模块,用于从具有对应关系的接口标识和系统接口中确定所述目标接口标识对应的所述目标系统接口;调用模块,用于调用响应所述接口调用请求调用所述目标系统接口执行所述目标操作。
根据本发明实施例的另一方面,还提供了一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行上述任一项中所述的方法。
在本发明实施例中,采用接收网页应用发送的接口调用请求,其中,所述网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,所述接口调用请求用于请求调用目标系统接口执行目标操作,所述接口调用请求中携带有所述目标系统接口的目标接口标识;从具有对应关系的接口标识和系统接口中确定所述目标接口标识对应的所述目标系统接口;响应所述接口调用请求调用所述目标系统接口执行所述目标操作的方式,预先建立接口标识和系统接口的对应关系,在接收到网页应用发送的接口调用请求时读取接口调用请求中指示的目标接口标识,从具有对应关系的接口标识和系统接口中确定该目标接口标识对应的目标系统接口,并调用该目标系统接口执行网页应用指示的目标操作,从而省去了网页应用调用系统接口过程中JavaScript的中转过程,缩短了系统接口访问的流程,减少数据类型转换的耗时,从而实现了提高网页应用调用系统接口的效率的技术效果,进而解决了相关技术中网页应用调用系统接口的效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的系统接口的调用方法的示意图;
图2是根据本发明实施例的一种可选的系统接口的调用方法的应用环境示意图;
图3是根据本发明可选的实施方式的一种可选的系统接口的调用方法的示意图;
图4是根据本发明可选的实施方式的另一种可选的系统接口的调用方法的示意图;
图5是根据本发明可选的实施方式的另一种可选的系统接口的调用方法的示意图;
图6是根据本发明可选的实施方式的另一种可选的系统接口的调用方法的示意图;
图7是根据本发明实施例的一种可选的系统接口的调用装置的示意图;
图8是根据本发明实施例的一种可选的系统接口的调用方法的应用场景示意图;以及
图9是根据本发明实施例的一种可选的电子装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种系统接口的调用方法,如图1所示,该方法包括:
S102,接收网页应用发送的接口调用请求,其中,网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,接口调用请求用于请求调用目标系统接口执行目标操作,接口调用请求中携带有目标系统接口的目标接口标识;
S104,从具有对应关系的接口标识和系统接口中确定目标接口标识对应的目标系统接口;
S106,响应接口调用请求调用目标系统接口执行目标操作。
可选地,在本实施例中,上述系统接口的调用方法可以应用于如图2所示的终端202所构成的硬件环境中。如图2所示,终端202中安装了客户端204,客户端204中支持运行网页应用,客户端204接收网页应用发送的接口调用请求,其中,网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,接口调用请求用于请求调用目标系统接口执行目标操作,接口调用请求中携带有目标系统接口的目标接口标识;从具有对应关系的接口标识和系统接口中确定目标接口标识对应的目标系统接口;响应接口调用请求调用目标系统接口执行目标操作。
可选地,在本实施例中,上述系统接口的调用方法可以但不限于应用于网页应用调用系统接口的场景中。其中,上述客户端可以但不限于为各种类型的支持网页应用运行客户端,例如,在线教育客户端、即时通讯客户端、社区空间客户端、游戏客户端、购物客户端、浏览器客户端、金融客户端、多媒体客户端、直播客户端等。具体的,可以但不限于应用于在上述即时通讯客户端中的网页应用调用系统接口的场景中,或还可以但不限于应用于在上述浏览器客户端中的网页应用调用系统接口的场景中,以提高网页应用调用系统接口的效率。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述网页应用可以但不限于包括:游戏应用、视频应用、办公应用、音频应用等等。
可选地,在本实施例中,上述不具备直接调用系统接口的能力的网页应用可以但不限于包括:采用的编译格式不具备直接调用系统接口的能力的应用。例如:上述网页应用可以但不限于包括:基于WebAssembly的网页应用。WebAssembly是一种可以编译运行在Web平台的格式,具有尺寸小、解析速度快、执行效率高等特点,适合对性能要求比较高的Web模块。
需要说明的是,具备直接调用系统接口的能力的网页应用也可以采用本实施例提供的系统接口的调用方式调用系统接口,本实施例对此不作限定。
可选地,在本实施例中,系统接口可以但不限于包括:GPU接口、数据库接口、网络接口等。
可选地,在本实施例中,具有对应关系的接口标识和系统接口可以但不限于存储在浏览器内核的虚拟机上。
在一个可选的实施方式中,以采用WebAssembly编译的游戏应用为例,该游戏应用是不具备直接调用系统接口的能力的,在相关技术中,该游戏应用在调用系统接口时,需要JavaScript导入对象,委托JavaScript对象调用浏览器Web API,并最终由浏览器内核访问设备。基于WebAssembly的游戏应用调用JavaScript导入的Imported函数,需要将WebAssembly中强类型的数据结构转换为JavaScript无类型数据结构;然后JavaScript调用浏览器内核提供的Web API又需要将无类型的JavaScript数据结构转为强类型的native数据结构,中间存在巨大的性能瓶颈。在本实施方式中,预先建立了接口标识和系统接口的对应关系,从而将WebAssembly链接的Web API与原生的浏览器代码直接绑定,当接收到游戏应用的接口调用请求时,从具有对应关系的接口标识和系统接口中确定接口调用请求指示的目标接口标识对应的目标系统接口的系统native实现,通过目标系统接口的系统native实现访问目标系统接口,从而减少了WebAssembly与JavaScript的数据交换与封箱拆箱过程,提高了游戏应用调用系统接口的效率。
可见,通过上述步骤,预先建立接口标识和系统接口的对应关系,在接收到网页应用发送的接口调用请求时读取接口调用请求中指示的目标接口标识,从具有对应关系的接口标识和系统接口中确定该目标接口标识对应的目标系统接口,并调用该目标系统接口执行网页应用指示的目标操作,从而省去了网页应用调用系统接口过程中JavaScript的中转过程,缩短了系统接口访问的流程,减少数据类型转换的耗时,从而实现了提高网页应用调用系统接口的效率的技术效果,进而解决了相关技术中网页应用调用系统接口的效率较低的技术问题。
作为一种可选的方案,从具有对应关系的接口标识和系统接口中确定目标接口标识对应的目标系统接口包括:
S1,将内建模块导入网页应用所在的浏览器内核的虚拟机中,其中,内建模块用于封装具有对应关系的接口标识和系统接口;
S2,从内建模块中查找目标系统接口标识;
S3,将查找到的目标系统标识对应的系统接口确定为目标系统接口。
可选地,在本实施例中,可以但不限于通过虚拟机调用目标系统接口执行目标操作。
可选地,在本实施例中,如图3所示,浏览器内核将内建一个WebAssembly模块(Builtin Wasm Module,相当于上述内建模块),该模块封装内核导出给JavaScript的WebAPI的native实现(相当于上述具有对应关系的接口标识和系统接口),并将该模块的对象导出给JavaScript窗口(window)对象,应用引擎可以通过检查该对象是否存在以保证不同客户端的兼容性。在应用引擎初始化过程中,将以前导入JavaScriptObject对象替换为导入内建的WebAssembly模块,后续应用引擎访问Web GL等接口均变换为内建的WebAssembly模块访问WebGL native实现,从而减少JavaScript数据类型转换带来的性能损耗。
作为一种可选的方案,还包括:
S1,接收网页应用发送的内存访问请求,其中,内存访问请求用于请求访问网页应用在浏览器内核中的堆内存;
S2,响应内存访问请求访问浏览器内核中JavaScript的目标内存缓冲区,其中,目标内存缓冲区为在JavaScript中为网页应用配置的堆内存区域。
可选地,在本实施例中,通过JavaScript ArrayBuffer模拟WebAssembly的堆内存,内存操作被限制在JavaScript虚拟机中,避免了native实现直接操作设备内存引起的安全性和稳定性较差的问题。
作为一种可选的方案,在接收网页应用发送的接口调用请求之前,还包括:
S1,在浏览器内核中加载网页应用对应的第一应用引擎,其中,第一应用引擎用于在浏览器内核中运行网页应用;
S2,在第一应用引擎中运行网页应用。
可选地,在本实施例中,可以但不限于通过以下方式加载第一应用引擎:在浏览器内核的数据库中查找第一应用引擎,在查找到第一应用引擎并且查找到的第一应用引擎的版本不低于网页应用对应的引擎版本的情况下,加载第一应用引擎。在未查找到第一应用引擎或者查找到的第二应用引擎的版本低于网页应用对应的引擎版本的情况下,从网页应用对应的服务器获取第一应用引擎,将第一应用引擎保存到数据库中,并加载第一应用引擎。
可选地,在本实施例中,可以但不限于通过以下方式获取并保存第一应用引擎:从服务器的引擎库中拉取第一应用引擎的数据流,将数据流编译成目标格式的引擎模块,将引擎模块保存到数据库中。
在一个可选的实施方式中,以游戏应用为例,游戏引擎体积通常较大,且多个游戏可能会共用同样的应用引擎,为减少引擎加载的时间,也为了避免使用相同游戏引擎的游戏重复下载引擎,如图4所示,提供了一种游戏引擎额管理策略:
当HTML页面中的JavaScript请求指定游戏引擎时,浏览器内核从数据库(Database)中获取信息检测该引擎是否安装并且版本是否匹配。
如未安装或已安装版本低于游戏请求的版本,则向服务器(Server)拉取对应的引擎库,引擎库作为WebAssembly资源(.wasm)文件通过XHR拉取数据流,编译成WebAssembly模块(Compiled Wasm Module),序列化后存储在数据库(Database)中。不同于插件方案必须以独立文件形式下载只能在客户端下载界面进行交互,上述策略的拉取、编译、存储过程均可以在HTML页面交互。如已安装且安装的版本高于或等于游戏请求的版本,则直接从数据库中读取并反序列化WebAssembly模块(Compiled Wasm Module)加载游戏引擎。
可选地,在上述可选的实施方式中,作为游戏引擎,最主要考虑的就是性能,本实施方式通过WebAssembly实现游戏引擎逻辑,WebAssembly是可以运行在JavaScript引擎上的二进制格式,具有体积小、解析和执行速度快等特点。如图5所示,提供了一种基于WebAssembly的游戏框架层次架构:本架构通过WebAssembly实现Runtime层,提供媒体(Media)、粒子系统(Particle)、物理引擎(Physics)、虚拟现实(VR)、动画(Animation)、持久化存储(Storage)、渲染引擎(Renderer)等能力,上述能力可以基于Browser层的浏览器Web API进行扩展。
在游戏逻辑层,支持JavaScript或增强类型TypeScript开发,以提升开发效率;对性能要求较高的游戏逻辑也可以基于C++等强类型语言编译成WebAssembly运行在JavaScript虚拟机上。
可选地,上述WebAssembly实现的游戏引擎逻辑可以用asm.js代替,asm.js是由Mozilla提出的一个基于JS的语法标准,主要是为了提升JavaScript引擎的执行效率,而WebAssembly可以认为是asm.js的进阶版本,解析和执行性能比asm.js更高,也得到了Google、Apple、Microsoft等更多浏览器厂商的支持。
作为一种可选的方案,在第一应用引擎中运行网页应用之后,还包括:
S1,通过浏览器内核的网页主线程获取第一应用引擎的图形元素;
S2,通过离屏图形元素接口将第一应用引擎的图形元素转换为离屏的图形元素;
S3,创建网页工作线程,并将离屏的图形元素传递给网页工作线程;
S4,通过网页工作线程获取离屏的图形元素对应的绘制上下文接口;
S5,通过绘制上下文接口在网页工作线程上绘制离屏的图形元素对应的图像;
S6,将图像传递给第一应用引擎;
S7,通过第一应用引擎将图像渲染到第一应用引擎的图像元素上。
可选地,在本实施例中,上述网页主线程可以但不限于包括Renderer。网页工作线程可以但不限于包括Web Worker,当在HTML页面中执行JavaScript时,页面的状态是不可响应的,直到JavaScript执行完成,WebWorker是一种在后台运行JavaScript的机制,不影响页面性能。第一应用引擎的图形元素可以但不限于包括HTML canvas元素。离屏图形元素接口可以但不限于包括OffscreenCavnas API。离屏的图形元素可以但不限于包括OffscreenCavnas,OffscreenCanvas提供一个可以离屏渲染的canvas对象,允许在WebWorker环境中绘制canvas元素。绘制上下文接口可以但不限于包括WebGL,WebGL是Web平台3D图形渲染API,可以利用GPU实现3D图形绘制加速,减少CPU占用。
在一个可选的实施方式中,以游戏应用为例,游戏逻辑相对复杂且每一帧执行事件比较客观,如果直接放在网页主线程(Renderer)执行会影响网页排版绘制以及会对事件交互等操作产生响应,在本实施方式中,将引擎执行和绘制逻辑放在单独的Web Worker中处理,尽量减少网页主线程的压力。如图6所示,网页主线程(Renderer)初始化时,获取游戏引擎的HTML canvas元素,通过OffscreenCavnas API转换成OffscreenCavnas,并新建WebWorker,将该OffscreenCavnas传递给WebWorker。
网页主线程(Renderer)代码如下:
Web Worker在接收到OffscreenCanvas后,获取WebGL上下文,并传递给游戏引擎,引擎即可将游戏渲染到HTML canvas中。
Web Worker代码如下:
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种用于实施上述系统接口的调用方法的系统接口的调用装置,如图7所示,该装置包括:
1)第一接收模块72,用于接收网页应用发送的接口调用请求,其中,网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,接口调用请求用于请求调用目标系统接口执行目标操作,接口调用请求中携带有目标系统接口的目标接口标识;
2)确定模块74,用于从具有对应关系的接口标识和系统接口中确定目标接口标识对应的目标系统接口;
3)调用模块76,用于调用响应接口调用请求调用目标系统接口执行目标操作。
可选地,在本实施例中,上述系统接口的调用装置可以应用于如图2所示的终端202所构成的硬件环境中。如图2所示,终端202中安装了客户端204,客户端204中支持运行网页应用,客户端204接收网页应用发送的接口调用请求,其中,网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,接口调用请求用于请求调用目标系统接口执行目标操作,接口调用请求中携带有目标系统接口的目标接口标识;从具有对应关系的接口标识和系统接口中确定目标接口标识对应的目标系统接口;响应接口调用请求调用目标系统接口执行目标操作。
可选地,在本实施例中,上述系统接口的调用装置可以但不限于应用于网页应用调用系统接口的场景中。其中,上述客户端可以但不限于为各种类型的支持网页应用运行客户端,例如,在线教育客户端、即时通讯客户端、社区空间客户端、游戏客户端、购物客户端、浏览器客户端、金融客户端、多媒体客户端、直播客户端等。具体的,可以但不限于应用于在上述即时通讯客户端中的网页应用调用系统接口的场景中,或还可以但不限于应用于在上述浏览器客户端中的网页应用调用系统接口的场景中,以提高网页应用调用系统接口的效率。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述网页应用可以但不限于包括:游戏应用、视频应用、办公应用、音频应用等等。
可选地,在本实施例中,上述不具备直接调用系统接口的能力的网页应用可以但不限于包括:采用的编译格式不具备直接调用系统接口的能力的应用。例如:上述网页应用可以但不限于包括:基于WebAssembly的网页应用。WebAssembly是一种可以编译运行在Web平台的格式,具有尺寸小、解析速度快、执行效率高等特点,适合对性能要求比较高的Web模块。
可选地,在本实施例中,系统接口可以但不限于包括:GPU接口、数据库接口、网络接口等。
可选地,在本实施例中,具有对应关系的接口标识和系统接口可以但不限于存储在浏览器内核的虚拟机上。
在一个可选的实施方式中,以采用WebAssembly编译的游戏应用为例,该游戏应用是不具备直接调用系统接口的能力的,在相关技术中,该游戏应用在调用系统接口时,需要JavaScript导入对象,委托JavaScript对象调用浏览器Web API,并最终由浏览器内核访问设备。基于WebAssembly的游戏应用调用JavaScript导入的Imported函数,需要将WebAssembly中强类型的数据结构转换为JavaScript无类型数据结构;然后JavaScript调用浏览器内核提供的Web API又需要将无类型的JavaScript数据结构转为强类型的native数据结构,中间存在巨大的性能瓶颈。在本实施方式中,预先建立了接口标识和系统接口的对应关系,从而将WebAssembly链接的Web API与原生的浏览器代码直接绑定,当接收到游戏应用的接口调用请求时,从具有对应关系的接口标识和系统接口中确定接口调用请求指示的目标接口标识对应的目标系统接口的系统native实现,通过目标系统接口的系统native实现访问目标系统接口,从而减少了WebAssembly与JavaScript的数据交换与封箱拆箱过程,提高了游戏应用调用系统接口的效率。
可见,通过上述装置,预先建立接口标识和系统接口的对应关系,在接收到网页应用发送的接口调用请求时读取接口调用请求中指示的目标接口标识,从具有对应关系的接口标识和系统接口中确定该目标接口标识对应的目标系统接口,并调用该目标系统接口执行网页应用指示的目标操作,从而省去了网页应用调用系统接口过程中JavaScript的中转过程,缩短了系统接口访问的流程,减少数据类型转换的耗时,从而实现了提高网页应用调用系统接口的效率的技术效果,进而解决了相关技术中网页应用调用系统接口的效率较低的技术问题。
作为一种可选的方案,确定模块包括:
1)导入单元,用于将内建模块导入网页应用所在的浏览器内核的虚拟机中,其中,内建模块用于封装具有对应关系的接口标识和系统接口;
2)第一查找单元,用于从内建模块中查找目标系统接口标识;
3)确定单元,用于将查找到的目标系统标识对应的系统接口确定为目标系统接口。
可选地,在本实施例中,调用模块包括:调用单元,用于通过虚拟机调用目标系统接口执行目标操作。
可选地,在本实施例中,如图3所示,浏览器内核将内建一个WebAssembly模块(Builtin Wasm Module,相当于上述内建模块),该模块封装内核导出给JavaScript的WebAPI的native实现(相当于上述具有对应关系的接口标识和系统接口),并将该模块的对象导出给JavaScript窗口(window)对象,应用引擎可以通过检查该对象是否存在以保证不同客户端的兼容性。在应用引擎初始化过程中,将以前导入JavaScriptObject对象替换为导入内建的WebAssembly模块,后续应用引擎访问Web GL等接口均变换为内建的WebAssembly模块访问WebGL native实现,从而减少JavaScript数据类型转换带来的性能损耗。
作为一种可选的方案,上述装置还包括:
1)第二接收模块,用于接收网页应用发送的内存访问请求,其中,内存访问请求用于请求访问网页应用在浏览器内核中的堆内存;
2)访问模块,用于响应内存访问请求访问浏览器内核中JavaScript的目标内存缓冲区,其中,目标内存缓冲区为在JavaScript中为网页应用配置的堆内存区域。
可选地,在本实施例中,通过JavaScript ArrayBuffer模拟WebAssembly的堆内存,内存操作被限制在JavaScript虚拟机中,避免了native实现直接操作设备内存引起的安全性和稳定性较差的问题。
作为一种可选的方案,上述装置还包括:
1)加载模块,用于在浏览器内核中加载网页应用对应的第一应用引擎,其中,第一应用引擎用于在浏览器内核中运行网页应用;
2)运行模块,用于在第一应用引擎中运行网页应用。
可选地,在本实施例中,加载模块包括:第二查找单元,用于在浏览器内核的数据库中查找第一应用引擎;加载单元,用于在查找到第一应用引擎并且查找到的第一应用引擎的版本不低于网页应用对应的引擎版本的情况下,加载第一应用引擎;处理单元,用于在未查找到第一应用引擎或者查找到的第二应用引擎的版本低于网页应用对应的引擎版本的情况下,从网页应用对应的服务器获取第一应用引擎,将第一应用引擎保存到数据库中,并加载第一应用引擎。
可选地,在本实施例中,处理单元用于:从服务器的引擎库中拉取第一应用引擎的数据流;将数据流编译成目标格式的引擎模块;将引擎模块保存到数据库中。
在一个可选的实施方式中,以游戏应用为例,游戏引擎体积通常较大,且多个游戏可能会共用同样的应用引擎,为减少引擎加载的时间,也为了避免使用相同游戏引擎的游戏重复下载引擎,如图4所示,提供了一种游戏引擎额管理策略:
当HTML页面中的JavaScript请求指定游戏引擎时,浏览器内核从数据库(Database)中获取信息检测该引擎是否安装并且版本是否匹配。
如未安装或已安装版本低于游戏请求的版本,则向服务器(Server)拉取对应的引擎库,引擎库作为WebAssembly资源(.wasm)文件通过XHR拉取数据流,编译成WebAssembly模块(Compiled Wasm Module),序列化后存储在数据库(Database)中。不同于插件方案必须以独立文件形式下载只能在客户端下载界面进行交互,上述策略的拉取、编译、存储过程均可以在HTML页面交互。如已安装且安装的版本高于或等于游戏请求的版本,则直接从数据库中读取并反序列化WebAssembly模块(Compiled Wasm Module)加载游戏引擎。
可选地,在上述可选的实施方式中,作为游戏引擎,最主要考虑的就是性能,本实施方式通过WebAssembly实现游戏引擎逻辑,WebAssembly是可以运行在JavaScript引擎上的二进制格式,具有体积小、解析和执行速度快等特点。如图5所示,提供了一种基于WebAssembly的游戏框架层次架构:本架构通过WebAssembly实现Runtime层,提供媒体(Media)、粒子系统(Particle)、物理引擎(Physics)、虚拟现实(VR)、动画(Animation)、持久化存储(Storage)、渲染引擎(Renderer)等能力,上述能力可以基于Browser层的浏览器Web API进行扩展。
在游戏逻辑层,支持JavaScript或增强类型TypeScript开发,以提升开发效率;对性能要求较高的游戏逻辑也可以基于C++等强类型语言编译成WebAssembly运行在JavaScript虚拟机上。
可选地,上述WebAssembly实现的游戏引擎逻辑可以用asm.js代替,asm.js是由Mozilla提出的一个基于JS的语法标准,主要是为了提升JavaScript引擎的执行效率,而WebAssembly可以认为是asm.js的进阶版本,解析和执行性能比asm.js更高,也得到了Google、Apple、Microsoft等更多浏览器厂商的支持。
作为一种可选的方案,上述装置还包括:
1)第一获取模块,用于通过浏览器内核的网页主线程获取第一应用引擎的图形元素;
2)转换模块,用于通过离屏图形元素接口将第一应用引擎的图形元素转换为离屏的图形元素;
3)处理模块,用于创建网页工作线程,并将离屏的图形元素传递给网页工作线程;
4)第二获取模块,用于通过网页工作线程获取离屏的图形元素对应的绘制上下文接口;
5)绘制模块,用于通过绘制上下文接口在网页工作线程上绘制离屏的图形元素对应的图像;
6)传递模块,用于将图像传递给第一应用引擎;
7)渲染模块,用于通过第一应用引擎将图像渲染到第一应用引擎的图像元素上。
可选地,在本实施例中,上述网页主线程可以但不限于包括Renderer。网页工作线程可以但不限于包括Web Worker,当在HTML页面中执行JavaScript时,页面的状态是不可响应的,直到JavaScript执行完成,WebWorker是一种在后台运行JavaScript的机制,不影响页面性能。第一应用引擎的图形元素可以但不限于包括HTML canvas元素。离屏图形元素接口可以但不限于包括OffscreenCavnas API。离屏的图形元素可以但不限于包括OffscreenCavnas,OffscreenCanvas提供一个可以离屏渲染的canvas对象,允许在WebWorker环境中绘制canvas元素。绘制上下文接口可以但不限于包括WebGL,WebGL是Web平台3D图形渲染API,可以利用GPU实现3D图形绘制加速,减少CPU占用。
在一个可选的实施方式中,以游戏应用为例,游戏逻辑相对复杂且每一帧执行事件比较客观,如果直接放在网页主线程(Renderer)执行会影响网页排版绘制以及会对事件交互等操作产生响应,在本实施方式中,将引擎执行和绘制逻辑放在单独的Web Worker中处理,尽量减少网页主线程的压力。如图6所示,网页主线程(Renderer)初始化时,获取游戏引擎的HTML canvas元素,通过OffscreenCavnas API转换成OffscreenCavnas,并新建WebWorker,将该OffscreenCavnas传递给WebWorker。
网页主线程(Renderer)代码如下:
Web Worker在接收到OffscreenCanvas后,获取WebGL上下文,并传递给游戏引擎,引擎即可将游戏渲染到HTML canvas中。
Web Worker代码如下:
本发明实施例的应用环境可以但不限于参照上述实施例中的应用环境,本实施例中对此不再赘述。本发明实施例提供了用于实施上述实时通信的连接方法的一种可选的具体应用示例。
作为一种可选的实施例,上述系统接口的调用方法可以但不限于应用于如图8所示的网页应用调用系统接口的场景中。在本场景中,以游戏应用为例,实现了一种高性能的浏览器游戏框架,该框架无需集成游戏引擎插件,利用WebAssembly实现轻量、高效的游戏引擎逻辑,利用WebWorker实现非阻塞式JavaScript调用,利用OffscreenCavnas获取可以运行在Web Worker环境中的WebGL上下文,利用WebGL实现GPU图形加速;实现逻辑通过JavaScript ArrayBuffer模拟WebAssembly的堆内存保证安全性和稳定性,将WebAssembly链接的Web API直接绑定到原生的浏览器代码中以节省数据转换耗时保证执行性能,并提供引擎管理策略实现引擎下载安装、版本控制等逻辑。
在本场景中,如图8所示,通过HTML Canvas元素显示游戏画面,用户打开使用该组件的HTML页面时,如对应的游戏引擎未安装,则询问用户是否需要安装该引擎,安装完成后,不同于NPAPI插件需要刷新页面才能加载,本框架可以直接加载游戏。为提升游戏体验,游戏界面可以全屏显示。浏览器游戏框架通过WebAssembly实现引擎逻辑,并将WebAssembly链接的Web API直接绑定到原生的浏览器代码,减少WebAssembly与JavaScript的数据交换与封箱拆箱过程,不会出现其他虚拟机语言(包括JavaScript)实现带来的性能瓶颈,也没有Flash插件带来的耗电和性能问题。
可选地,在本场景中,浏览器游戏框架通过JavaScript ArrayBuffer模拟WebAssembly的堆内存,内存操作被限制在JavaScript虚拟机中,避免了native实现直接操作设备内存引起的安全性和稳定性问题。
可选地,在本场景中,游戏引擎导出的API均为Web API,引擎不能直接操作系统API,所有操作受浏览器安全策略影响,不存在跨域访问等安全性问题
可选地,在本场景中,浏览器游戏框架的核心逻辑执行在Web Worker中,不会阻塞HTML页面交互。
可选地,在本场景中,浏览器游戏框架使用WebGL进行绘制,能够应用GPU图形加速提升渲染性能;并且为WebGL调用提供批处理接口,解决JavaScript API频繁调用引起的性能瓶颈。
根据本发明实施例的又一个方面,还提供了一种用于实施上述系统接口的调用的电子装置,如图9所示,该电子装置包括:一个或多个(图中仅示出一个)处理器902、存储器904、传感器906、编码器908以及传输装置910,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,接收网页应用发送的接口调用请求,其中,网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,接口调用请求用于请求调用目标系统接口执行目标操作,接口调用请求中携带有目标系统接口的目标接口标识;
S2,从具有对应关系的接口标识和系统接口中确定目标接口标识对应的目标系统接口;
S3,响应接口调用请求调用目标系统接口执行目标操作。
可选地,本领域普通技术人员可以理解,图9所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。
其中,存储器902可用于存储软件程序以及模块,如本发明实施例中的系统接口的调用方法和装置对应的程序指令/模块,处理器904通过运行存储在存储器902内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的目标组件的控制方法。存储器902可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器902可进一步包括相对于处理器904远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置910用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置910包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置910为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器902用于存储应用程序。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,接收网页应用发送的接口调用请求,其中,网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,接口调用请求用于请求调用目标系统接口执行目标操作,接口调用请求中携带有目标系统接口的目标接口标识;
S2,从具有对应关系的接口标识和系统接口中确定目标接口标识对应的目标系统接口;
S3,响应接口调用请求调用目标系统接口执行目标操作。
可选地,存储介质还被设置为存储用于执行上述实施例中的方法中所包括的步骤的计算机程序,本实施例中对此不再赘述。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种系统接口的调用方法,其特征在于,包括:
接收网页应用发送的接口调用请求,其中,所述网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,所述接口调用请求用于请求调用目标系统接口执行目标操作,所述接口调用请求中携带有所述目标系统接口的目标接口标识;
从具有对应关系的接口标识和系统接口中确定所述目标接口标识对应的所述目标系统接口;
响应所述接口调用请求调用所述目标系统接口执行所述目标操作。
2.根据权利要求1所述的方法,其特征在于,从具有对应关系的接口标识和系统接口中确定所述目标接口标识对应的所述目标系统接口包括:
将内建模块导入所述网页应用所在的浏览器内核的虚拟机中,其中,所述内建模块用于封装所述具有对应关系的接口标识和系统接口;
从所述内建模块中查找所述目标系统接口标识;
将查找到的所述目标系统标识对应的系统接口确定为所述目标系统接口。
3.根据权利要求2所述的方法,其特征在于,响应所述接口调用请求调用所述目标系统接口包括:
通过所述虚拟机调用所述目标系统接口执行所述目标操作。
4.根据权利要求1所述的方法,其特征在于,还包括:
接收所述网页应用发送的内存访问请求,其中,所述内存访问请求用于请求访问所述网页应用在所述浏览器内核中的堆内存;
响应所述内存访问请求访问所述浏览器内核中JavaScript的目标内存缓冲区,其中,所述目标内存缓冲区为在所述JavaScript中为所述网页应用配置的堆内存区域。
5.根据权利要求1所述的方法,其特征在于,在接收网页应用发送的接口调用请求之前,所述方法还包括:
在所述浏览器内核中加载所述网页应用对应的第一应用引擎,其中,所述第一应用引擎用于在所述浏览器内核中运行所述网页应用;
在所述第一应用引擎中运行所述网页应用。
6.根据权利要求5所述的方法,其特征在于,在所述浏览器内核中加载所述网页应用对应的所述第一应用引擎包括:
在所述浏览器内核的数据库中查找所述第一应用引擎;
在查找到所述第一应用引擎并且查找到的所述第一应用引擎的版本不低于所述网页应用对应的引擎版本的情况下,加载所述第一应用引擎;
在未查找到所述第一应用引擎或者查找到的第二应用引擎的版本低于所述网页应用对应的引擎版本的情况下,从所述网页应用对应的服务器获取所述第一应用引擎,将所述第一应用引擎保存到所述数据库中,并加载所述第一应用引擎。
7.根据权利要求6所述的方法,其特征在于,从所述网页应用对应的服务器获取所述第一应用引擎,将所述第一应用引擎保存到所述数据库中包括:
从所述服务器的引擎库中拉取所述第一应用引擎的数据流;
将所述数据流编译成目标格式的引擎模块;
将所述引擎模块保存到所述数据库中。
8.根据权利要求5所述的方法,其特征在于,在所述第一应用引擎中运行所述网页应用之后,所述方法还包括:
通过所述浏览器内核的网页主线程获取所述第一应用引擎的图形元素;
通过离屏图形元素接口将所述第一应用引擎的图形元素转换为离屏的图形元素;
创建网页工作线程,并将所述离屏的图形元素传递给所述网页工作线程;
通过所述网页工作线程获取所述离屏的图形元素对应的绘制上下文接口;
通过所述绘制上下文接口在所述网页工作线程上绘制所述离屏的图形元素对应的图像;
将所述图像传递给所述第一应用引擎;
通过所述第一应用引擎将所述图像渲染到所述第一应用引擎的图像元素上。
9.一种系统接口的调用装置,其特征在于,包括:
第一接收模块,用于接收网页应用发送的接口调用请求,其中,所述网页应用为在网页上运行的不具备直接调用系统接口的能力的应用,所述接口调用请求用于请求调用目标系统接口执行目标操作,所述接口调用请求中携带有所述目标系统接口的目标接口标识;
确定模块,用于从具有对应关系的接口标识和系统接口中确定所述目标接口标识对应的所述目标系统接口;
调用模块,用于调用响应所述接口调用请求调用所述目标系统接口执行所述目标操作。
10.根据权利要求9所述的装置,其特征在于,确定模块包括:
导入单元,用于将内建模块导入所述网页应用所在的浏览器内核的虚拟机中,其中,所述内建模块用于封装所述具有对应关系的接口标识和系统接口;
第一查找单元,用于从所述内建模块中查找所述目标系统接口标识;
确定单元,用于将查找到的所述目标系统标识对应的系统接口确定为所述目标系统接口。
11.根据权利要求9所述的装置,其特征在于,还包括:
第二接收模块,用于接收所述网页应用发送的内存访问请求,其中,所述内存访问请求用于请求访问所述网页应用在所述浏览器内核中的堆内存;
访问模块,用于响应所述内存访问请求访问所述浏览器内核中JavaScript的目标内存缓冲区,其中,所述目标内存缓冲区为在所述JavaScript中为所述网页应用配置的堆内存区域。
12.根据权利要求9所述的装置,其特征在于,在接收网页应用发送的接口调用请求之前,所述装置还包括:
加载模块,用于在所述浏览器内核中加载所述网页应用对应的第一应用引擎,其中,所述第一应用引擎用于在所述浏览器内核中运行所述网页应用;
运行模块,用于在所述第一应用引擎中运行所述网页应用。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于通过所述浏览器内核的网页主线程获取所述第一应用引擎的图形元素;
转换模块,用于通过离屏图形元素接口将所述第一应用引擎的图形元素转换为离屏的图形元素;
处理模块,用于创建网页工作线程,并将所述离屏的图形元素传递给所述网页工作线程;
第二获取模块,用于通过所述网页工作线程获取所述离屏的图形元素对应的绘制上下文接口;
绘制模块,用于通过所述绘制上下文接口在所述网页工作线程上绘制所述离屏的图形元素对应的图像;
传递模块,用于将所述图像传递给所述第一应用引擎;
渲染模块,用于通过所述第一应用引擎将所述图像渲染到所述第一应用引擎的图像元素上。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至8任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810276829.2A CN108563517B (zh) | 2018-03-30 | 2018-03-30 | 系统接口的调用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810276829.2A CN108563517B (zh) | 2018-03-30 | 2018-03-30 | 系统接口的调用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563517A true CN108563517A (zh) | 2018-09-21 |
CN108563517B CN108563517B (zh) | 2020-11-03 |
Family
ID=63533542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810276829.2A Active CN108563517B (zh) | 2018-03-30 | 2018-03-30 | 系统接口的调用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563517B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032614A (zh) * | 2019-04-18 | 2019-07-19 | 成都四方伟业软件股份有限公司 | 基于wasm的地图矢量渲染方法和装置 |
CN110058904A (zh) * | 2019-04-24 | 2019-07-26 | 广东三维家信息科技有限公司 | 数据转移方法、装置及服务器 |
CN110166543A (zh) * | 2019-05-16 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 应用程序处理方法、装置和计算机设备 |
CN110198479A (zh) * | 2019-05-24 | 2019-09-03 | 浪潮软件集团有限公司 | 一种基于webassembly的浏览器音视频解码播放方法 |
CN110297675A (zh) * | 2019-04-23 | 2019-10-01 | 五八有限公司 | 模块间相互调用的方法、装置、电子设备及存储介质 |
CN110647739A (zh) * | 2019-07-26 | 2020-01-03 | 平安科技(深圳)有限公司 | 软件安装检测方法、装置、终端及存储介质 |
CN110662116A (zh) * | 2019-09-29 | 2020-01-07 | 中电福富信息科技有限公司 | 一种基于WebAssembly技术的Web播放器及播放方法 |
CN110677713A (zh) * | 2019-10-15 | 2020-01-10 | 广州酷狗计算机科技有限公司 | 视频图像处理方法及装置、存储介质 |
CN111142960A (zh) * | 2018-11-02 | 2020-05-12 | 中国电信股份有限公司 | 接口提供方法、装置和系统 |
CN111596959A (zh) * | 2019-02-21 | 2020-08-28 | 中科星图股份有限公司 | 应用程序跨平台开发移植方法及装置 |
CN113282378A (zh) * | 2021-07-23 | 2021-08-20 | 奥特酷智能科技(南京)有限公司 | 基于环境隔离子系统的车载系统 |
CN113360200A (zh) * | 2020-03-05 | 2021-09-07 | 北京沃东天骏信息技术有限公司 | 一种目标程序植入页面运行的方法和装置 |
WO2022032476A1 (zh) * | 2020-08-11 | 2022-02-17 | 厦门雅基软件有限公司 | 网页游戏的数据处理方法、装置、电子设备及计算机可读存储介质 |
CN116700841A (zh) * | 2023-08-03 | 2023-09-05 | 北京中电华大电子设计有限责任公司 | 一种原生api调用的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765617A (zh) * | 2015-05-04 | 2015-07-08 | 北京奇虎科技有限公司 | 基于html5实现的流应用功能接口分发方法及系统 |
US9104519B1 (en) * | 2013-06-17 | 2015-08-11 | Symantec Corporation | Provisioning partner aware apps on sandboxed operating systems |
CN105204875A (zh) * | 2014-06-11 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 网页调用native功能的方法和系统 |
CN105955833A (zh) * | 2016-06-06 | 2016-09-21 | 腾讯科技(深圳)有限公司 | 引擎调用方法和装置 |
CN106095458A (zh) * | 2016-06-20 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 一种应用程序中插件的管理方法和装置 |
CN106980550A (zh) * | 2017-03-23 | 2017-07-25 | 青岛海信电器股份有限公司 | 扩展接口调用方法及装置 |
CN107145451A (zh) * | 2017-05-09 | 2017-09-08 | 深圳市茁壮网络股份有限公司 | 一种JavaScript对象存储、回收方法及装置 |
CN107193952A (zh) * | 2017-05-22 | 2017-09-22 | 千寻位置网络有限公司 | 基于多线程优化HTML5的Canvas性能的方法 |
-
2018
- 2018-03-30 CN CN201810276829.2A patent/CN108563517B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104519B1 (en) * | 2013-06-17 | 2015-08-11 | Symantec Corporation | Provisioning partner aware apps on sandboxed operating systems |
CN105204875A (zh) * | 2014-06-11 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 网页调用native功能的方法和系统 |
CN104765617A (zh) * | 2015-05-04 | 2015-07-08 | 北京奇虎科技有限公司 | 基于html5实现的流应用功能接口分发方法及系统 |
CN105955833A (zh) * | 2016-06-06 | 2016-09-21 | 腾讯科技(深圳)有限公司 | 引擎调用方法和装置 |
CN106095458A (zh) * | 2016-06-20 | 2016-11-09 | 腾讯科技(深圳)有限公司 | 一种应用程序中插件的管理方法和装置 |
CN106980550A (zh) * | 2017-03-23 | 2017-07-25 | 青岛海信电器股份有限公司 | 扩展接口调用方法及装置 |
CN107145451A (zh) * | 2017-05-09 | 2017-09-08 | 深圳市茁壮网络股份有限公司 | 一种JavaScript对象存储、回收方法及装置 |
CN107193952A (zh) * | 2017-05-22 | 2017-09-22 | 千寻位置网络有限公司 | 基于多线程优化HTML5的Canvas性能的方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142960B (zh) * | 2018-11-02 | 2023-11-14 | 中国电信股份有限公司 | 接口提供方法、装置和系统 |
CN111142960A (zh) * | 2018-11-02 | 2020-05-12 | 中国电信股份有限公司 | 接口提供方法、装置和系统 |
CN111596959A (zh) * | 2019-02-21 | 2020-08-28 | 中科星图股份有限公司 | 应用程序跨平台开发移植方法及装置 |
CN110032614A (zh) * | 2019-04-18 | 2019-07-19 | 成都四方伟业软件股份有限公司 | 基于wasm的地图矢量渲染方法和装置 |
CN110297675A (zh) * | 2019-04-23 | 2019-10-01 | 五八有限公司 | 模块间相互调用的方法、装置、电子设备及存储介质 |
CN110058904A (zh) * | 2019-04-24 | 2019-07-26 | 广东三维家信息科技有限公司 | 数据转移方法、装置及服务器 |
CN110166543A (zh) * | 2019-05-16 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 应用程序处理方法、装置和计算机设备 |
CN110198479A (zh) * | 2019-05-24 | 2019-09-03 | 浪潮软件集团有限公司 | 一种基于webassembly的浏览器音视频解码播放方法 |
CN110198479B (zh) * | 2019-05-24 | 2021-10-22 | 浪潮软件股份有限公司 | 一种基于webassembly的浏览器音视频解码播放方法 |
CN110647739A (zh) * | 2019-07-26 | 2020-01-03 | 平安科技(深圳)有限公司 | 软件安装检测方法、装置、终端及存储介质 |
CN110662116A (zh) * | 2019-09-29 | 2020-01-07 | 中电福富信息科技有限公司 | 一种基于WebAssembly技术的Web播放器及播放方法 |
CN110677713B (zh) * | 2019-10-15 | 2022-02-22 | 广州酷狗计算机科技有限公司 | 视频图像处理方法及装置、存储介质 |
CN110677713A (zh) * | 2019-10-15 | 2020-01-10 | 广州酷狗计算机科技有限公司 | 视频图像处理方法及装置、存储介质 |
CN113360200A (zh) * | 2020-03-05 | 2021-09-07 | 北京沃东天骏信息技术有限公司 | 一种目标程序植入页面运行的方法和装置 |
WO2022032476A1 (zh) * | 2020-08-11 | 2022-02-17 | 厦门雅基软件有限公司 | 网页游戏的数据处理方法、装置、电子设备及计算机可读存储介质 |
CN113282378B (zh) * | 2021-07-23 | 2021-11-12 | 奥特酷智能科技(南京)有限公司 | 基于环境隔离子系统的车载系统 |
CN113282378A (zh) * | 2021-07-23 | 2021-08-20 | 奥特酷智能科技(南京)有限公司 | 基于环境隔离子系统的车载系统 |
CN116700841A (zh) * | 2023-08-03 | 2023-09-05 | 北京中电华大电子设计有限责任公司 | 一种原生api调用的方法及装置 |
CN116700841B (zh) * | 2023-08-03 | 2023-09-26 | 北京中电华大电子设计有限责任公司 | 一种原生api调用的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108563517B (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108563517A (zh) | 系统接口的调用方法及装置 | |
CN103713891B (zh) | 一种在移动设备上进行图形渲染的方法和装置 | |
CN106022483B (zh) | 机器学习模型之间进行转换的方法与设备 | |
CN107632824B (zh) | 一种增强现实模块的生成方法、生成装置以及生成系统 | |
CN111408138B (zh) | 基于游戏引擎的渲染方法、装置及电子设备 | |
CN103425491B (zh) | 一种游戏引擎 | |
JP4913777B2 (ja) | Webページ配信システム | |
CN105824900A (zh) | 一种基于react-native的页面展示系统 | |
CN110908712A (zh) | 移动端跨平台的数据处理方法和设备 | |
TW201235072A (en) | Method and apparatus for gaming based on mobile terminal | |
CN113079216B (zh) | 一种云应用的实现方法、装置、电子设备及可读存储介质 | |
CN108600331A (zh) | 交互界面呈现方法、客户端、终端及系统 | |
CN107479873A (zh) | 一种app页面模块化开发方法、电子设备及存储介质 | |
CN112316433A (zh) | 游戏画面渲染方法、装置、服务器和存储介质 | |
CN107861754A (zh) | 数据封装、处理方法、装置及电子设备 | |
CN115550687A (zh) | 三维模型场景交互方法、系统、设备、装置及存储介质 | |
CN102622217A (zh) | 一种跨屏运行应用的方法及系统 | |
CN115065684A (zh) | 数据处理方法、装置、设备以及介质 | |
US20230185595A1 (en) | Method for realizing live migration, chip, board, and storage medium | |
CN111506393A (zh) | 一种基于arm的虚拟化装置及其使用方法 | |
CN113129205A (zh) | 一种电子设备及计算机系统 | |
CN105550050A (zh) | 硬件通信的方法及装置 | |
CN115794400A (zh) | 深度学习模型的内存管理方法、装置、设备及存储介质 | |
CN115393490A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN112330816B (zh) | Ar识别的处理方法、装置和电子装置 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221130 Address after: 1402, Floor 14, Block A, Haina Baichuan Headquarters Building, No. 6, Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen, Guangdong 518100 Patentee after: Shenzhen Yayue Technology Co.,Ltd. Address before: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |