miniGUI技术白皮书中文翻译稿

miniGUI技术白皮书中文翻译稿


2023年11月25日发(作者:华为鸿蒙系统)

迷你GUI技术白皮书

1 介绍

1.1 什么是miniGUI

MiniGUI (),是由飞漫软件(Feynman Software)为实时嵌入式系统开

发的一款轻量型图形用户界面支持系统。自1999年第一次授权发布以来,MiniGUI已经被

广泛得运用于掌上终端(手机和电子记事本),机顶盒,工业控制系统,工业设备,便携式

媒体播放器,查询终端等等。

同时,MiniGUI已经成为了一个跨操作系统的图形用户界面(GUI)系统,它可以在

Linux/uClinuxeCosVxWorkspSOSThreadXNucleusOSE乃至uC/OS-II以及Windows32

Inrelx86ARM

ARM7/ARM9/StrongARM/xScale, PowerPC,MIPSM68kDragonball/ColdFire。作为

MiniGUI带入高端嵌入式市场的基于嵌入式Linux的高端嵌入式设备,MiniGUI v2.0

为其提供了全部的多任务支持。作为继MiniGUI 2.0 之后最新的版本,MiniGUI 3.0 有着许

多重要的增强,例如单纤双向(BIDI)测试显示支持,透明控制,独立滚动控制,双字节

字体渲染(UPF,点阵字形,以及新的组成部分包括mGUtilsmGPlus

MiniGUI“用于嵌入式设备的跨系统图形用户界面支持系统”以及“嵌入式图形中间件”

迄今为止,MiniGUI已经被中国最著名的电信设备供应商,中国最大的电视机制造商,即时

分同步码分多址技术(TD-SCDMA)的主要制定者,以及世界上最大的处理器生产商所授

权。MiniGUI已经被以下领域中的主要厂家广泛采购和应用,包括:工业器械,医用设备,

以及军工业。同时,MiniGUI已经被全球的嵌入式设备开发商所公认,并远销至包括北美,

日本,中国台湾和马来西亚等国家和地区。MiniGUI已经成为嵌入式图形中间件的变相工业

标准。值得一提的是,大约百分之60TD-SCDMA手机网络认证采用了MiniGUI作为他

们的嵌入式图形平台,用于支持如浏览器和电视电话等功能。在这些TD-SCDMA的手机类

型中,包括海信T68和中兴U8等等。TD-SCDMA是一种由中国自主开发的3G通信标准。

飞漫软件(Feynman Software)不仅发布了基于GPL MiniGUI的一些版本,而且为商业

1

客户提供了MiniGUI-VAR和其他关键性软件产品。此文件是用于有组织地详细介绍

MiniGUI v3.0 的产品特点和应用领域。

1.2 MiniGUI的起源和演变

1998年末MiniGUI开始应用以来已经过去了12年。最初,MiniGUI被设计出来为基于

Linux的控制系统提供单纯的人机交互界面;没人预见到MiniGUI会成为一个跨操作系统的

嵌入式GUI系统。幸运的是,MiniGUI自诞生以来被广泛地应用于各种各样的工程项目中,

而实际工程项目中不断发展变化的需求促使MiniGUI逐渐发展成为一款跨操作系统的嵌入

GUI中间件(middleware

199812月,飞漫软件(Feynman Software)的创始人魏永明开始研发MiniGUI,并将其

应用于计算机数控(CNC)系统。

20003月,联想Lenovo)采用MiniGUI开发HappyLinux V1.0(一款Linux发行版)的

安装程序。同时,MiniGUI成为了Linux的一个强有力的嵌入式GUI支持系统。

1

GPL是一种被广泛应用的免费软件证书,最初是由Richard Stallman为网络对象模型环境

GNU)工程所撰写的。详情请访问

2000年四月至20029月期间,作为一款著名的免费软件,MiniGUI的研究和发布均基

GPL许可证。

20029月,MiniGUI的核心研发人员在北京成立了北京飞漫软件技术有限公司,并开始

了这款免费软件的商业营销。

MiniGUI V1.2.6MiniGUI V1.3.0分别于20033月和20039月发布。

200310月,MiniGUI被移植到uClinuxeCos操作系统。至此,MiniGUI已经成为了一

款跨操作系统的嵌入式GUI系统。

20048月,华为(电信设备供应商的领军企业)采用MiniGUI作为其机顶盒(STB,手

提式设备及其他一些产品的平台。

200411月,飞漫软件发布了MGIS解决方案,用于嵌入式地理信息系统的应用。

20051月,大唐移动(TD-SCDMA技术标准的开发者)采用MiniGUI作为TD-SCDMA

手机的人机界面解决方案。

20053月,MiniGUI的定制版本MiniGUI-CMRMiniGUI的标准版本MiniGUI-STD

发布。

20055月,飞漫软件和因特尔达成协议,授权飞漫参与开发和生产其一系列的名为“数

字家庭”的产品。

20056月,基于VxWorks模拟器的MiniGUI开发环境发布,标志着飞漫和风河系统公司

WindRiver)的合作。

