首页 > 其他分享 >awtk-web 更新

awtk-web 更新

时间:2024-11-06 16:51:14浏览次数:3  
标签:web 浏览器 awtk 更新 sh build AWTK

在这里插入图片描述

老用户请花点时间看看新版改动

一、介绍

AWTK-WEBAWTK 能够在浏览器中运行,这除了看起来比较酷,也有具有实际的意义:

  • 让用 C 语言开发的 AWTK 应用程序,在不需要修改源码的情况下,能在浏览器中运行。可以方便的向客户展示项目,只需分享一个链接,客户就可以在浏览器中看到实际的运行效果。

  • 把 AWTK 编译成一个 JS 库,你可以用 JS 开发 AWTK 应用程序,并在浏览器中运行。

在线演示:demoui

二、目标

AWTK-WEB 不是简单的把 AWTK 编译成 JS,让它在浏览器中运行,那样是无法满足一些非功能性的需求的。我们把 AWTK-WEB 当作一个全新平台去移植,并充分考虑 WEB 平台的特点,有针对性的去实现以下的目标。

  • 小。在 web 上运行的应用程序,体积小是非常重要的,体积越小打开越快,这直接影响用户体验。

为了减小代码的体积, AWTK 去掉了 SDL 和 stb 等库的依赖,尽量使用浏览器本身的功能,这极大程度减小了代码的体积。

为了减小资源的体积, AWTK 的缺省字体使用了浏览器的字体,输入法使用浏览器的输入法。

我们可以对比一下各个 GUI 的 wasm 文件的大小。

GUIwasm 大小网址
QT9Mhttp://example.qt.io/qt-webassembly/SensorTagDemo/SensorTagDemo.html
QT3Mhttp://example.qt.io/qt-webassembly/opengl/hellowindow/hellowindow.html
AWTK3Mhttps://awtk.zlg.cn/demos/awtk/demoui/index.html
  • 快。Android 手机浏览器性能普遍不高,要到达实用价值,性能优化至关重要。

AWTK-WEB 的窗口动画采用了 WebGL 直接贴图进行优化,在支持 WebGL 的浏览器中,窗口动画性能接近原生效果。

  • 省电。在手机等电池供电的系统上,省电是必须要考虑的。

AWTK-WEB 启用脏矩形算法,界面不变就不绘制,有变化只绘制变化的区域,这极大的降低了电能的消耗。

  • 跨平台。除了在 PC 的各种浏览器(除老的 IE 浏览器)上运行,还需要在 Android 和 iOS 上运行。AWTK-WEB 的基本要求只是浏览器支持 HTML5 的 canvas,在 Chorome、Firefox 和 IE 等主流浏览器,以及目前流行的 Android 和 iOS 设备上都能正常运行。

在最新的红米 4 的浏览器中,QT 和 LittleVG 纷纷表示无法运行。

三、编译

  1. 先安装必要的软件包
  1. 编译 awtk 本身
git clone https://github.com/zlgopen/awtk.git
cd awtk
scons -j 8
  1. 下载 awtk-web
git clone https://github.com/zlgopen/awtk-web.git
cd awtk-web
  1. 编译 demoui
  • MacOS

请先修改 build_mac.sh 中 emsdk_env.sh 和 python 的路径,然后运行:

./build_mac.sh ../awtk/build.json release
  • Linux

请先修改 build_linux.sh 中 emsdk_env.sh 和 python 的路径,然后运行:

./build_linux.sh ../awtk/build.json release
  • Windows(请在 git 的 bash 终端下运行)

请先修改 build_win32.sh 中 emsdk_env.sh 和 python 的路径,然后运行:

./build_win32.sh ../awtk/build.json release

编译脚本有更多选项,比如可以根据需要只更新资源或代码。

Usage: ./build_mac.sh app.json action(all|debug|release|assets|awtk_web_js|awtk_js|js)
=============================================================
  debug:        build debug version.
  release:      build release version.
  assets:       build assets only.
  awtk_js:      build awtk_js only.
  awtk_web_js:  build awtk_web_js only.
  js:           build awtk_js and awtk_web_js only.
  all:          same as debug. build debug version.
=============================================================

四、运行

  1. 启动 web 服务器
  • release 版本
python -m http.server 8080 --directory webroot

或者

./start_web.sh
  • debug 版本
python -m http.server 8080 --directory build

或者

./start_web_debug.sh

使用其它 web 服务器均可。

  1. 用浏览器打开 http://localhost:8080/demoui/index.html

五、已知问题

  • GIF 文件仅在 saferi 和 iOS 上工作。
  • 只能调用 awtk、标准 C 库,和其它有源代码的库。
  • 不支持模态对话框。dialog_modal 不会生效,而 dialog_quit 会直接关闭对话框。

