一、介绍

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

AWTK寓意有两个方面:

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

运行效果截图:

二、最终目标:

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

三、主要特色

1.跨平台

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

  • AWTK本身是跨平台的。目前支持的平台有ZLG AWorks、Windows、Linux、MacOS、嵌入式Linux和嵌入式裸系统,可以轻松的移植到各种RTOS上。AWTK以后也可以运行在浏览器(即将公测)、各种小程序、Android和iOS等平台上运行。
  • AWTK同时还提供了一套跨平台的基础工具库。其中包括链表、数组、字符串(UTF8和widechar),事件发射器、值、对象、文件系统、互斥所和线程、表达式和字符串解析等等,让你用AWTK开发的应用程序可以真正跨平台运行。

2.高效

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

  • 通过脏矩算法只更新变化的部分。
  • 支持3 FrameBuffer让界面以最高帧率运行(可选)。
  • UI描述文件和主题文件使用高效的二进制格式,解析在瞬间完成。
  • 支持各种GPU加速接口。如OpenGL、DirectX、Vulman和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。

5.易用

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

6.高度扩展性

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

7.多种开发语言

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

  • C
  • Lua
  • Javascript on jerryscript
  • Javascript on nodejs

8.国际化

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

AWTK源码仓库:

  • 主源码仓库:https://github.com/zlgopen/awtk
  • 镜像源码仓库:https://gitee.com/zlgopen/awtk

c语言.jpg图片转成数组_基于 C 语言开发的 GUI 框架相关推荐

  1. c语言.jpg图片转成数组_AWTK——基于C语言开发的GUI框架,功能强大,支持跨平台同步开发...

    简介 AWTK 全称 Toolkit AnyWhere,是 ZLG 开发的开源 GUI 引擎,旨在为嵌入式系统.WEB.各种小程序.手机和 PC 打造的通用 GUI 引擎,为用户提供一个功能强大.高效 ...

  2. c语言.jpg图片转成数组_多张jpg图片合成pdf文件

    唐县职称公众号 微信视频号 评审条件(小程序) 关于如何将多张jpg图片合成pdf文件 首先再强调一下"扫描",不要用手机拍照.高拍仪代替扫描.否则责任自负. 如何将多张JPG图片 ...

  3. c语言.jpg图片转成数组_良心推荐!4 款PDF转JPG图片的免费在线工具,让你早下班3小时!...

    每天面对大量文案工作,PDF文件因为自身强大的保密功能深受各大公司喜爱.然而PDF文件不能编辑,特殊情况下,需要转化成JPG图片,搜遍了网上推荐的转换工具. 经过亲身实践,良心推荐4 款PDF转JPG ...

  4. c语言编写订货系统,学位论文_基于c语言的仓库订货系统的仿真.doc

    学位论文_基于c语言的仓库订货系统的仿真 本科毕业论文(设计.创作) 题目: 基于C语言的仓库订货系统的仿真 学生姓名: 学号: 所在系院: 信息与通信技术系 专业: 电子信息工程 入学时间: 201 ...

  5. c语言.jpg图片转成数组_JPG图片怎么转成PDF?这两个方法你能用上

    平时可能经常需要将图片转成PDF,你知道应该如何将JPG生成PDF吗?分享两个好用的各有特点的方法,一定有一个是你能用上的哦. 方法一:在线免费转换,手机也能用 1.首先搜索speepdf找到这款在线 ...

  6. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为八进制字符串(char [])...

    c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into octal string (char[]) in ...

  7. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...

    c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into Hexadecimal string (char ...

  8. c语言.jpg图片转成数组_PDF文件转JPG等图片格式的小工具

    不点蓝字,我们哪来故事? 今天小夭给大家介绍一个好用的PDF文件转JPG/PNG等图片格式的小工具,非常简单好用.它是一款免费的软件,一款体积小巧的PDF转换为图片文件的软件.PDF转JPG工具可以将 ...

  9. c语言.jpg图片转成数组_PDF怎么快速转换成JPG图片呢?这几款工具超实用

    在兼职和生存中,许多时分都需求处分PDF文档,PDF奈何转换成JPG花样的图片呢? 本文给朋友们保举超适合的计算机端以及在线端的对象,帮你疾速完成PDF转JPG. 桌面端PDF转换王是一款职业的PDF ...

最新文章

  1. OpenGL 平行粒子的实例
  2. office2010删除分页符
  3. CORBA GIOP消息格式学习
  4. hdu 5273 Dylans loves sequence 逆序数 区间dp
  5. 《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》——6.5节光照的每顶点计算与每片元计算...
  6. ATcoder-[AGC048B]Bracket Score【结论,贪心】
  7. kotlin 查找id_Kotlin程序在矩阵中查找偶数和奇数的频率
  8. redis tomcat session
  9. Linear Regression Using Least Squares Method 代码实现
  10. Redis Cluster 的安装和配置(1)
  11. 期待人工智能在合作时的表现
  12. 西门子s7-200解密软件下载_高邮哪里有西门子三菱PLC编程学习班?多久能学会?...
  13. 【超图+CESIUM】【基础API使用示例】46、超图|CESIUM - 聚光源设置
  14. 安全攻防技能——身份认证
  15. 计算机中文件夹属性有哪些,文件和文件夹属性
  16. linux下at的用法,详解Linux系统中at与atq命令的用法
  17. 实践练习二(必选):手动部署 OceanBase 单副本集群
  18. 强化练习200题(二) 本卷共200道试题作答时间为240分钟,总分200分,120分及格
  19. ie6 sp1出现“重定向到不安全的连接”的解决放案
  20. 对java封装特性的一些浅薄认识

热门文章

  1. 一文读懂ADAS系统
  2. PPC修改注册表大全 (注册表必看)(转载)
  3. 【速记】Android让View的显示超出父容器
  4. keil uvision4 调试教程
  5. tplink怎么进去_如何进入tp-link路由器设置页面
  6. JavaScript-深浅拷贝
  7. php bloginfo templatedirectory,lt;?phpbloginfo(#39;template_directory#39;);?这句标签什么意思?...
  8. 新冠免疫细胞培养、转染、核酸分析整合解决方案
  9. Wordpress商品详情页新增Buy on amazon/ebay跳转按钮
  10. web前端 html+css+javascript游戏网页设计实例 (网页制作课作业)