20058月,韩国Systerm Programmer成为飞漫软件产品在韩国的官方代理,这标志着我

们的产品走向国际化进程的一个新阶段。

20059月,飞漫软件发布mSpider完全浏览器。同月,飞漫软件发布基于GNU GPL协议

eDillo V0.4.0浏览器。

20061月,飞漫软件发布基于MiniGUI的组件,包括mGp V1.0mGi V1.0以及mG3d

V1.0

20062月,嵌入式浏览器mSpider V1.6发布。

20063月,飞漫软件发布MGDesktop V2. 5。同时,长虹电器有限公司采用MiniGUI

mSpider开发数字电视和网络电视,表明飞漫软件已经成为了数字电视,网络电视及其相关

领域方案供应商中的领导者。

20065月,飞漫软件与风河(Wind River)合作,为Vxworks系统提供了图形解决方案。

20066月,飞漫软件与AMD建立战略伙伴关系。AMDMiniGUIFhas(飞漫手持终

端应用套件)作为其设计Argon PMP的参考方案。

20066月,飞漫软件集成了MiniGUIEnea(意大利国家核研究院)的实时操作系统

OSEMiniGUI可简化运用于手持终端设备、电信设备、医疗设备、机顶盒-工业控制系统

等的图形用户界面的设计和开发。

20068月,飞漫软件和Atmel(国际领先的半导体器件供应商)采用MiniGUI作为设计

WiFi芯片人机界面的参考方案,这标志着飞漫软件已成为无线通信及其相关领域解决方案

2

供应商中的龙头企业。

2006年,飞漫软件与国际领先的半导体器件供应商Atmel展开合作。MiniGUI成为了无线

领域在开发人机界面时广泛采用一款芯片,它进一步加强了飞漫软件在全球无线领域中的领

先地位。

2

它采用了飞漫软件的另一款产品:Fhas(飞漫手持终端应用套件)

200611月,台湾英业达电子有限公司采用MiniGUI开发支持Skype可见的IP电话,显

示出飞漫软件在数字媒体领域的高端地位。

200612月,ITU香港电信世界,大唐电信发布TD-SCDMA 3G手机软件标准平台,它将

MiniGUIMiniGUI作为端应用开环境。这志着MiniGUI

TD-SCDMA标准平台下手机行业的变相标准。

200612月,飞漫软件发布嵌入式动画比放弃Player-Seal V1.020073月,飞漫软件发

MGDesktop V3.020077月,飞漫软件发布全功能高端嵌入式浏览器mDolPhin V1.0

20082月,飞漫发布GDesktop V4.020086月,飞漫发布mDolphin V2.0

MiniGUI V2.0.4/1.6.10

Linux/uClinux,eCos,uC/os-II,VxWorks,pSOS,ThreadX,Nucleus,OSE以及Win32平台。最新发

布的MiniGUI版本为3.0,它支持Linux/uCliux系统。飞漫软件在将免费软件进行商业营销

的道路上已经迈出了通向成功的关键性步骤。

3

1.3 MiniGUI的典型应用领域

从最早的数控系统到目前流星的智能手持式设备,MiniGUI已经被应用于诸多产品。

MiniGUI应用的主要领域可可分为下面几块:

手持设备(包括2.5G/3G手机,智能手机,多功能手机,WiFi手机,便携式媒体

播放器,个人数字助理)

1.1左侧显示了一个由大唐移动通信设备制造有限公司(中国移动通信领域的

龙头企业)发布的名为Arena(舞台)TD-SCDMA 3G手机终端软件标准平台。

Arena使用Threadx操作系统,并采用MiniGUIPhas(一个应用程序扩展平台)

作为图形系统和应用扩展平台。右侧显示的是一部由台湾英业达公司研发的支持

SKYPEIP可视电话,它采用了MiniGUI作为其图形系统。

1.1 MiniGUI的典型应用:只能掌上设备

数字媒体设备和机顶盒

1.2显示了由飞漫软件开发的基于MiniGUI的机顶盒网页浏览器以及法律相关

信息查询终端。

3

MiniGUI V2.0支持多任务操作系统,如LinuxMiniGUI V1.6 支持传统的多任务或多线程

实时嵌入式操作系统。

1.2 MiniGUI的典型应用:数字媒体设备和机顶盒

工业仪表与控制系统

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可以分成如下几个模块:

图形抽象层,GALGAL将不同设备和系统的图形界面抽象画,为MiniGUI的下

层提供统一的图形界面。GAL的软件模块包括针对Linux系统的FB设备和eCos

系统的LCD设备等。这个软件模块通过呼叫下层设备接口来实现GAL的具体操

作,例如开启和关闭设备,设置分辨率和显示模式。我们把这个适用于GAL界面

的软件模块比作设备驱动系统的引擎。

输入抽象层,IAL。和GAL一样,IAL将所有输入设备抽象化,例如键盘,按键,

