物聯網 GUI 開發套件 AWTK-IOTJS

一、介紹

iotjs 是三星開源的 javascript 物聯網開發平臺。它爲 javascript 應用程序提供了訪問硬件、網絡、文件系統和異步化的能力,功能類似於 nodejs,但無論是代碼體積還是內存需求,iotjs 都要小很多,是用 javascript 開發 iot 設備應用程序的首選。

AWTK 全稱 Toolkit AnyWhere,是 ZLG 開發的開源 GUI 引擎,旨在爲嵌入式系統、WEB、各種小程序、手機和 PC 打造的通用 GUI 引擎,爲用戶提供一個功能強大、高效可靠、簡單易用、可輕鬆做出炫酷效果的 GUI 引擎。

awtk-iotjsawtkiotjs 有機結合起來,用 javascript 打通 GUI、網絡和硬件,完全採用 javascript 開發物聯網應用程序。

二、編譯

  • 下載編譯 iotjs
git clone https://github.com/pando-project/iotjs.git
cd iotjs
./tools/build.py
cd -
  • 下載編譯 awtk
git clone https://github.com/zlgopen/awtk.git
cd awtk
scons
cd -
  • 下載編譯 awtk-js
git clone https://github.com/zlgopen/awtk-js.git
cd awtk-js
git clone https://github.com/jerryscript-project/jerryscript.git 3rd/jerryscript
scons
cd -
  • 下載編譯 awtk-iotjs

準備工作:

目前我不知道如何在 module.json 中指定編譯參數,所以只好修改 iotjs/CMakeLists.txt 了。請在倒數第二行增加下面這行代碼。

include(../awtk-iotjs/awtk-module/awtk.cmake)

下載編譯:

git clone https://github.com/zlgopen/awtk-iotjs.git
cd awtk-iotjs
./build.sh

請確認以上項目均在同一個目錄。

三、運行 DEMO

./run.sh demos/buttons.js

四、開發

在開發時可以使用:

  • iotjs 提供的模塊。
  • awtk-js 提供的 GUI 控件。
  • 其它第三方模塊。

與 awtk-js 主要差異是需要加載並初始化 awtk:

require('awtk').init(320, 480);

完整示例:

require('awtk').init(320, 480);

function applicationInit() {
  var win = TWindow.create(null, 0, 0, 0, 0); 
  var ok = TButton.create(win, 0, 0, 0, 0); 

  ok.setText("ok");
  ok.setSelfLayoutParams("center", "middle", "50%", "30");

  ok.on(TEventType.CLICK, function(evt) {
    var e = TPointerEvent.cast(evt);
    console.log("on click: " + e.x + " " + e.y);

    return TRet.OK;
  }); 

  win.layout();
}

applicationInit()

五、已知問題

  • 只支持 Linux 系統 (Ubuntu >= 16)。
  • 未 awtk-linux-fb 上驗證,可能修改一下腳本。

理論上 Windows 平臺也是可以的,但是 iotjs 沒編譯過。

六、內部實現文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章