1. 程式人生 > >AWTK(Toolkit AnyWhere): 為嵌入式、手機和桌面開發的通用GUI

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

AWTK = Toolkit AnyWhere

AWTK是吸取了FTKCanTK的精華,重新開發的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、字串翻譯和輸入法等)。

  13. 可移植。支援移植到各種RTOS和嵌入式Linux系統,並通過SDL在各種流行的PC/手機系統上執行。

  14. 指令碼化。從API註釋中提取API的描述資訊,通過這些資訊可以自動生成各種指令碼的繫結程式碼。

  15. 採用LGPL協議開源釋出,在商業軟體中使用時無需付費。

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

模擬執行:

Mac

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

brew install scons sdl2

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

scons
./bin/demoui

Ubuntu

如果沒有安裝scons和libsdl2-dev,請在終端執行下面的命令:

sudo apt-get install scons libsdl2-dev

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

scons
./bin/demoui

Windows

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

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

scons
bin\demoui

各個平臺的移植

文件

1.使用文件

2.HowTos

3.內部原理

4.移植文件

5.技術筆記

任務完成情況

相關推薦

AWTK(Toolkit AnyWhere): 嵌入式手機桌面開發通用GUI

AWTK = Toolkit AnyWhere AWTK是吸取了FTK和CanTK的精華,重新開發的GUI,計劃分以下幾個階段實施: 第一階段專注於嵌入式系統,到達並超越TouchGfx/Embedded Wizard的功能。計劃在2018/9底完成。 第

js非空驗證身份證格式驗證手機電話格式驗證(前端框架用了miniui)

//法人代表身份證 var w_frsfz=mini.get("w_frsfz").getValue(); var reg = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d

P語言: 非同步容錯不確定性而生的程式語言

譯者注:P語言是一款由微軟、加州大學伯克利分校和倫敦帝國學院共同研發完成的程式語言,它在處理併發、故障切換等方面具有很強的優勢。本文介紹了P語言的起源、特性及其使用場景。以下是譯文。新興應用程式的複雜性需要使用新興的方式去理解,然後才能高效地去構建、測試和除錯。

題目三:給定一個數組,值可以0,請返回累加給定值k的最長子陣列長度。

