溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AWTK WEB版移植怎么實現

發布時間:2021-12-29 14:00:44 來源:億速云 閱讀:193 作者:iii 欄目:互聯網科技

本篇內容主要講解“AWTK WEB版移植怎么實現”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“AWTK WEB版移植怎么實現”吧!

一、WEB版本對AWTK意義

AWTK-WEB版本對AWTK是很重要的,主要原因有:

  • 讓用C語言開發的AWTK應用程序,在不需要修改源碼的情況下,能在瀏覽器中運行。這樣做的好主要在于,可以很方便的向客戶展示項目。你只需分享一個鏈接,客戶就可以在瀏覽器中打開,并看到實際的運行效果,這是一種非常棒的體驗。

  • 把AWTK編譯成一個JS庫,你可以用JS開發AWTK應用程序,并在瀏覽器中運行。AWTK-JS讓AWTK支持用JS來開發AWTK應用程序,并在嵌入式系統中運行,但不能在瀏覽器中運行。而AWTK-WEB則是讓AWTK支持用JS來開發AWTK應用程序,并且能夠在瀏覽器中運行,這打通了嵌入式和WEB之間的壁壘。

  • 開發各種小程序也是AWTK的目標之一。而小程序無一例外都是用javascript開發的,WEB版本移植好了,支持小程序開發也就非常容易了,所以我們需要先邁過這個坎。

二、如何實現WEB版本的移植

要將用C語言開發的AWTK移植到WEB上,就得將C語言編譯成Javascript或者WebAssembly,emscripten為這個編譯提供切實可行的途徑,emscripten是一個偉大的工具,經過不少大型項目的驗證,已經非常成熟了,可行性是沒有問題的。

但是可行和實際能否搞定是有差距的,寫個RTOS內核是可行的,但是實際成功的并不多。能用和好用也是有差距的,甚至是成功與失敗的差別,GUI引擎很多,但是90%以上的都只能算是demo。AWTK的WEB不但要能用,而且要好用才行,所以整個移植過程就變得有趣了。

我把在移植過程遇到的問題,面臨的各種選擇做個筆記,以供有需要的朋友參考。

三、WEB版本的目標及策略

簡單粗暴的將AWTK編譯成WEB版本,中間遇到的問題和要做的工作可能少很多(當然也許有些問題更難解決)。但那只能讓AWTK的WEB版本可用,離好用還有不小差距。為了讓AWTK WEB好用,在移植之初就定了以下目標:

1.體積要小。

WEB版本要從網上加載資源,體積大小關系APP的加載時間,對用戶體驗造成直接影響。為了減小JS的體積,我們做了如下選擇:

  • 不使用SDL作為移植層。使用SDL作為移植層,就得加入SDL、navavg、stbimage和stbfont等一大堆東西,這會讓代碼量加倍,而且字體只能使用APP自己的字體,資源體積就更沒法容忍了。

  • 缺省字體使用瀏覽器自帶的字體。字體文件很大,動輒就是幾M甚至十幾M。缺省字體使用瀏覽器自帶的字體,可以大大降低資源的體積。而特殊字體通常很小,仍然采用APP自己的字體。

  • 圖片采用獨立資源。這樣可以減小顯示第一個界面前所加載的資源的大小,等到第一個界面出來之后,可以顯示加載資源的進度,這樣大大增強用戶體驗。

2.速度要快。

  • UI和Style數據采用二進制常量,編譯到代碼中,以減少訪問網絡的次數,這些數據不大,對代碼加載時間產生的影響可以忽略。

  • 圖片解碼使用瀏覽器本身的功能。這樣解碼速度會更快,也避免使用 stbimage解碼庫,減小代碼體積。

  • 字體解碼使用瀏覽器本身的功能。這樣解碼速度會更快,也避免使用stbfont解碼庫,減小代碼體積。

  • 窗口動畫采用WebGL貼圖,可以提高窗口動畫的效果。

  • 啟用臟矩形算法。不變不畫,有變只畫變的部分。

3.功耗與性能兼顧。

  • 窗口動畫采用WebGL貼圖,正常繪制采用Canvas 2D接口。

4.最大化兼容性。

  • 少用或不用第三方庫。比如SDL有WEB版本的移植,但是移植到各種小程序可能就有問題,修改第三方的庫是非常麻煩的事情,后期維護和升級也是一個難題。

  • 隔離瀏覽器特定的功能。事件和輸入法,各個小程序處理方式不同,Canvas接口有小的差異,必須把它們隔離開來。

  • 保守的使用瀏覽器提供的功能,避免移植到其它平臺時遇到麻煩。

  • 自動適配支持WebAssembly和不支持WebAssembly的平臺。WebAssembly很快很小,但是部分瀏覽器和小程序并不支持,必須自動檢查,并加載不同的程序。

到此,相信大家對“AWTK WEB版移植怎么實現”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女