AWTK 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
AWTK 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
AWTK 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 LGPL
开发语言 C/C++ 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发GUI开发框架
开源组织
地区 国产
投 递 者 lixianjing
适用人群 未知
收录时间 2019-02-20

软件简介

AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。

欢迎广大开发者一起参与开发:生态共建计划

AWTK 寓意有两个方面:

  • Toolkit AnyWhere。
  • ZLG 物联网操作系统 AWorksOS 内置 GUI。

AWTK 源码仓库:

AWTK Designer 界面设计工具:

  • 不再需要手写 XML
  • 拖拽方式设计界面,所见即所得
  • 快速预览,一键打包资源
  • 注册及下载地址:https://awtk.zlg.cn

AWTK Designer

运行效果截图:

Chart-Demo

MusicPlayer-Demo

Watch

二、最终目标:

  • 支持开发嵌入式应用程序。✔
  • 支持开发 Linux 应用程序。✔
  • 支持开发 MacOS 应用程序。✔
  • 支持开发 Windows 应用程序。✔
  • 支持开发 Web APP。✔
  • 支持开发 Android 应用程序。✔
  • 支持开发 iOS 应用程序。✔
  • 支持开发微信小程序。
  • 支持开发支付宝小程序。
  • 支持开发百度小程序。
  • 支持开发 2D 小游戏。

三、主要特色

1. 跨平台

AWTK 是跨平台的,这有两个方面的意思:

  • AWTK 本身是跨平台的。目前支持的平台有 ZLG AWorksOS、Windows、Linux、MacOS、嵌入式 Linux、Android、iOS、Web 和嵌入式裸系统,可以轻松的移植到各种 RTOS 上。AWTK 以后也可以运行在各种小程序平台上运行。

  • AWTK 同时还提供了一套跨平台的基础工具库。其中包括链表、数组、字符串 (UTF8 和 widechar),事件发射器、值、对象、文件系统、互斥锁和线程、表达式和字符串解析等等,让你用 AWTK 开发的应用程序可以真正跨平台运行。

2. 高效

AWTK 通过一系列的手段保证 AWTK 应用程序高效运行:

  • 通过脏矩算法只更新变化的部分。
  • 支持 3 FrameBuffer 让界面以最高帧率运行 (可选)。
  • UI 描述文件和主题文件使用高效的二进制格式,解析在瞬间完成。
  • 支持各种 GPU 加速接口。如 OpenGL、DirectX、Vulkan 和 Metal 等。
  • 支持嵌入式平台的各种 2D 加速接口。目前 STM32 的 DMA2D 和 NXP 的 PXP 接口,厂家可以轻松扩展自己的加速接口。

3. 稳定

AWTK 通过下列方式极力让代码稳定可靠:

  • 使用 cppcheck 和 facebook infer 进行静态检查。
  • 使用 valgrind 进行动态内存检查。
  • 近两万行的单元测试代码。
  • ZLG 强大 GUI 团队的支持。
  • 经过多个实际项目验证。
  • 多平台 / 多编译器验证。
  • 优秀的架构设计。
  • Code Review。
  • 手工测试。

4. 强大

  • 丰富的控件 (持续增加中)。
  • 支持各种图片格式 (png/jpg/gif/svg)。
  • 支持各种字体格式 (点阵和矢量)。
  • 支持窗口动画。
  • 支持控件动画。
  • 支持高清屏。
  • 支持界面描述文件。
  • 支持主题描述文件。
  • 主题切换实时生效。
  • 支持控件布局策略。
  • 支持对话框高亮策略。
  • 丰富的辅助工具。
  • 支持从低端的 Cortex M3 到各种高端 CPU。
  • 支持无文件系统和自定义的文件系统。
  • 支持裸系统和 RTOS。
  • 支持事件录制与重放进行压力测试。
  • 支持 Appium 进行全自动化 UI 测试。

5. 易用

  • 大量的示例代码。
  • 完善的 API 文档和使用文档。
  • ZLG 强大的技术支持团队。
  • 用 AWTK 本身开发的 界面编辑器
  • 声明式的界面描述语言。一行代码启用控件动画,启用窗口动画,显示图片 (png/jpg/svg/gif)。

