miniGUI技术白皮书中文翻译稿.doc_第1页
miniGUI技术白皮书中文翻译稿.doc_第2页
miniGUI技术白皮书中文翻译稿.doc_第3页
miniGUI技术白皮书中文翻译稿.doc_第4页
miniGUI技术白皮书中文翻译稿.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

迷你GUI技术白皮书1 介绍1.1 什么是miniGUIMiniGUI (),是由飞漫软件(Feynman Software)为实时嵌入式系统开发的一款轻量型图形用户界面支持系统。自1999年第一次授权发布以来,MiniGUI已经被广泛得运用于掌上终端(手机和电子记事本),机顶盒,工业控制系统,工业设备,便携式媒体播放器,查询终端等等。同时,MiniGUI已经成为了一个跨操作系统的图形用户界面(GUI)系统,它可以在Linux/uClinux,eCos,VxWorks,pSOS,ThreadX,Nucleus,OSE乃至uC/OS-II,以及Windows32位系统的平台下运行;已经被测试过的硬件平台,包括Inrelx86,ARM(ARM7/ARM9/StrongARM/xScale), PowerPC,MIPS和M68k(Dragonball/ColdFire)。作为将MiniGUI带入高端嵌入式市场的基于嵌入式Linux的高端嵌入式设备,MiniGUI v2.0版为其提供了全部的多任务支持。作为继MiniGUI 2.0 之后最新的版本,MiniGUI 3.0 有着许多重要的增强,例如单纤双向(BIDI)测试显示支持,透明控制,独立滚动控制,双字节字体渲染(UPF),点阵字形,以及新的组成部分包括mGUtils,mGPlus。MiniGUI是“用于嵌入式设备的跨系统图形用户界面支持系统”,以及“嵌入式图形中间件”。迄今为止,MiniGUI已经被中国最著名的电信设备供应商,中国最大的电视机制造商,即时分同步码分多址技术(TD-SCDMA)的主要制定者,以及世界上最大的处理器生产商所授权。MiniGUI已经被以下领域中的主要厂家广泛采购和应用,包括:工业器械,医用设备,以及军工业。同时,MiniGUI已经被全球的嵌入式设备开发商所公认,并远销至包括北美,日本,中国台湾和马来西亚等国家和地区。MiniGUI已经成为嵌入式图形中间件的变相工业标准。值得一提的是,大约百分之60的TD-SCDMA手机网络认证采用了MiniGUI作为他们的嵌入式图形平台,用于支持如浏览器和电视电话等功能。在这些TD-SCDMA的手机类型中,包括海信T68和中兴U8等等。TD-SCDMA是一种由中国自主开发的3G通信标准。飞漫软件(Feynman Software)不仅发布了基于GPL 1 的MiniGUI的一些版本,而且为商业客户提供了MiniGUI-VAR和其他关键性软件产品。此文件是用于有组织地详细介绍MiniGUI v3.0 的产品特点和应用领域。1.2 MiniGUI的起源和演变自1998年末MiniGUI开始应用以来已经过去了12年。最初,MiniGUI被设计出来为基于Linux的控制系统提供单纯的人机交互界面;没人预见到MiniGUI会成为一个跨操作系统的嵌入式GUI系统。幸运的是,MiniGUI自诞生以来被广泛地应用于各种各样的工程项目中,而实际工程项目中不断发展变化的需求促使MiniGUI逐渐发展成为一款跨操作系统的嵌入式GUI中间件(middleware)。1998年12月,飞漫软件(Feynman Software)的创始人魏永明开始研发MiniGUI,并将其应用于计算机数控(CNC)系统。2000年3月,联想(Lenovo)采用MiniGUI开发HappyLinux V1.0(一款Linux发行版)的安装程序。同时,MiniGUI成为了Linux的一个强有力的嵌入式GUI支持系统。1 GPL是一种被广泛应用的免费软件证书,最初是由Richard Stallman为网络对象模型环境(GNU)工程所撰写的。详情请访问http:/www.qnu.orq。从2000年四月至2002年9月期间,作为一款著名的免费软件,MiniGUI的研究和发布均基于GPL许可证。2002年9月,MiniGUI的核心研发人员在北京成立了北京飞漫软件技术有限公司,并开始了这款免费软件的商业营销。MiniGUI V1.2.6和MiniGUI V1.3.0分别于2003年3月和2003年9月发布。2003年10月,MiniGUI被移植到uClinux和eCos操作系统。至此,MiniGUI已经成为了一款跨操作系统的嵌入式GUI系统。2004年8月,华为(电信设备供应商的领军企业)采用MiniGUI作为其机顶盒(STB),手提式设备及其他一些产品的平台。2004年11月,飞漫软件发布了MGIS解决方案,用于嵌入式地理信息系统的应用。2005年1月,大唐移动(TD-SCDMA技术标准的开发者)采用MiniGUI作为TD-SCDMA手机的人机界面解决方案。2005年3月,MiniGUI的定制版本(MiniGUI-CMR)和MiniGUI的标准版本(MiniGUI-STD)发布。2005年5月,飞漫软件和因特尔达成协议,授权飞漫参与开发和生产其一系列的名为“数字家庭”的产品。2005年6月,基于VxWorks模拟器的MiniGUI开发环境发布,标志着飞漫和风河系统公司(WindRiver)的合作。2005年8月,韩国Systerm Programmer成为飞漫软件产品在韩国的官方代理,这标志着我们的产品走向国际化进程的一个新阶段。2005年9月,飞漫软件发布mSpider完全浏览器。同月,飞漫软件发布基于GNU GPL协议的eDillo V0.4.0浏览器。2006年1月,飞漫软件发布基于MiniGUI的组件,包括 2mGp V1.0,mGi V1.0以及mG3d V1.0。2006年2月,嵌入式浏览器mSpider V1.6发布。2006年3月,飞漫软件发布MGDesktop V2. 5。同时,长虹电器有限公司采用MiniGUI和mSpider开发数字电视和网络电视,表明飞漫软件已经成为了数字电视,网络电视及其相关领域方案供应商中的领导者。2006年5月,飞漫软件与风河(Wind River)合作,为Vxworks系统提供了图形解决方案。2006年6月,飞漫软件与AMD建立战略伙伴关系。AMD将MiniGUI和Fhas(飞漫手持终端应用套件)作为其设计Argon PMP的参考方案。2006年6月,飞漫软件集成了MiniGUI与Enea(意大利国家核研究院)的实时操作系统OSE。MiniGUI可简化运用于手持终端设备、电信设备、医疗设备、机顶盒-工业控制系统等的图形用户界面的设计和开发。2006年8月,飞漫软件和Atmel(国际领先的半导体器件供应商)采用MiniGUI作为设计WiFi芯片人机界面的参考方案,这标志着飞漫软件已成为无线通信及其相关领域解决方案供应商中的龙头企业。2006年,飞漫软件与国际领先的半导体器件供应商Atmel展开合作。MiniGUI成为了无线领域在开发人机界面时广泛采用一款芯片,它进一步加强了飞漫软件在全球无线领域中的领先地位。2它采用了飞漫软件的另一款产品:Fhas(飞漫手持终端应用套件)。2006年11月,台湾英业达电子有限公司采用MiniGUI开发支持Skype可见的IP电话,显示出飞漫软件在数字媒体领域的高端地位。2006年12月,ITU香港电信世界,大唐电信发布TD-SCDMA 3G手机软件标准平台,它将MiniGUI和MiniGUI选配件作为终端应用开发环境。这标志着MiniGUI已经成为TD-SCDMA标准平台下手机行业的变相标准。2006年12月,飞漫软件发布嵌入式动画比放弃Player-Seal V1.0。2007年3月,飞漫软件发布MGDesktop V3.0。2007年7月,飞漫软件发布全功能高端嵌入式浏览器mDolPhin V1.0。2008年2月,飞漫发布GDesktop V4.0。2008年6月,飞漫发布mDolphin V2.0。目前,MiniGUI V2.0.4/1.6.。103 支持的系统包括:Linux/uClinux,eCos,uC/os-II,VxWorks,pSOS,ThreadX,Nucleus,OSE以及Win32平台。最新发布的MiniGUI版本为3.0,它支持Linux/uCliux系统。飞漫软件在将免费软件进行商业营销的道路上已经迈出了通向成功的关键性步骤。1.3 MiniGUI的典型应用领域从最早的数控系统到目前流星的智能手持式设备,MiniGUI已经被应用于诸多产品。MiniGUI应用的主要领域可可分为下面几块:n 手持设备(包括2.5G/3G手机,智能手机,多功能手机,WiFi手机,便携式媒体播放器,个人数字助理)图1.1左侧显示了一个由大唐移动通信设备制造有限公司(中国移动通信领域的龙头企业)发布的名为Arena(舞台)的TD-SCDMA 3G手机终端软件标准平台。Arena使用Threadx操作系统,并采用MiniGUI和Phas(一个应用程序扩展平台)作为图形系统和应用扩展平台。右侧显示的是一部由台湾英业达公司研发的支持SKYPE的IP可视电话,它采用了MiniGUI作为其图形系统。图1.1 MiniGUI的典型应用:只能掌上设备n 数字媒体设备和机顶盒图1.2显示了由飞漫软件开发的基于MiniGUI的机顶盒网页浏览器以及法律相关信息查询终端。3MiniGUI V2.0支持多任务操作系统,如Linux;MiniGUI V1.6 支持传统的多任务或多线程实时嵌入式操作系统。图1.2 MiniGUI的典型应用:数字媒体设备和机顶盒n 工业仪表与控制系统图1.3描述了一些基于Linux系统和MiniGUI的工业仪表和控制系统。图1.3 MiniGUI的典型应用:工业仪表与控制系统4 MiniGUI的软件构架4.1 MiniGUI的软件构架为什么MiniGUI能在众多嵌入式系统中良好运行呢?究其原因是由于MiniGUI拥有一个良好的软件构架。MiniGUI通过软件抽象层(也称为便携式层)将应用层和系统层分开。图4.1说明了MiniGUI和实时操作系统之间的关系。基于MiniGUI的应用通过调用一个叫做APIs的标准C语言函数库和MiniGUI函数库来实现其功能,以及系统功能的接口和驱动程序。MiniGUI的图形抽象层和输入抽象层隐藏了底层的硬件和操作系统的细节,所以应用程序不需要顾及到输入输出设备。此外,MiniGUI独特的运行时间模式为其在不同的操作系统下运行提供了便利。从下面的图片,我们可以发现,从底层到顶层,MiniGUI可以分成如下几个模块:l 图形抽象层,GAL。GAL将不同设备和系统的图形界面抽象画,为MiniGUI的下层提供统一的图形界面。GAL的软件模块包括针对Linux系统的FB设备和eCos系统的LCD设备等。这个软件模块通过呼叫下层设备接口来实现GAL的具体操作,例如开启和关闭设备,设置分辨率和显示模式。我们把这个适用于GAL界面的软件模块比作设备驱动系统的引擎。l 输入抽象层,IAL。和GAL一样,IAL将所有输入设备抽象化,例如键盘,按键,鼠标,触摸屏,从而为上层提供统一的界面。为了支持键盘,触摸屏和鼠标,用户需要实现向这些IAL层的设备输入电源。通过IAL和IAL层的电源,MiniGUI可以支持例如操纵台(键盘和鼠标)、触摸屏、远程控制器和按键等的输入设备。l 图形抽象接口,GDI。GDI是在GAL的基础上为具体的应用提供图形界面,例如曲线绘制、文本输出、矩形填充等等。GDI也包括其他独立的综合模块,例如字体和编码、图像等等。l 信息处理模块。该模块建立在IAL的基础之上。它实现了信息处理过程的机理,并向应用程序提供完整的信息管理界面。众所周知,几乎所有的GUI系统都是由事件驱动的。系统和应用程序的运行都是基于信息管理模块的。l 多窗口模块和控制/组件模块。在GDI和信息处理模块的基础上,MiniGUI实现了多窗口进程模块和控制/组件模块。这个模块为创建主要窗口和控制提供基本界面,并管理控制类。控制类是重用代码控制中的一个重要概念。通过使用控制类,用户可以创建一些列的控制类实例。所有这些实例都使用控制类中的相同代码。通过这个途径,我们获得了对于C+的类和实例的一个相似的概念,并能最大限度地重用现有代码,提高软件的可维护性。MiniGUI控制模块已经实现了常用的控制,如静态,按钮,编辑框,列表框,下拉框等等。l 外观和感觉。这个模块由MiniGUI V3.0通过接口提供给应用程序,可用来定制MiniGUI窗口及控件渲染。在以前的版本中,主窗口和控制风格还没有被提出来形成一个独立的模块,但我们仍然可以通过MiniGUI的配置选项让主窗口和控件有三种不同的表现形式。这三种显示风格分别是PC样式的三维风格(PC3D),平面风格(FLAT)和流行风格(FASHION)。在MiniGUI 3.0版本,主要窗口和控件的外观可以完全由用户定制。当创建主要窗口和控件时,用户可以通过指定不同的渲染名称使它们具有不同的外观。 以上各模块组成了MiniGUI的核心。基于MiniGUI的界面,它为应用程序提供了多种组件。这些组件包括mGi,mGp,mG3d,mGUtils,mGplus。这些组件为应用程序提供了额外的功能。我们将详细介绍这些组件。4.2 MiniGUI的运行时模式不同于类似Linux这样的通用操作系统,传统的嵌入式操作系统有其独特的一面。例如,uClinux,uC/OS-II,eCos以及VxWorks通常运行在无内存,没有独立地址空间,只包含线程和任务的CPU下。因此,我们需要将MiniGUI配置和编译成分别适用于三种操作系统的三种运行时模式:n MiniGUI-Threads(多线程):一个程序在MiniGUI-Threads上运行时可以在不同的线程下创建多个级联的窗口,而所有这些窗口都属于同一个进程或者在同一个存储地址空间内运行。MiniGUI-Threads适用于大部分传统播放系统,VxWorks,ThreadX,Nucleus,OSE,pSOS,uC/OS-II,eCos等等。当然,MiniGUI也可以在此模式下运行在Linux/uClinux系统上。n MiniGUI-Processes4(多任务):与MiniGUI-Threads相反,一个程序在MiniGUI-Processes下运行时是一个独立的过程,这一过程也可以创建多个窗口。MiniGUI也实现了多任务窗口系统。MiniGUI-Processes适用于全功能的类Unix操作系统,例如Linux。这种模式在MiniGUI V2.0版本就已经提出,在MiniGUI V3.0版本得到进一步加强。该模式的细节将在下面展示。n MiniGUI-Standalone5(独立):在此模式下,MiniGUI以单任务方式运行,不需要多线程和多任务支持。这种模式适用于同时只支持一种功能的简单应用环境。例如,某些产品处于某种原因使用缺乏多线程的uClinux作为它们的操作系统。在这种情况下,你可以用这个模式来进行应用程序的开发。理论上,在MiniGUI-Standalone模式下,MiniGUI几乎可以运行在所有操作系统上。MiniGUI-Threads则更适合实时操作系统(它提供了多任务支持)或者是全功能的类Unix通用操作系统,例如Linux,UNIX。而MiniGUI-Processes模式下,MiniGUI则只能在像Linux这样的类UNIX操作系统上。无论使用哪种模式,MiniGUI都为应用程序提供了最大程度的兼容性;只有少数几个初始化界面在不同运行时模式下存在区别。4在MiniGUI V2.0之前这个运行时模式被称为“MiniGUI-Lite”.MiniGUI-Lite为Linux系统下的多任务环境提供了一个折衷方案,但不能解决不同进程的窗口重叠的问题。MiniGUI V2.0版本的MiniGUI-Processes运行时模式为多任务环境提供了全功能视窗解决方案。5目前,我们只为Linux/uClinux操作系统提供MiniGUI-Standalone运行时模式。4.2.1 MiniGUI-Processes运行时模式MiniGUI-Proces

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论