当前位置: 首页 > 科技观察

这个1.2k+的GUI引擎竟然支持跨平台开发

时间:2023-03-20 10:35:39 科技观察

AWTK代表ToolkitAnyWhere。它是ZLG开发的开源GUI引擎。旨在为嵌入式系统、WEB、各种小程序、手机和PC打造一个通用的GUI。该引擎为用户提供了一个强大、高效、可靠、易于使用的GUI引擎,可以轻松创建酷炫的效果。AWTK意味着两个方面:ToolkitAnyWhere。ZLG物联网操作系统AWorks内置GUI。AWTK运行效果截图:AWTK的主要特点:1.跨平台AWTK是跨平台的,有两层意思:AWTK本身就是跨平台的。目前支持的平台包括ZLGAWorks、Windows、Linux、MacOS、嵌入式Linux、Android、Web和嵌入式裸机,可轻松移植到各种RTOS。未来AWTK也可以运行在iOS等各种小程序和平台上。AWTK还提供了一套跨平台的基础工具库。其中包括链表、数组、字符串(UTF8和widechar)、事件发射器、值、对象、文件系统、互斥锁和线程、表达式和字符串解析等,让您使用AWTK开发的应用程序能够真正跨平台运行。2、高效的AWTK通过一系列手段保证AWTK应用的高效运行:通过脏矩算法只更新变化的部分。支持3个FrameBuffer让界面以最高帧率运行(可选)。UI描述文件和主题文件采用高效的二进制格式,瞬间解析。支持各种GPU加速接口。如OpenGL、DirectX、Vulkan、Metal等。支持嵌入式平台的各种2D加速接口。目前STM32的DMA2D和NXP的PXP接口,厂商可以方便的扩展自己的加速接口。3.稳定性AWTK力求通过以下方式使代码稳定可靠:使用cppcheck和facebookinfer进行静态检查。使用valgrind进行动态内存检查。近两万行单元测试代码。由ZLG强大的GUI团队支持。经多个实际项目验证。多平台/多编译器验证。优秀的建筑设计。代码审查。手动测试。4.强大丰富的控件(持续增加中)。支持各种图像格式(png/jpg/gif/svg)。支持各种字体格式(位矩阵和矢量)。支持窗口动画,支持控件动画,支持高清画面。支持接口描述文件。支持主题描述文件。支持控件布局策略。支持对话突出显示策略。丰富的辅助工具。支持从低端CortexM3到各种高端CPU。支持无文件系统和自定义文件系统。支持裸机和RTOS。5.简单易用大量示例代码。完整的API文档和使用文档。ZLG拥有强大的技术支持团队。使用AWTK本身开发的界面编辑器(正在开发中)。声明式接口描述语言。一行代码开启控制动画,开启窗口动画,显示图片(png/jpg/svg/gif)。6.高扩展性您可以扩展自己的控件。您可以扩展自己的动画。您可以实现自己的主循环。您可以扩展自己的软键盘。您可以扩展自己的图像加载器。您可以扩展自己的字体加载器。您可以扩展自己的输入法引擎。您可以扩展自己的控件布局算法。您可以扩展自己的对话框突出显示策略。您可以实现自己的LCD界面。可以使用自己的矢量引擎进行扩展(例如使用skia/cairo)。所有扩展组件和内置组件都具有相同的处理方式。7、多种开发语言AWTK本身是用C语言开发的,可以通过IDL生成各种脚本语言绑定。生成的绑定代码并不是简单地将C语言API映射到脚本语言,而是生成脚本语言原生代码风格的API。目前支持以下语言(后期会根据需要添加):CLuaJavascriptonjerryscriptJavascriptonnodejsJavascriptonquickjs8,国际化支持Unicode。支持输入法。支持字符串翻译(实时效果)。支持图片翻译(实时有效)。文本双向布局(计划)。9.开源,免费用于商业用途(LGPL)。是不是很厉害?如果想了解更多,请阅读原文。开源项目地址:https://github.com/zlgopen/awtk开源项目作者:zlgopen