AWTK(Toolkit AnyWhere): 爲嵌入式、手機和桌面開發的通用GUI【轉】

轉自:https://blog.csdn.net/absurd/article/details/80958279git

AWTK = Toolkit AnyWhere

AWTK是吸收了FTKCanTK的精華,從新開發的GUI,計劃分如下幾個階段實施:github

  • 第一階段專一於嵌入式系統,到達並超越TouchGfx/Embedded Wizard的功能。計劃在2018/9底完成。
  • 第二階段用AWTK自己開發界面編輯器(或組態軟件IDE),從而驗證AWTK支持PC軟件開發的能力。計劃在2018年末完成。
  • 第三階段支持Mobile應用程序開發,這一步比較容易,由於在第一階段就是要把手機上的現代GUI推廣到傳統嵌入式系統中去。計劃在2019/3完成。
  • 第四階段支持2D遊戲開發,把之前開發遊戲引擎的經驗融合到AWTK中,方便開發交互式的多媒體應用。計劃在2019/6完成。

最終目標:算法

  • 支持開發嵌入式軟件。
  • 支持開發Linux應用程序。
  • 支持開發MacOS應用程序。
  • 支持開發Windows應用程序。
  • 支持開發Android應用程序。
  • 支持開發iOS應用程序。
  • 支持開發2D遊戲。

其主要特點有:編程

  1. 小巧。在精簡配置下,不依賴第三方軟件包,僅須要8K RAM+32K FLASH便可開發一些簡單的圖形應用程序。canvas

  2. 高效。採用髒矩形裁剪算法,每次只繪製和更新變化的部分,極大提升運行效率和能源利用率。ubuntu

  3. 穩定。經過良好的架構設計和編程風格、單元測試、動態(valgrind)檢查和Code Review保證其運行的穩定性。windows

  4. 豐富的GUI組件。提供窗口、對話框和各類經常使用的組件(用戶能夠配置本身須要的組件,下降對運行環境的要求)。架構

  5. 支持多種字體格式。內置位圖字體(並提供轉換工具),也可使用stb_truetype或freetype加載ttf字體。app

  6. 支持多種圖片格式。內置位圖圖片(並提供轉換工具),也可使用stb_image加載png/jpg等格式的圖片。編輯器

  7. 緊湊的二進制界面描述格式。能夠手工編輯的XML格式的界面描述文件,也可使用Qt Designer設計界面,而後轉換成緊湊的二進制界面描述格式,提升運行效率,減少內存開銷。

  8. 支持主題並採用緊湊的二進制格式。開發時使用XML格式描述主題,而後轉換成緊湊的二進制格式,提升運行效率,減少內存開銷。

  9. 支持裸系統,無需OS和文件系統。字體、圖片、主題和界面描述數據都編譯到代碼中,以常量數據的形式存放,運行時無需加載到內存。

  10. 內置agg/picasso/nanovg實現高質量的矢量動畫。

  11. 支持窗口動畫、控件動畫和滑動動畫等現代GUI常見特性。

  12. 支持國際化(Unicode、字符串翻譯和輸入法等)。

  13. 可移植。支持移植到各類RTOS和嵌入式Linux系統,並經過SDL在各類流行的PC/手機系統上運行。

  14. 腳本化。從API註釋中提取API的描述信息,經過這些信息能夠自動生成各類腳本的綁定代碼。

  15. 採用LGPL協議開源發佈,在商業軟件中使用時無需付費。

目前核心功能已經完成(還不具有應用到產品的水平),歡迎有興趣的朋友移植到各個RTOS。

模擬運行:

Mac

若是沒有安裝scons和sdl2,請在終端運行下面的命令(假定已安裝brew):

brew install scons sdl2
  • 1

編譯運行(在終端下,進入awtk所在的目錄,並運行下列命令):

scons
./bin/demoui
  • 1
  • 2

Ubuntu

若是沒有安裝scons和libsdl2-dev,請在終端運行下面的命令:

sudo apt-get install scons libsdl2-dev
  • 1

編譯運行(在終端下,進入awtk所在的目錄,並運行下列命令):

scons
./bin/demoui
  • 1
  • 2

Windows

(請先安裝scons和Visual Studio C++(版本>2012)

編譯運行(在命令行模式下,進入awtk所在的目錄,並運行下列命令):

scons
bin\demoui
  • 1
  • 2

各個平臺的移植

文檔

1.使用文檔

2.HowTos

3.內部原理

4.移植文檔

5.技術筆記

任務完成狀況

TODO.md

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/absurd/article/details/80958279
文章標籤: GUI AWTK
相關文章
相關標籤/搜索