一、介紹
-
- 關於 iotjs
iotjs 是三星開源的 javascript 物聯網開發平臺。它爲 javascript 應用程序提供了訪問硬件、網絡、文件系統和異步化的能力,功能類似於 nodejs,但無論是代碼體積還是內存需求,iotjs 都要小很多,是用 javascript 開發 iot 設備應用程序的首選。
-
- 關於 AWTK
AWTK 全稱 Toolkit AnyWhere,是 ZLG 開發的開源 GUI 引擎,旨在爲嵌入式系統、WEB、各種小程序、手機和 PC 打造的通用 GUI 引擎,爲用戶提供一個功能強大、高效可靠、簡單易用、可輕鬆做出炫酷效果的 GUI 引擎。
awtk-iotjs 將 awtk 和 iotjs 有機結合起來,用 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 沒編譯過。