首页 » 软件开发 » 软件推荐丨AWTK —— 开源 GUI 引擎(支持运行开源开发格式)

软件推荐丨AWTK —— 开源 GUI 引擎(支持运行开源开发格式)

萌界大人物 2024-07-24 10:08:14 0

扫一扫用手机浏览

文章目录 [+]

点击右上方,关注开源中国OSC头条号,获取最新技术资讯

AWTK = Toolkit AnyWhere

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

最终目标:

软件推荐丨AWTK —— 开源 GUI 引擎(支持运行开源开发格式) 软件开发
(图片来自网络侵删)
支持开发嵌入式软件
支持开发Linux应用程序。
支持开发MacOS应用程序。
支持开发Windows应用程序。
支持开发Android应用程序。
支持开发iOS应用程序。
支持开发2D游戏。

其主要特色有:

小巧。
在精简配置下,不依赖第三方软件包,仅需要32K RAM + 256K FLASH即可开发一些简单的图形应用程序。
高效。
采用脏矩形裁剪算法,每次只绘制和更新变化的部分,极大提高运行效率和能源利用率。
稳定。
通过良好的架构设计和编程风格、单元测试、动态(valgrind)检查和Code Review保证其运行的稳定性。
丰富的GUI组件。
提供窗口、对话框和各种常用的组件(用户可以配置自己需要的组件,降低对运行环境的要求)。
支持多种字体格式。
内置位图字体(并提供转换工具),也可以使用stb_truetype或freetype加载ttf字体。
支持多种图片格式。
内置位图图片(并提供转换工具),也可以使用stb_image加载png/jpg等格式的图片。
紧凑的二进制界面描述格式。
可以手工编辑的XML格式的界面描述文件,也可以使用Qt Designer设计界面,然后转换成紧凑的二进制界面描述格式,提高运行效率,减小内存开销。
支持主题并采用紧凑的二进制格式。
开发时使用XML格式描述主题,然后转换成紧凑的二进制格式,提高运行效率,减小内存开销。
支持裸系统,无需OS和文件系统。
字体、图片、主题和界面描述数据都编译到代码中,以常量数据的形式存放,运行时无需加载到内存。
内置nanovg实现高质量的矢量动画,并支持SVG矢量图。
支持窗口动画、控件动画、滑动动画和高清LCD等现代GUI常见特性。
支持国际化(Unicode、字符串翻译和输入法等)。
可移植。
支持移植到各种RTOS和嵌入式Linux系统,并通过SDL在各种流行的PC/手机系统上运行。
脚本化。
从API注释中提取API的描述信息,通过这些信息可以自动生成各种脚本的绑定代码。
支持硬件2D加速(目前支持STM32的DMA2D和NXP的PXP)和GPU加速(OpenGL/OpenGLES/DirectX/Metal),充分挖掘硬件潜能。
丰富的文档和示例代码。
采用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所在的目录,并运行下列命令):

sconsbin\demoui

演示视频

1.基本控件演示

各个平台的移植

官方支持平台

awtk-aworks-rt1052

移植示例(不定期更新)

awtk-sylixosstm32f103zestm32f429igtxstm32f767igtxlinux-framebuffer(嵌入式Linux请用本项目)

各语言的绑定

awtk-luaawtk-js

相关工程

模板工程C示例代码扩展控件实例: 二维码

文档

文档

任务完成情况

任务完成情况

最新动态

最新动态

点击下方“了解更多”,获取软件下载地址。

↓↓↓

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0