嵌入式GUI分析详解
随着手机、智能手表等便携式设备的普及,用户对GUI的要求越来越高,嵌入式系统对GUI的需求也越来越迫切,本文将为大家介绍一个轻型、占用资源少、高性能、高可靠、便于移植、可配置及美观的GUI编程框架。
一、什么是嵌入式GUI?
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。嵌入式GUI即在嵌入式设备上使用显示屏去显示操作界面,主要用来与用户互动。
二、市面上常见的GUI
当前市面上主流的嵌入式 GUI 主要有:emWin(uCGUI),TouchGFX,Embedded Wizard GUI,以及QT。
TouchGFX 是这两年才发布的嵌入式 GUI,以界面华丽,流畅以及强劲的 TouchGFX Designer著称。美中不足的是 TouchGFX 是要收费的。
Embeded Wizard GUI 也是这两年才发布的嵌入式 GUI,同样以华丽,流畅的界面和强劲的GUIBuilder 著称。独创 Chora 界面编程语言,让大家的界面编程极其简单,GUIBuilder 上面含有非常多的控件,皮肤和主题供用户选择,且支持调试。 美中不足的是 Embeded Wizard GUI 也是要收费的。
emWin 属于老牌的嵌入式 GUI 了,有着十几年的历史,软件架构和功能比较成熟了。但是做出来比较炫的效果非常麻烦,且不支持较为复杂的控件。
QT是是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。目前使用Linux操作系统的GUI设计大多数是基于QT开发的。
以下是各种GUI对比表:
三、AWTK使UI像iPhone一样
AWTK是ZLG集团旗下致远电子开源的GUI引擎,其寓意有两方面:
AWorks Toolkit:AWorks平台内置GUI
Toolkit AnyWhere:为嵌入式、手机和PC打造的通用GUI
AWUI-js为用户提供分离界面设计和逻辑的框架,AWStudio提供嵌入式组态软件和云组态开发环境。美工可以直接在AWStudio组态软件中进行精美的界面设计,让研发工程师专注于控制逻辑的应用程序。
AWTK的主要特点:
具有Qt的跨平台
支持AWorks嵌入式低端、中端和高端各个平台开发;
支持Linux桌面软件开发;
支持MacOS桌面软件开发;
支持Windows桌面软件开发
支持Web App开发;
具有emWin的小巧高效
AWTK的小并非真的小,而是它可以很小。这主要得益于:
灵活的架构
通常鱼和熊掌不兼得,功能强大和代码体积相互矛盾,AWTK要在嵌入式的低端,中端和高端平台上运行,要在Android/iOS上运行,要在PC甚至Web上运行,光靠小是不行的,灵活的架构才能 让它可小可大。
高效的数据格式
AWTK的主题数据和界面描述数据,在开 发时使用XML格式,运行时则编译成二进制的常量,故无需解析和内存分配。图片和字体也可以预先解码并编译成常量,运行时直接从FLASH读取,无需解码和内存分配。所以 AWTK在内存很小的平台仍然可以正常运行。
保守的设计。
由俭到奢易,由奢到俭难。在设计控件时尽量保守,降低对底层硬件的要求。AWTK可以在低端嵌入式平台上运行。 这些平台典型的配置是32K RAM,512K Flash和低于100M主频。
快
AWTK的快主要得益于:
硬件加速
AWTK抽象了硬件加速接口,目前支持 STM32的G2D、NXP的PXP和GPU(OpenGL/OpenGLES),充分挖掘硬件的性能。
缓存绘制
播窗口动画前,预先绘制窗口到缓存,播放动画(平移/弹出动画)时只是纯粹内存拷贝,运行效率到达极致。
高效的数据格式
主题数据和UI数据以高效的二进制格式存储,使用时无需解析和内存分配,创建窗口可在瞬间完成。
脏矩形算法
启用脏矩形算法,每次只绘制变化的部分,提高运行效率并降低功耗。
在IM287A的Linux系统上,Qt打开一个窗口需要3秒以上,AWTK则瞬间以超过40FPS的动画打开窗口(如果使用3FB,可以轻松达到60FPS)。
具有TouchGfx/Embedded Wizard的酷炫
支持现代GUI常见特性:
窗口动画
支持平移、弹出、缩放和淡入淡出等动画。
控件动画
支持移动、缩放、翻转、值变化和淡入淡出等动画。
动画支持缓动作效果
支持加速、减速和弹跳等数十种效果,亦可以自定义想要的效果。
支持滑动
ListView/SlideView/Selector/Switch等控件支持滑动效果。
支持游戏引擎常见功能
帧动画、骨骼动画(TODO)和粒子效果(TODO)。
主题支持全局和窗口两种方式
轻松定制控件的外观效果,而无需要改变系统的主题。
分离界面描述文件
开发时采用XML格式描述,运行时编译成二进制格式。分离界面方便了开 发,而又无运行时的开销。
稳定
通过良好的架构设计和编程风格、单元测试、动态(valgrind)检查和Code Review保证其运行的稳定性。
完全开源,商用免费
开放全部源码;
商业应用免费;
没有阴谋,放心使用,不要想多了。但我们会为ZLG集团的客户提供更好的服务和支持。
AWTK,使UI像iPhone一样!
嵌入式GUI分析详解相关推荐
- 《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——1.2 S5PV210处理器
本节书摘来自异步社区<嵌入式Linux软硬件开发详解--基于S5PV210处理器>一书中的第1章,第1.2节,作者 刘龙,更多章节内容可以访问云栖社区"异步社区"公众号 ...
- 《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.5 WM8960音频编解码芯片...
本节书摘来自异步社区<嵌入式Linux软硬件开发详解--基于S5PV210处理器>一书中的第2章,第2.5节,作者 刘龙,更多章节内容可以访问云栖社区"异步社区"公众号 ...
- R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析详解实战:拟合连续性自变量和事件风险之间的关系:基于survival包lung数据
R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析详解实战:拟合连续性自变量和事件风险之间的关系:基于survival包lung数据 目录
- wav文件格式分析详解
wav文件格式分析详解 作者:曹京 日期:2006年7月17日 一.综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的. RIFF是英文Resource Inte ...
- 《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.2 DDR2 SDRAM芯片
本节书摘来自异步社区<嵌入式Linux软硬件开发详解--基于S5PV210处理器>一书中的第2章,第2.2节,作者 刘龙,更多章节内容可以访问云栖社区"异步社区"公众号 ...
- 03-instancing 工程分析详解
opengl编程指南第8版源码怎么下载.编译,请参考<opengl编程指南第8版源码编译详细说明> 1. 程序启动 请参考<03-drawcommands工程分析详解> 2. ...
- Memcache的使用和协议分析详解
Memcache的使用和协议分析详解 作者:heiyeluren 博客:http://blog.csdn.net/heiyeshuwu 时间:2006-11-12 关键字:PHP Memcache L ...
- R语言生存分析详解:KM曲线、COX比例风险模型、HR值解读、模型比较、残差分析、是否比例风险验证:基于survival包lung数据集
R语言生存分析详解:KM曲线.COX比例风险模型.HR值解读.模型比较.残差分析.是否比例风险验证:基于survival包lung数据集 目录
- 单片机c语言中枚举,嵌入式开发-枚举详解---朱有鹏
嵌入式开发-枚举详解 朱有鹏 1.枚举m 1.1.枚举是用来干嘛的? #include // 这个枚举用来表示函数返回值,ERROR表示错,RIGHT表示对 enum return_value { E ...
最新文章
- 详解在Linux下实现(彩色)进度条程序,并通过makefile进行编译.
- ActiveReports 9 新功能:借助目录(TOC)控件为报表添加目录功能
- 安卓9.0官方系统升级包_华为、荣耀公布可升级安卓10.0机型,你的手机在名单之内吗?...
- 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证
- 简历中能熟练使用计算机怎么写,过了计算机二级,可以在简历里写“熟练掌握Excel”吗?...
- 友讯(d-link)dwa-525 150m无线台式计算机网卡,D-Link新款台式机无线网卡即将上市
- freewheel现场宣讲笔试回忆篇
- apache和tomcat有什么不同,为什么要整合apache 和tomcat?
- java 并发_Java并发编程中断机制 so easy
- PLSQL如何将千万数据快速插入到另一张表中_数据库设计中的 9 大常见错误
- 家用智能门锁常见的开锁方式
- cad多段线画圆弧方向_怎样在cad中利用多线画圆弧
- NXP IMX8系列应用处理器介绍
- 常用的图像质量评估方法
- 计算机网络协议层次结构图
- SpringBoot返回的 JSON 带有斜杠 转义
- 搜索引擎提交的登录入口
- Spark SQL 日期和时间戳函数
- 如何进行知识产权维权
- JZOJ5411. 【NOIP2017提高A组集训10.22】友谊 DP