AWTK-WEB 让 AWTK 能够在浏览器中运行,其包括几个方面的意思:
这样做的意义主要在于,可以很方便的向客户展示项目。你只需分享一个链接,客户就可以在浏览器中打开,并看到实际的运行效果。
AWTK-JS 让 AWTK 支持用 JS 来开发 AWTK 应用程序,并在嵌入式系统中运行,但不能在浏览器中运行。而 AWTK-WEB 则是让 AWTK 支持用 JS 来开发 AWTK 应用程序,并且能够在浏览器中运行(我们尽量保证 AWTK-JS 和 AWTK-WEB 对外提供的 API 保持兼容)。
在线演示:demoui
AWTK-WEB 不是简单的把 AWTK 编译成 JS,让它在浏览器中运行,那样是无法满足一些非功能性的需求的。我们把 AWTK-WEB 当作一个全新平台去移植,并充分考虑 WEB 平台的特点,有针对性的去实现以下的目标。
为了减小代码的体积, AWTK 去掉了 SDL 和 stb 等库的依赖,尽量使用浏览器本身的功能,这极大程度减小了代码的体积。
为了减小资源的体积, AWTK 的缺省字体使用了浏览器的字体,输入法使用浏览器的输入法。
我们可以对比一下各个 GUI 的 wasm 文件的大小。
AWTK-WEB 的窗口动画采用了 WebGL 直接贴图进行优化,在支持 WebGL 的浏览器中,窗口动画性能接近原生效果。
AWTK-WEB 启用脏矩形算法,界面不变就不绘制,有变化只绘制变化的区域,这极大的降低了电能的消耗。
在最新的红米 4 的浏览器中,QT 和 LittleVG 纷纷表示无法运行。
pip install Pillow
设置 emscripten 的环境变量。
git clone https://github.com/zlgopen/awtk.git
cd awtk
scons -j 8
git clone https://github.com/zlgopen/awtk-web.git
cd awtk-web
请先修改 build_mac.sh 中 emsdk_env.sh 和 python 的路径,然后运行:
./build_mac.sh ../awtk/build.json debug
请先修改 build_linux.sh 中 emsdk_env.sh 和 python 的路径,然后运行:
./build_linux.sh ../awtk/build.json debug
请先修改 build_win32.sh 中 emsdk_env.sh 和 python 的路径,然后运行:
./build_win32.sh ../awtk/build.json debug
python -m http.server 8080 --directory webroot
使用其它 web 服务器均可。
1.快速入门
2.移植笔记-序
4.移植笔记-字体
5.移植笔记-图片
6.移植笔记-输入法
7.移植笔记-画布