[發明專利]一種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.szxzyx.cn/pat/books/202011246964.6/1.html,轉載請聲明來源鉆瓜專利網。