import java.util.HashMap; /** * * 2、給定一個數組,值可以為正、負和0,請返回累加和為給定值k的最長子陣列長度。 * 咱們可以反推,比如:1- 100,陣列和為1000. * 要求最長和為300的子陣列,我可以反著求第一

題目四:給定一個數組,值可以0,請返回累加小於等於k的最長子陣列長度。 時間複雜度:O(n)

import java.util.HashMap; /** * * 3、給定一個數組,值可以為正、負和0,請返回累加和小於等於k的最長子陣列長度。 時間複雜度:O(n) * * 這裡需要分為兩步,第一步是獲取,以每個位置開頭最小和的長度。第二步,從0到N逐

自適應電腦手機iPad的網頁設計方法

隨著3G的普及,越來越多的人使用手機上網。 移動裝置正超過桌面裝置,成為訪問網際網路的最常見終端。於是,網頁設計師不得不面對一個難題:如何才能在不同大小的裝置上呈現同樣的網頁? 手機的螢幕比較小,寬度通常在600畫素以下;PC的螢幕寬度,一般都在1000畫素以上(目前主流寬度是1366×768)

Java框架-mybatis延遲載入快取註解開發

1. 延遲載入 1.1 概念 在需要用到資料時才進行載入,不需要用到資料時就不載入資料。也稱作懶載入 好處:先從單表查詢,需要時再從關聯表去關聯查詢,大大提高資料庫效能 缺點:在大批量資料查詢時,由於查詢會耗時,可能導致使用者等待時間變長,影響使用者體驗

使用VueReactKoa開發個人部落格

前言 實習了大半年,又臨近畢業,一直想做一個屬於自己的部落格。於是就用Vue、React和Koa開發了一個服務端渲染的部落格系統。其中: - 後端管理使用Vue開發 - 前端頁面使用React服務端渲染框架nextjs - 介面服務使用Koa

使用BootstrapElectronJavaScript開發桌面應用

就會 ans .org 正在 ctype sso 環境變量 由於 力量 HTML一直是桌面軟件的重點,各種桌面軟件或者多或少都會嵌入一些HTML的代碼。而自從在了Nodejs後,使用HTML制作桌面就成為了可能。 這要感謝node-webkit引入了對桌面的支持,然後ele

7月26日雲棲精選夜讀:MySQL金融版線上發布會:它什麽是金融企業的首選_技術大佬產品神秘嘉賓本位“演繹”

user 社區 出發 嵌入式 幹貨 購物 開發 想法 log 原文地址 2017年8月10日,雲棲社區將迎來一場特殊的直播——阿裏雲數據庫MySQL金融版線上發布會。 屆時,我們不僅請到了阿裏雲金融業務部總監九河、阿裏雲數據庫掌門人褚霸以及阿裏雲數據庫產

童話故事 --- 藍牙通信 --- 連接手機嵌入式設備

uid size otto 開啟 技術分享 一點 send ftp 高科技 高飛狗: "常常的想,現在的你…" 布魯托: "哈羅!高飛!心情不錯嘛!" 高飛狗: "嗨!又遇到難題了,百思不得其解,頭昏眼花的,心情糟透了!"

java 驗證手機號碼電話號碼(包括最新的電信聯通移動號碼)

-s 轉義 電信號 auth input sim pem csharp class 一、目前的號碼段(2017-06-01更新) 二、代碼 package com.linbilin.test; import java.util.regex.Pattern;

用華eNSP模擬器配置HybridTrunkAccess三種鏈路類型端口

acc 數據包 相互 子網劃分 幫助 system-v 兩個 5.0 能夠   上一篇文章寫到三層交換機實現多個VLAN之間互相通訊,有朋友提問要如何進行配置,可有案例分析。其實那天我在寫的時候也有做過模擬,只是後來沒有保存。今天重新模擬一次,並附上詳細配置命令,希望能夠幫

IIS增加svgwoff等字體格式的MIME(20032008)

兩種 顯示 操作 技術分享 stream 測試 本地測試 需要 分享 因客戶需求,需要在本地添加空間這樣的字體支持,客戶本地測試如下圖:線上服務顯示效果如下圖:經百度查詢後,結果如下:使用了字體文件來顯示矢量的圖標,為了能在IIS上正常顯示圖標,可以通過增加iis的MIME

YUV420PYUV420SPNV12NV21RGB互相轉換並存儲JPEG以及PNG圖片

音視訊實踐學習 android全平臺編譯ffmpeg以及x264與fdk-aac實踐 ubuntu下使用nginx和nginx-rtmp-module配置直播推流伺服器 android全平臺編譯ffmpeg合併為單個庫實踐 android-studio使用c

python中將十六進位制轉化二進位制python中變更button的textbg

    def SpeedTobyte(self):         #print(self.Eabs.get())         byte = float(self.Eabs.get())/0.0

IP地址手機歸屬身份證查詢介面

從網上看到的,轉載過來 IP地址、手機歸屬和身份證查詢介面 1. 查詢手機:http://www.yodao.com/smartresult-xml/search.s?type=mobile&q=手機號碼 2. 查詢IP:http://www.yodao.com/smartresult-

3分鐘讀懂何分散式微服務叢集!

微服務是一種架構,也是在分散式範疇之內的。多微才叫微?在分散式系統中,微服務更加強調單一職責、輕量級通訊(HTTP)、獨立性並且程序隔離。好了,沒什麼好說的了,實踐出真知,建議大家多多瞭解 Spring-Cloud相關微服務元件。 一、分散式 小馬正在經營一個線上購物網站,名叫TT貓,有商品

利用opencv借取相機攝像頭手機電腦新增手勢或者體感操控

在展示PPT和產品發發布時,或者看電影時如果能用手勢操作切換會十分方便。這裡使用opencv的開源技術,輕鬆實現這一功能需求。我很久以前曾經寫一個篇被動攝像頭的文章,捕捉到攝像頭中有移動的物體時,開始錄相,移動消失,不再錄相。這樣具有簡單智慧的攝像頭,可以為客戶節省很多的磁碟

【Enweitech Software Works】創新實踐。致力於軟體與網際網路研究…專注網站建設與推廣軟體開發、雲端計算、手機APP定製電子資訊系統整合與應用資訊保安與資料管理軟體外包數字化解決方案企業資訊化諮詢服務。

創新實踐。致力於軟體與網際網路研究…專注網站建設與推廣、軟體開發、雲端計算、手機APP定製、電子資訊系統整合與應用、資訊保安與資料管理、軟體外包、數字化解決方案和企業資訊化諮詢服務。...