AWTK(Toolkit AnyWhere): 為嵌入式、手機和案頭開發的通用GUI【轉】

來源:互聯網
上載者:User

標籤:配置   專註   detail   design   tag   windows應用   應用   http   進位   

轉自:80958279

AWTK = Toolkit AnyWhere

AWTK是吸取了FTK和CanTK的精華,重新開發的GUI,計劃分以下幾個階段實施:

  • 第一階段專註於嵌入式系統,到達並超越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即可開發一些簡單的圖形應用程式。

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

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

  4. 豐富的GUI組件。提供視窗、對話方塊和各種常用的組件(使用者可以配置自己需要的組件,降低對運行環境的要求)。

  5. 支援多種字型格式。內建位元影像字型(並提供轉換工具),也可以使用stb_truetype或freetype載入ttf字型。

  6. 支援多種圖片格式。內建位元影像圖片(並提供轉換工具),也可以使用stb_image載入png/jpg等格式的圖片。

  7. 緊湊的二進位介面描述格式。可以手工編輯的XML格式的介面描述檔案,也可以使用Qt Designer設計介面,然後轉換成緊湊的二進位介面描述格式,提高運行效率,減小記憶體開銷。

  8. 支援主題並採用緊湊的二進位格式。開發時使用XML格式描述主題,然後轉換成緊湊的二進位格式,提高運行效率,減小記憶體開銷。

  9. 支援裸系統,無需OS和檔案系統。字型、圖片、主題和介面描述資料都編譯到代碼中,以常量資料的形式存放,運行時無需載入到記憶體。

  10. 內建agg/picasso/nanovg實現高品質的向量動畫。

  11. 支援視窗動畫、控制項動畫和滑動動畫等現代GUI常見特性。

  12. 支援國際化(Unicode、字串翻譯和IME等)。

  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所在的目錄,並運行下列命令):

sconsbin\demoui
  • 1
  • 2
各個平台的移植
  • stm32f103ze

  • stm32f429igtx

  • awtk-aworks-rt1052

文檔1.使用文檔
  • AWTK控制項的布局參數介紹
  • AWTK介面描述檔案介紹
  • AWTK中的圖片顯示方式
  • AWTK中的向量圖繪圖函數
  • AWTK中的事件處理函數
  • AWTK中的國際化之字串翻譯
  • AWTK中的主題
  • AWTK中的資源管理員
  • AWTK中的視窗動畫
  • AWTK中的控制項動畫
  • LCD旋轉(橫屏與豎屏)
  • AWTK中的IME
2.HowTos
  • 如何在非GUI線程操作GUI控制項
3.內部原理
  • AWTK指令碼綁定的實現原理 - lua綁定
4.移植文檔
  • 嵌入式平台移植注意事項
  • 將AWTK移植到STM32f103ze裸系統
  • 將AWTK移植到STM32f429igtx裸系統
  • 將AWTK移植到AWorks平台
5.技術筆記
  • FrameBuffer的幾種使用方式
  • LCD介面的三種實現方式
任務完成情況

TODO.md

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。 80958279文章標籤: GUI AWTK 個人分類: 遊戲引擎/GUI的設計與實現 嵌入式GUI FTK

AWTK(Toolkit AnyWhere): 為嵌入式、手機和案頭開發的通用GUI【轉】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.