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