AWTK-IOTJS物聯(lián)網(wǎng) GUI 開(kāi)發(fā)套件
一、介紹
-
- 關(guān)于 iotjs
iotjs 是三星開(kāi)源的 javascript 物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái)。它為 javascript 應(yīng)用程序提供了訪問(wèn)硬件、網(wǎng)絡(luò)、文件系統(tǒng)和異步化的能力,功能類(lèi)似于 nodejs,但無(wú)論是代碼體積還是內(nèi)存需求,iotjs 都要小很多,是用 javascript 開(kāi)發(fā) iot 設(shè)備應(yīng)用程序的首選。
-
- 關(guān)于 AWTK
AWTK 全稱(chēng) Toolkit AnyWhere,是 ZLG 開(kāi)發(fā)的開(kāi)源 GUI 引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機(jī)和 PC 打造的通用 GUI 引擎,為用戶(hù)提供一個(gè)功能強(qiáng)大、高效可靠、簡(jiǎn)單易用、可輕松做出炫酷效果的 GUI 引擎。
awtk-iotjs 將 awtk 和 iotjs 有機(jī)結(jié)合起來(lái),用 javascript 打通 GUI、網(wǎng)絡(luò)和硬件,完全采用 javascript 開(kāi)發(fā)物聯(lián)網(wǎng)應(yīng)用程序。
運(yùn)行效果截圖:
二、編譯
- 下載編譯 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
準(zhǔn)備工作:
目前我不知道如何在 module.json 中指定編譯參數(shù),所以只好修改 iotjs/CMakeLists.txt 了。請(qǐng)?jiān)诘箶?shù)第二行增加下面這行代碼。
include(../awtk-iotjs/awtk-module/awtk.cmake)
下載編譯:
git clone https://github.com/zlgopen/awtk-iotjs.git cd awtk-iotjs ./build.sh
請(qǐng)確認(rèn)以上項(xiàng)目均在同一個(gè)目錄。
三、運(yùn)行 DEMO
./run.sh demos/buttons.js
四、開(kāi)發(fā)
在開(kāi)發(fā)時(shí)可以使用:
- 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()
五、已知問(wèn)題
- 只支持 Linux 系統(tǒng) (Ubuntu >= 16)。
- 未 awtk-linux-fb 上驗(yàn)證,可能修改一下腳本。
理論上 Windows 平臺(tái)也是可以的,但是 iotjs 沒(méi)編譯過(guò)。
六、內(nèi)部實(shí)現(xiàn)文檔