鼠标,触摸屏,从而为上层提供统一的界面。为了支持键盘,触摸屏和鼠标,用

户需要实现向这些IAL层的设备输入电源。通过IALIAL层的电源,MiniGUI

可以支持例如操纵台(键盘和鼠标)、触摸屏、远程控制器和按键等的输入设备。

图形抽象接口,GDIGDI是在GAL的基础上为具体的应用提供图形界面,例如

曲线绘制、文本输出、矩形填充等等。GDI也包括其他独立的综合模块,例如字

体和编码、图像等等。

信息处理模块。该模块建立在IAL的基础之上。它实现了信息处理过程的机理,

并向应用程序提供完整的信息管理界面。众所周知,几乎所有的GUI系统都是由

事件驱动的。系统和应用程序的运行都是基于信息管理模块的。

多窗口模块和控制/组件模块。在GDI和信息处理模块的基础上,MiniGUI实现了

多窗口进程模块和控制/组件模块。这个模块为创建主要窗口和控制提供基本界面,

并管理控制类。控制类是重用代码控制中的一个重要概念。通过使用控制类,用

户可以创建一些列的控制类实例。所有这些实例都使用控制类中的相同代码。通

过这个途径,我们获得了对于C++的类和实例的一个相似的概念,并能最大限度

地重用现有代码,提高软件的可维护性。MiniGUI控制模块已经实现了常用的控制,

外观和感觉。这个模块由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配置和编译

成分别适用于三种操作系统的三种运行时模式:

MiniGUI-Threads(多线程):一个程序在MiniGUI-Threads上运行时

可以在不同的线程下创建多个级联的窗口,而所有这些窗口都属于同一

个进程或者在同一个存储地址空间内运行。MiniGUI-Threads适用于大

部分传统播放系统,

VxWorks,ThreadX,Nucleus,OSE,pSOS,uC/OS-II,eCos等等。当然,

MiniGUI也可以在此模式下运行在Linux/uClinux系统上。

MiniGUI-Processes

4

(多任务):与MiniGUI-Threads相反,一个程序

MiniGUI-Processes下运行时是一个独立的过程,这一过程也可以创

建多个窗口。MiniGUI也实现了多任务窗口系统。MiniGUI-Processes

适用于全功能的类Unix操作系统,例如Linux。这种模式在MiniGUI

V2.0版本就已经提出,在MiniGUI V3.0版本得到进一步加强。该模式

的细节将在下面展示。

MiniGUI-Standalone

5

(独立)在此模式下,MiniGUI以单任务方式运

行,不需要多线程和多任务支持。这种模式适用于同时只支持一种功能

的简单应用环境。例如,某些产品处于某种原因使用缺乏多线程的

uClinux作为它们的操作系统。在这种情况下,你可以用这个模式来进

行应用程序的开发。

理论上,在MiniGUI-Standalone模式下,MiniGUI几乎可以运行在所有操作系

统上。MiniGUI-Threads则更适合实时操作系统(它提供了多任务支持)或者是

全功能的类Unix通用操作系统,例如LinuxUNIX。而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-ProcessesMiniGUI-Lite的继承者。它为多任务嵌入式操作系统提

供了全功能支持,例如LinuxMiniGUI V1.6提供的MiniGUI-Lite运行时模式

以及更早的版本是针对Linux系统的多任务环境而设计的;我们可以在有效的客

户端/服务器体系的基础上运行多个客户端进程,并利用其优越的功能,如地址

空间保护。通过MiniGUI-Lite运行时模式,基于MiniGUI的嵌入式系统的灵活

性、稳定性和扩展性将大大提高。例如,我们可以在MiniGUI-Lite下运行多个

MiniGUI客户端进程,如果一个进程异常中止了,其它进程仍能正常运行。此外,

MiniGUI-Lite下我们能非常方便地应用第三方软件。事实上,这就是为什么

大多数嵌入式设备开发人员使用Linux作为它们的操作系统。

虽然MiniGUI-Lite运行时模式支持多任务,但它却不能同时管理由不同进程创

建的窗口。因此,MiniGUI-Lite用层来区分不同进程的窗口。该方法适用于大

部分采用低分辨率显示屏的嵌入式设备,但给应用程序的开发带来了一些困难。

MiniGUI V2.0.x彻底解决了这个问题。MiniGUI-Lite模式下,MiniGUI V2.0.x

实现了完整多任务环境下的视窗系统,该系统下,隶属于不同进程的不同窗口可

以在桌面上同时显示。MiniGUI V3.0.x不仅完全继承了MiniGUI V2.0.x版本的

MiniGUI-Processes模式,而且使用户可以在桌面上自定义图标以及在桌面上显

示事件响应。因此,用户可以很方便地定制桌面。图4.2给出了MiniGUI V1.6

MiniGUI-Lite运行时模式和MiniGUI V3.0.xMiniGUI-Processes运行时模

式的截图。


发布者:admin,转转请注明出处:http://www.yc00.com/num/1700925813a1037193.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信