六、注意事项

七、文档

1.快速入门

2.移植笔记-序

3.移植笔记-基础知识

4.移植笔记-字体

5.移植笔记-图片

6.移植笔记-输入法

7.移植笔记-画布

8.emscripten api 参考

八、示例

标签:web,浏览器,awtk,更新,sh,build,AWTK
From: https://blog.csdn.net/absurd/article/details/143574264

相关文章

  • zlibrary中文版入口及电子书客户端/app(2024更新)
    Z-library是一个全球范围内庞大的数字图书馆之一,其藏书量非常丰富。截至最新数据,Z-library共收录了超过9,826,996册电子书以及84,837,646篇学术期刊文章。这个数字图书馆覆盖了从经典文学巨著到前沿理工学科,从人文艺术瑰宝到专业学术论文的广泛领域,几乎能够满足每一位求知者的阅读......
  • Playwright:掌握Web自动化测试的新利器
    在快速迭代的互联网环境中,Web应用的测试工作日益繁重。传统的手动测试不仅耗时耗力,还难以保证测试的全面性和准确性。面对复杂多变的测试需求,你是否也曾感到力不从心?别担心!本周四晚上八点,我们特别策划了一场关于Playwright的公开课,旨在帮助大家掌握这款Web自动化测试的新利器。Pl......
  • c# HttpClient,WebClient常用请求
     getWebClientwebClient=newWebClient();ServicePointManager.SecurityProtocol=(SecurityProtocolType)192|(SecurityProtocolType)768|(SecurityProtocolType)3072;//ServicePointManager.Expect100Continue=true;......
  • mysql根据一个表的数据更新另一个表数据的SQL写法
    ql中更新表数据的通用方法包括:使用join语句,匹配两个表并更新目标表的指定列;使用子查询,获取源表中匹配行的值并更新目标表;使用merge语句(mysql8.0及更高版本),合并两个表并按条件更新或插入数据。 根据一个表的数据更新另一个表数据的SQL写法最近大家都在看MySQLupda......
  • python webdriver-manager 实现selenium 免下载安装webdriver
    selenium在自动化测试中,通常需要使用浏览器驱动来与浏览器进行交互。然而,手动下载、安装、以及管理这些驱动非常麻烦,尤其是当驱动版本频繁更新时。为此,webdriver-manager库提供了一个极简的方案,自动帮我们下载、更新和管理驱动,使Selenium代码更简洁优雅。webdriver-managergit......
  • .NET使用SqlSugar实现单列批量更新的几种实现和对比
    说明:SqlSugarCore版本:5.1.4.169方式1使用SqlSugar的Updateable特点:代码可读性好,易于维护支持事务和异常处理适用场景:中小型数据量更新优点:代码简洁易于调试缺点:性能相对较低内存占用较大publicasyncTask<int>BatchUpdateColumnAsync(stringtab......
  • 国标GB28181公网平台LiteGBS国标GB28181网页直播平台Web界面:GB28181协议监控视频管理
    在数字化时代,视频监控系统已成为公共安全和企业管理中不可或缺的一部分。随着技术的进步,GB28181协议作为国家标准,为视频监控系统的互联互通提供了一个统一的平台。LiteGBS作为遵循GB28181协议的网页直播平台,以其高效、稳定的特性,为用户提供了一个强大的视频管理工具。LiteGBS是......
  • Burp Suite Professional 2024.10 for Windows x64 - 领先的 Web 渗透测试软件
    BurpSuiteProfessional2024.10forWindowsx64-领先的Web渗透测试软件世界排名第一的Web渗透测试工具包请访问原文链接:https://sysin.org/blog/burp-suite-pro-win/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBurpSuiteProfessional,更快、更可靠的......
  • 在 Windows Server 2025 中,WebDAV 重定向程序(WebDAV Redirector)是一个客户端组件,用于
    在WindowsServer2025和更高版本中,WebDAV(Web-basedDistributedAuthoringandVersioning)协议仍然可以通过启用IIS(InternetInformationServices)角色来使用。你可以安装并配置IIS中的WebDAV模块来实现文件共享和远程访问。在WindowsServer2025中,WebDAV重定向程序......
  • 如何通过Python SDK更新Collection中已存在的Doc
    本文介绍如何通过PythonSDK更新Collection中已存在的Doc。说明若更新Doc时指定id不存在,则本次更新Doc操作无效如只更新部分属性fields,其他未更新属性fields默认被置为NonePythonSDK1.0.11版本后,更新Doc时vector变为非必填项前提条件已创建Cluster:创建Cluster。......