AWTK 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
AWTK 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: LGPL
开发语言: C/C++ 查看源码 »
操作系统: 跨平台
收录时间: 2019-02-20
提 交 者: lixianjing

AWTK = Toolkit AnyWhere

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

最终目标:

  • 支持开发嵌入式软件。

  • 支持开发Linux应用程序。

  • 支持开发MacOS应用程序。

  • 支持开发Windows应用程序。

  • 支持开发Android应用程序。

  • 支持开发iOS应用程序。

  • 支持开发2D游戏。

其主要特色有:

  1. 小巧。在精简配置下,不依赖第三方软件包,仅需要32K RAM + 256K FLASH即可开发一些简单的图形应用程序。

  2. 高效。采用脏矩形裁剪算法,每次只绘制和更新变化的部分,极大提高运行效率和能源利用率。

  3. 稳定。通过良好的架构设计和编程风格、单元测试、动态(valgrind)检查和Code Review保证其运行的稳定性。

  4. 丰富的GUI组件。提供窗口、对话框和各种常用的组件(用户可以配置自己需要的组件,降低对运行环境的要求)。

  5. 支持多种字体格式。内置位图字体(并提供转换工具),也可以使用stb_truetype或freetype加载ttf字体。

  6. 支持多种图片格式。内置位图图片(并提供转换工具),也可以使用stb_image加载png/jpg等格式的图片。

  7. 紧凑的二进制界面描述格式。可以手工编辑的XML格式的界面描述文件,也可以使用Qt Designer设计界面,然后转换成紧凑的二进制界面描述格式,提高运行效率,减小内存开销。

  8. 支持主题并采用紧凑的二进制格式。开发时使用XML格式描述主题,然后转换成紧凑的二进制格式,提高运行效率,减小内存开销。

  9. 支持裸系统,无需OS和文件系统。字体、图片、主题和界面描述数据都编译到代码中,以常量数据的形式存放,运行时无需加载到内存。

  10. 内置nanovg实现高质量的矢量动画,并支持SVG矢量图。

  11. 支持窗口动画、控件动画、滑动动画和高清LCD等现代GUI常见特性。

  12. 支持国际化(Unicode、字符串翻译和输入法等)。

  13. 可移植。支持移植到各种RTOS和嵌入式Linux系统,并通过SDL在各种流行的PC/手机系统上运行。

  14. 脚本化。从API注释中提取API的描述信息,通过这些信息可以自动生成各种脚本的绑定代码。

  15. 支持硬件2D加速(目前支持STM32的DMA2D和NXP的PXP)和GPU加速(OpenGL/OpenGLES/DirectX/Metal),充分挖掘硬件潜能。

  16. 丰富的文档和示例代码。

  17. 采用LGPL协议开源发布,在商业软件中使用时无需付费。

目前核心功能已经完成,内部开始在实际项目中使用了,欢迎有兴趣的朋友评估和尝试,期待您的反馈。

模拟运行:

Mac

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

brew install scons sdl2

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

scons
./bin/demoui

Ubuntu (版本>=16)

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

sudo apt-get install scons libsndio-dev libgtk-3-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev

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

scons
./bin/demoui

Windows

(请先安装python2.7,scons和Visual Studio C++(版本>=2017)

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

scons
bin\demoui

演示视频

1.基本控件演示

各个平台的移植

官方支持平台

移植示例(不定期更新)

各语言的绑定

相关工程

文档

文档

任务完成情况

任务完成情况

最新动态

最新动态

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

AWTK 的相关博客

集成 AWTK 到 iotjs

集成 AWTK 到 iotjs iotjs 是三星开源的 javascript 物联网开发平台。它为 javascript 应用程序提供了访问硬件、网络、文件系...

AWTK是如何保证代码质量的

AWTK是ZLG开源的GUI引擎,不少朋友关心AWTK是如何保证代码质量的,这里统一回复一下。我们在保证AWTK的代码质量方面,主要采用...

AWTK 在 RT-Thread 上的移植笔记

AWTK 在 RT-Thread 上的移植笔记 本文以 STM32f103ze 为例,介绍了 AWTK 在 RTOS 上移植的经验。与其说移植,倒不如说是集成。...

AWTK 在腾讯 TOS 上的移植笔记

AWTK 在腾讯 TOS 上的移植笔记 本文以 STM32f103ze 为例,介绍了 AWTK 在 RTOS 上移植的经验。与其说移植,倒不如说是集成。因...

AWTK Designer快速安装指南

AWTK Designer的安装和注册过程非常简单,本文将为大家介绍完整的安装与注册步骤。 按照下面的步骤即可完成AWTK Designer的安...

AWTK 控件焦点相关问题

控件焦点相关问题 一、启用焦点停留 (tab stop) 除了 edit 控件外,其它控件如果需要焦点停留功能,可以指定控件的 focusabl...

AWTK Designer快速使用指南

本文主要讲述使用AWTK Designer设计UI界面的一些基础功能,让你快速的学会AWTK Designer编程。 AWTK Designer(下面简称Desig...

AWTK 编译与调试 环境搭建指南

AWTK 编译与调试 环境搭建指南.md AWTK 编译与调试 环境搭建指南.pdf

AWTK实现自定义软键盘的方法

有时需要把软键盘嵌入到窗口内部(比如计算器和密码输入等),这时可以使用自定义软键盘。 一、编辑器设置input_type为"custom...

AWTK WEB版移植笔记-序

AWTK WEB版移植笔记-序 一、WEB版本对AWTK意义 AWTK-WEB版本对AWTK是很重要的,主要原因有: 让用C语言开发的AWTK应用程序,在...

AWTK 的相关问答

还没有任何问答,马上提问

评论 (23)

加载中
很好,学习
07/14 09:29
回复
举报
非常不错,支持
06/29 23:05
回复
举报
MinGW下能编译吗?
2019/12/10 18:14
回复
举报
支持一下
2019/12/10 09:01
回复
举报
不错,支持
2019/12/03 06:47
回复
举报
另外请问有AWTK架构方面的资料吗,这样我们理解,修改,以及扩展会方便些,谢谢
2019/11/06 09:13
回复
举报
git hub下载文档我这里总是下载不下来
2019/11/06 09:12
回复
举报
看了视频演示 没看到密码框 能实现密码输入弹出框吗
2019/08/17 16:40
回复
举报
AWTK在哪里下载 移植教程和手册在哪里啊
2019/07/26 09:31
回复
举报
有移植到zlg116/zlg217吗?
2019/06/25 17:40
回复
举报
更多评论
23 评论
200 收藏
分享
返回顶部
顶部