1]、关于 iotjs
iotjs 是三星开源的 javascript 物联网开发平台。它为 javascript 应用程序提供了访问硬件、网络、文件系统和异步化的能力,功能类似于 nodejs,但无论是代码体积还是内存需求,iotjs 都要小很多,是用 javascript 开发 iot 设备应用程序的首选。
2]、关于 awtk
awtk 全称 toolkit anywhere,是 zlg 开发的开源 gui 引擎,旨在为嵌入式系统、web、各种小程序、手机和 pc 打造的通用 gui 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 gui 引擎。
awtk-iotjs 将 awtk 和 iotjs 有机结合起来,用 javascript 打通 gui、网络和硬件,完全采用 javascript 开发物联网应用程序。
运行效果截图:
二、编译
下载编译 iotjs:
git clone
cd iotjs
./tools/build.py
cd -
下载编译 awtk:
git clone
cd awtk
scons
cd -
下载编译 awtk-js:
git clone
cd awtk-js
git clone 3rd/jerryscript
scons
cd -
下载编译 awtk-iotjs:
准备工作:
目前我不知道如何在 module.json 中指定编译参数,所以只好修改 iotjs/cmakelists.txt 了。请在倒数第二行增加下面这行代码。
include(../awtk-iotjs/awtk-module/awtk.cmake)
下载编译:
git clone
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 没编译过。
下载地址:
来源:linux110