6. 高度扩展性

  • 可以扩展自己的控件。
  • 可以扩展自己的动画。
  • 可以实现自己的主循环。
  • 可以扩展自己的软键盘。
  • 可以扩展自己的图片加载器。
  • 可以扩展自己的字体加载器。
  • 可以扩展自己的输入法引擎。
  • 可以扩展自己的控件布局算法。
  • 可以扩展自己的对话框高亮策略。
  • 可以实现自己的 LCD 接口。
  • 可以扩展自己的矢量引擎 (如使用 skia/cairo)。
  • 所有扩展组件和内置组件具有相同的待遇。

7. 多种开发语言

AWTK 本身是用 C 语言开发的,可以通过 IDL 生成各种脚本语言的绑定。生成的绑定代码不是简单的把 C 语言的 API 映射到脚本语言,而是生成脚本语言原生代码风格的 API。目前支持以下语言 (以后根据需要增加):

  • C
  • C++
  • lua
  • java
  • python
  • Javascript on jerryscript
  • Javascript on nodejs
  • Javascript on quickjs

8. 国际化

  • 支持 Unicode。
  • 支持输入法。
  • 支持字符串翻译 (实时生效)。
  • 支持图片翻译 (实时生效)。
  • 文字双向排版。

9. 为嵌入式软件定制的 MVVM 框架,彻底分离用户界面和业务逻辑。

  • 性能高。
  • 内存开销小。
  • 隔离更彻底。
  • 可移植到其它 GUI。
  • 代码小 (~5000 行)。
  • 无需学习 AWTK 控件本身的 API。
  • 支持多种编程语言(目前支持 C/JS)。

详情请参考:https://github.com/zlgopen/awtk-mvvm

10. 开放源码,免费商用 (LGPL)。

四、模拟运行:

下载代码

  • 用 git 下载

Windows 下的 git

下载代码

git clone https://github.com/zlgopen/awtk.git

国内用户推荐使用:https://hub.fastgit.org/zlgopen/awtk.git

Windows 下可以用带 GUI 的 git 下载代码。

更新代码(在 awtk 目录下运行)

git pull

用 git 下载代码的好处是以后更新代码非常快。

  • 直接下载 zip 文件

下载 zip 文件。解压之后需要把文件夹改名为 awtk

Mac

如果没有安装 nodejs, scons 和 sdl2,请在终端运行下面的命令 (假定已安装 brew):

brew install scons sdl2 node

编译运行 (在终端下,进入 awtk 所在的目录,并运行下列命令):

scons
./bin/demoui

Ubuntu (版本 >=16)

如果没有安装 scons 和依赖的软件包,请在终端运行下面的命令:

sudo apt-get install gcc g++ scons libsndio-dev libgtk-3-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev libasound2-dev git vim clang-format libharfbuzz-dev nodejs

编译运行 (在终端下,进入 awtk 所在的目录,并运行下列命令):

scons
./bin/demoui

在 Ubuntu 14 上无法启动,请参考 FAQ 修改。

Windows

请先安装 python(64 位系统要安装 64 位版本的 python),scons 和 Visual Studio C++(版本 >=2017)

如果没有安装 pywin32,请 pip 安装:

pip install pywin32

如果没有安装nodejs,请到 nodejs下载并安装。

编译运行 (在命令行模式下,进入 awtk 所在的目录,并运行下列命令):

scons
bin\demoui

所有平台

  • 如果 PIL 没有安装,请用 pip 安装:
pip install Pillow
  • 如果 glob 没有安装,请用 npm 安装:
npm install -g glob

五、在线演示

六、各个平台的移植

七、各语言的绑定

八、相关工程

第三方提供:

九、文档

十、生态共建计划

   

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(26)
发表于大前端专区
2021/03/08 09:20

跨平台 GUI 引擎 AWTK 1.6 发布

一、介绍 AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。 欢迎广大开发者一起参与开发:生态共建计划。 AWTK 寓意有两个方面: Toolkit AnyWhere。 ZLG 物联网操作系统 AWorksOS 内置 GUI。 AWTK 源码仓库: 主源码仓库:https://github.com/zlgopen/awtk 镜像源码...

