嵌入式GUI开发设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 嵌入式GUI系统发展状况

目前在常用的嵌入式GUI领域,广泛使用系统由嵌入式QT、Microwindows和MiniGUI三种。

1.3.1 QT/Embedded

Qt/Embedded是著名的Qt库开发商TrollTech公司(http://www.trolltech.com/)发布的面向嵌入式系统的Qt版本。QT是桌面Linux系统普遍使用的图形库(KDE桌面系统基于QT)。与桌面版本不同,Qt/Embedded已经直接取代掉X Server及X Library等多层次,直接使用Frame buffer,所有的功能全部整合在一起。Qt/Embedded为用户提供了与桌面QT相似的应用接口,这可以让桌面的应用很容易移植到嵌入式系统上。QT和QTE系统结构如图1-3所示。

QT是一个功能非常强大的GUI系统。实际上,QT的功能已经超越了传统图形库的范畴。在QT中不但包括了GUI系统的窗口、控件等内容,也包括画布、网络甚至数据库模块。实际上QT提供给应用程序的是一个平台。

图1-3 QT和QTE系统结构

QT编程使用C++面向对象的所有机制,并且使用QT自身一些基于C++附加的功能、信号和槽以及相应的宏编译(moc)机制。QTE的强大开发功能,为快速建立嵌入式GUI程序提供了很大的方便。

Qtopia起源于QPE(全称Qt Palmtop Environment,QT掌上电脑环境),是构建于Qt/Embedded之上的一系列应用程序。从版本4的QT开始,Trolltech将Qt/Embedded并入了Qtopia,并推出了新的Qtopia4。在Qtopia4中,以前的Qt/Embedded(基础库部分)被称为Qtopia Core,作为嵌入式版本的核心,既可以与Qtopia配合,也可以独立使用;以前的Qtopia也采用分层的结构:底层为核心的应用框架和插件系统,被称为Qtopia Platform;上层为应用程序,按照不同的类型分成不同的包。

提示:QT中使用的C++以及各种附加的机制,为编程提供了很大的方便,同时也造成了较高的系统开销。在资源非常有限的嵌入式系统中,过高的开销从某种程度上限制了QTE的使用。

1.3.2 Microwindows

MicroWindows是一个开放源代码的项目,采用MPL条款发布(类似LGPL条款),目前由美国CenturySoftware公司主持开发。MicroWindows的目的是把图形视窗环境引入到运行Linux的小型设备和平台上。作为X Window的替代品,Microwindows可以使用更少的RAM和文件存储空间(100K-600K)提供与X Window相似的功能。

MicroWindows是一个基于典型客户/服务器体系结构的GUI系统,基本分为三层。最底层是面向图形输出和键盘、鼠标或触摸屏的驱动程序;中间层提供底层硬件的抽象接口,并进行窗口管理;最高层分别提供兼容于X Window和Windows CE(Win32子集)的API。该项目的主要特色在于提供了类似X的客户/服务器体系结构,并提供了相对完善的图形功能,包括一些高级的功能,比如Alpha混合、三维支持、TrueType字体支持等。由于基本上用C语言实现,Microwindows的可移植性非常好,只有某些关键代码使用了汇编以提高速度。由于缺乏核心的维护人员,Microwindows也存在一些问题,代码质量不是很好,存在一些bug。

MicroWindowGUI系统结构如图1-4所示。

图1-4 MicroWindows GUI系统的结构

1.3.3 MiniGUI

MiniGUI是由北京飞漫软件技术有限公司开发的面向实时嵌入式系统的轻量级图形用户界面支持系统。自1999年初遵循GPL条款发布第一个版本以来,MiniGUI已广泛应用于手持信息终端、机顶盒、工业控制系统及工业仪表、便携式多媒体播放机、查询终端等产品和领域。目前,MiniGUI已成为跨操作系统跨硬件平台的图形用户界面支持系统,可在Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE等操作系统以及Win32平台上运行,已验证的硬件包括ix86、ARM、PowerPC、MIPS、DragonBall、ColdFire等。MiniGUI V2.0为基于嵌入式Linux的高端嵌入式设备提供了完整的多进程支持,从而将MiniGUI从中端市场带到了高端市场。最新的MiniGUI V3.0则是继2.0之后的一个重要增强,增加了如外观渲染器技术、双向文本支持、透明控件、独立滚动条控件、UPF字体和位图字体等新的特性,并新增两个组件mGUtils、mGPlus。

简单来说,MiniGUI的层次结构如图1-5所示。

图1-5 MiniGUI系统结构

MiniGUI的定位为“针对嵌入式设备的、跨操作系统的图形界面支持系统”,属于一种“嵌入式图形中间件”软件产品。目前,MiniGUI已得到了国内最大的民营通信设备制造商、中国最大的电视机生产商、TD-SCDMA终端方案供应商和全球最大的处理器生产厂商的认可及使用;而在诸如工业仪表、医疗仪器、军工等行业,更有众多行业领先厂商选择MiniGUI开发他们的嵌入式产品。与此同时,MiniGUI也得到了海外嵌入式设备开发商的认可,并远销到韩国、日本、台湾、马来西亚、北美、欧洲等国家和地区;MiniGUI业已成为嵌入式图形中间件领域的工业事实标准。值得一提的是,在中国自主开发的3G通信标准TD-SCDMA中,约有60%获得入网许可证的TD-SCDMA手机使用MiniGUI作为其嵌入式图形平台,以支撑浏览器、可视电话等3G应用软件的运行;其中有海信T68、中兴通信U85等TD-SCDMA手机型号。

飞漫软件除了遵循GPL条款发布MiniGUI的某些版本之外,还为商业用户提供MiniGUI增值版产品以及其他关键应用软件产品。