[发明专利]一种WebAssembly加载方法、装置及存储介质在审
申请号: | 202011246964.6 | 申请日: | 2020-11-10 |
公开(公告)号: | CN112269602A | 公开(公告)日: | 2021-01-26 |
发明(设计)人: | 熊智;马健;温书豪;赖力鹏 | 申请(专利权)人: | 深圳晶泰科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F8/41;G06F8/51 |
代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙) 44248 | 代理人: | 胡吉科 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 webassembly 加载 方法 装置 存储 介质 | ||
1.一种WebAssembly的构建过程,其特征在于,包括如下几个步骤:
A1:采用emscripten编译器将c++源码编译到wasm文件和中间层build.js文件;
A2,读取wasm文件二进制内容,压缩内容,再转换为十六进制字符串;
A3,读取中间层build.js内容,与转换后的wasm字符串合并;
A4,进行封装,在合并的字符串前面注入自动解压代码;
A5,将封装后的字符串内容保存到本地文件,完成整个构建过程。
2.如权利要求1所述的构建过程,其特征在于,所述步骤A4中,封装代码的作用就是A2的反向过程:从十六进制提取出压缩内容,再解压,解压后得到的内容即为wasm文件原始的二进制内容,将wasm二进制内容赋值给Module全局变量。
3.如权利要求1所述的构建过程,其特征在于,所述步骤A4中,合并就是将封装的代码或字符串添加至 build.js内容或字符串前面。
4.一种如权利要求1所述的WebAssembly的加载过程,其特征在于,包括如下步骤:
B1,构建的生成文件被加载到web浏览器后,会进行解析执行;
B2,执行过程中会自动运行构建时封装的自动解压代码,进行wasm内容的解压和实例化。
5.如权利要求4所述的加载过程,其特征在于,所述步骤B1中,所述解析是浏览器自动完成的,当“构建生成的javascript文件”被加载到浏览器后,浏览器会自动解析并执行该javascript文件的内容。
6.如权利要求4所述的加载过程,其特征在于,所述浏览器执行“构建生成的文件”时,包括如下几个步骤:
执行步骤A4中封装的代码:先从十六进制字符串中提取出压缩内容;
将待压缩内容解压,得到wasm二进制内容,并赋值给Module全局变量。
7.如权利要求4所述的方法,其特征在于,此过程完成解压,执行完“构建生成的文件”后,会执行emscripten编译生成的中间层代码,所述中间层会判断Module全局变量中是否已经存在wasm二进制内容;若不存在,则通过http网络加载wasm二进制内容,加载完成之后再进行实例化;若存在,则直接使用Module全局变量中的wasm二进制内容进行实例化。
8.一种WebAssembl加载装置,其特征在于,包括:
编译模块:采用emscripten编译器将c++源码编译到wasm文件和中间层build.js文件;
第一读取模块:读取wasm文件二进制内容,压缩内容,再转换为十六进制字符串;
第二读取模块:读取中间层build.js内容,与转换后的wasm字符串合并;
处理模块:进行封装,在合并的字符串前面注入自动解压代码;
保存模块:将封装后的字符串内容保存到本地文件。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求4所述的加载方法。
10.一种加载装置,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求4所述的加载方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳晶泰科技有限公司,未经深圳晶泰科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011246964.6/1.html,转载请声明来源钻瓜专利网。