本篇內(nèi)容主要講解“AWTK WEB版移植怎么實(shí)現(xiàn)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“AWTK WEB版移植怎么實(shí)現(xiàn)”吧!
專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)五通橋免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
AWTK-WEB版本對(duì)AWTK是很重要的,主要原因有:
讓用C語(yǔ)言開發(fā)的AWTK應(yīng)用程序,在不需要修改源碼的情況下,能在瀏覽器中運(yùn)行。這樣做的好主要在于,可以很方便的向客戶展示項(xiàng)目。你只需分享一個(gè)鏈接,客戶就可以在瀏覽器中打開,并看到實(shí)際的運(yùn)行效果,這是一種非常棒的體驗(yàn)。
把AWTK編譯成一個(gè)JS庫(kù),你可以用JS開發(fā)AWTK應(yīng)用程序,并在瀏覽器中運(yùn)行。AWTK-JS讓AWTK支持用JS來(lái)開發(fā)AWTK應(yīng)用程序,并在嵌入式系統(tǒng)中運(yùn)行,但不能在瀏覽器中運(yùn)行。而AWTK-WEB則是讓AWTK支持用JS來(lái)開發(fā)AWTK應(yīng)用程序,并且能夠在瀏覽器中運(yùn)行,這打通了嵌入式和WEB之間的壁壘。
開發(fā)各種小程序也是AWTK的目標(biāo)之一。而小程序無(wú)一例外都是用javascript開發(fā)的,WEB版本移植好了,支持小程序開發(fā)也就非常容易了,所以我們需要先邁過(guò)這個(gè)坎。
要將用C語(yǔ)言開發(fā)的AWTK移植到WEB上,就得將C語(yǔ)言編譯成Javascript或者WebAssembly,emscripten為這個(gè)編譯提供切實(shí)可行的途徑,emscripten是一個(gè)偉大的工具,經(jīng)過(guò)不少大型項(xiàng)目的驗(yàn)證,已經(jīng)非常成熟了,可行性是沒有問題的。
但是可行和實(shí)際能否搞定是有差距的,寫個(gè)RTOS內(nèi)核是可行的,但是實(shí)際成功的并不多。能用和好用也是有差距的,甚至是成功與失敗的差別,GUI引擎很多,但是90%以上的都只能算是demo。AWTK的WEB不但要能用,而且要好用才行,所以整個(gè)移植過(guò)程就變得有趣了。
我把在移植過(guò)程遇到的問題,面臨的各種選擇做個(gè)筆記,以供有需要的朋友參考。
簡(jiǎn)單粗暴的將AWTK編譯成WEB版本,中間遇到的問題和要做的工作可能少很多(當(dāng)然也許有些問題更難解決)。但那只能讓AWTK的WEB版本可用,離好用還有不小差距。為了讓AWTK WEB好用,在移植之初就定了以下目標(biāo):
WEB版本要從網(wǎng)上加載資源,體積大小關(guān)系A(chǔ)PP的加載時(shí)間,對(duì)用戶體驗(yàn)造成直接影響。為了減小JS的體積,我們做了如下選擇:
不使用SDL作為移植層。使用SDL作為移植層,就得加入SDL、navavg、stbimage和stbfont等一大堆東西,這會(huì)讓代碼量加倍,而且字體只能使用APP自己的字體,資源體積就更沒法容忍了。
缺省字體使用瀏覽器自帶的字體。字體文件很大,動(dòng)輒就是幾M甚至十幾M。缺省字體使用瀏覽器自帶的字體,可以大大降低資源的體積。而特殊字體通常很小,仍然采用APP自己的字體。
圖片采用獨(dú)立資源。這樣可以減小顯示第一個(gè)界面前所加載的資源的大小,等到第一個(gè)界面出來(lái)之后,可以顯示加載資源的進(jìn)度,這樣大大增強(qiáng)用戶體驗(yàn)。
UI和Style數(shù)據(jù)采用二進(jìn)制常量,編譯到代碼中,以減少訪問網(wǎng)絡(luò)的次數(shù),這些數(shù)據(jù)不大,對(duì)代碼加載時(shí)間產(chǎn)生的影響可以忽略。
圖片解碼使用瀏覽器本身的功能。這樣解碼速度會(huì)更快,也避免使用 stbimage解碼庫(kù),減小代碼體積。
字體解碼使用瀏覽器本身的功能。這樣解碼速度會(huì)更快,也避免使用stbfont解碼庫(kù),減小代碼體積。
窗口動(dòng)畫采用WebGL貼圖,可以提高窗口動(dòng)畫的效果。
啟用臟矩形算法。不變不畫,有變只畫變的部分。
窗口動(dòng)畫采用WebGL貼圖,正常繪制采用Canvas 2D接口。
少用或不用第三方庫(kù)。比如SDL有WEB版本的移植,但是移植到各種小程序可能就有問題,修改第三方的庫(kù)是非常麻煩的事情,后期維護(hù)和升級(jí)也是一個(gè)難題。
隔離瀏覽器特定的功能。事件和輸入法,各個(gè)小程序處理方式不同,Canvas接口有小的差異,必須把它們隔離開來(lái)。
保守的使用瀏覽器提供的功能,避免移植到其它平臺(tái)時(shí)遇到麻煩。
自動(dòng)適配支持WebAssembly和不支持WebAssembly的平臺(tái)。WebAssembly很快很小,但是部分瀏覽器和小程序并不支持,必須自動(dòng)檢查,并加載不同的程序。
到此,相信大家對(duì)“AWTK WEB版移植怎么實(shí)現(xiàn)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁(yè)題目:AWTKWEB版移植怎么實(shí)現(xiàn)
當(dāng)前網(wǎng)址:http://www.rwnh.cn/article18/gjhpgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、用戶體驗(yàn)、商城網(wǎng)站、小程序開發(fā)、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)