13
39
2020/09/03 22:50

AWTK Designer 0.1.7 暨 AWTK v1.5 正式发布

今天,我们迎来了Designer 0.1.7的发布,增加了创建和导入自定义控件、语言文件编辑器支持特定字体显示翻译文本等功能。同时,AWTK也升级到了1.5版本,增加了字符编码转换、双向排版等功能。 AWTK Designer是专门用来制作AWTK应用程序的UI界面的实用工具,只要通过拖曳和点击就可以完成复杂的界面设计,而且可以随时预览效果图。通过AWTK Designer即可完成UI界面元素的布局、设置控件属性、给控件添加动画效果和设置样式等。 得...

1
5
发表于大前端专区
2020/08/27 10:34

AWTK 1.5 发布,国产开源 GUI 引擎

ZLG AWTK 1.5 Release Notes 一、介绍 AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。 欢迎广大开发者一起参与开发:生态共建计划。 AWTK 寓意有两个方面: Toolkit AnyWhere。 ZLG 物联网操作系统 AWorksOS 内置 GUI。 AWTK 源码仓库: 主源码仓库:https://git...

7
23
发表于大前端专区
2020/04/13 07:37

跨平台 GUI 引擎 AWTK 1.4 发布

一、介绍 AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎。 欢迎广大开发者一起参与开发:生态共建计划。 AWTK 寓意有两个方面: Toolkit AnyWhere。 ZLG 物联网操作系统 AWorksOS 内置 GUI。 AWTK 源码仓库: 主源码仓库:https://github.com/zlgopen/awtk 镜像源码...

8
32
发表于大前端专区
2019/11/22 13:04

GUI 引擎 AWTK v1.3 发布

今天,AWTK v1.3正式发布。新版AWTK完善了许多细节,增加了部分特性、控件和API等,支持更多功能和更炫酷的效果。我们推出AWTK生态共建计划,诚邀您共同参与嵌入式开发生态建设,实现共赢! “2019年最受欢迎中国开源软件评选” ZLG邀您为 AWTK 投出宝贵的一票: https://www.oschina.net/p/awtk AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统、WEB、各种小程序、手机和 PC 打造的通用 GUI 引擎,为...

2
15
发表于大前端专区
2019/07/30 09:12

AWTK 1.2 发布,国产开源 GUI 引擎

AWTK全称为Toolkit AnyWhere,是ZLG倾心打造的一套基于C语言开发的GUI框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎,并支持跨平台同步开发,一次编程,终生使用。 AWTK当前升级到了v1.2版本,相对于v1.1,我们完善了许多细节,增加了部分特性、控件以及API等,让AWTK支持更多的功能和更炫酷的效果。 1.2版本更新的内容 细节完善 输入法候选字支持滚动; slider支持上下左右键; guage ...

24
61
发表于大前端专区
2019/04/25 09:07

国产开源 GUI 引擎 AWTK 1.1 发布

一、介绍 AWTK全称Toolkit AnyWhere,是ZLG开发的开源GUI引擎,旨在为嵌入式系统、WEB、各种小程序、手机和PC打造的通用GUI引擎,为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎。 AWTK寓意有两个方面: Toolkit AnyWhere。 ZLG物联网操作系统AWorks内置GUI。 AWTK源码仓库: 主源码仓库:https://github.com/zlgopen/awtk 镜像源码仓库:https://gitee.com/zlgopen/awtk 运行效果截图: 二、最终目...

16
87
发表于大前端专区
2019/02/20 08:58

ZLG 发布开源 GUI 引擎 AWTK

随着手机、智能手表等便携式设备的普及,用户对 GUI 的要求越来越高,嵌入式系统对高性能、高可靠性、低功耗、美观炫酷的 GUI 的需求也越来越迫切,ZLG开源 GUI 引擎 AWTK 应运而生。 AWTK 全称为 Toolkit AnyWhere,是 ZLG 倾心打造的一套基于 C 语言开发的 GUI 框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的 GUI 引擎,并支持跨平台同步开发,一次编程,终生使用。 主要特色: 开源免费,使用...

7
53
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
26 评论
456 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部