admin 管理员组文章数量: 1184232
2024年12月26日发(作者:java作用域是什么)
维普资讯
第36卷第3期
电子科技大学学报
V_01.36 No.3
2007年6月
Journal ofUniversity ofElectronic Science and Technology ofChina
Jun.2007
基于XML的嵌入式Linux系统用户界面定制
靳京,桑楠,刘 一
(电子科技大学计算机科学与工程学院成都610054)
【摘要】针对嵌入式Linux ̄-.统GUI的可定制性需求,在分析了现有多种嵌入式GUI产品的基础上,提出了一种基于XML
的用户界面动态定制方案.它通过一个定制模块为最终用户提供界面维护修改功能,并按照保存在XML文档中的定制结果来
显示更新后的界面,实现界面设计数据与应用逻辑模块的分离。该方案在建立于MiniGUI_P-的嵌入式Linux ̄-.统用户界面中得
以实现。
关键词定制;嵌入式Linux ̄.统;可扩展标置语言;图形用户界面
中图分类号TP31l 文献标识码A
XML—Based User Interface Customization and Dynamical
Modiifcation of the Embedded Linux System
JIN Jing,SANGNan,LⅣYi
(School ofComputer Science and En#neering University ofElectxonic Science nad Technology ofChma Chengdu 610054)
Abstract Since the demand of the embedded Linux GUI system Can be customized。an approach to
customize and modify UI dynamically witll XM is presented based on analyzing most of hte embedded(砌I
productions.This approach provides a function to modify UI for the final user wiht a customizing modular,by
which the data of UI design is separated from application logical modulra.The information of hte modiifcation
stored in hte XM document will be used to display hte new UI.This approach has been achieved ni the embedded
Linux system based on MiniGUI.
Key words customization; embedded Linux system; extensible markup language; graphical user
interface
随着Linux操作系统在我国的不断普及和迅猛 优势,有的在可配置性性能方面不理想,有的界面
发展,在Linux下开发图形用户界面(GU0的应用程
管理太复杂,不适用于多数嵌入式系统。在电子产
序已日渐成为一种需求【lJ。图形用户界面允许用户
品日趋个性化的今天,这一现状显然无法适应市场
通过控制各类图标来完成各种计算机操作,综合利
的需要。
用计算机强大的处理能力、新型输入腧出设备以及 另一方面,大多数系统把生成界面代码作为其
先进的软件技术,使人机交互手段丰富而高效,为
主要目的,开发人员对界面的定义生成出界面形态
用户提供了一个直观的、友好的操作环境【21。
的代码,然后在编程过程中进行组织与管理。这样,
GUI在软件系统中占据着非常重要的位置,但
产生的界面信息与源代码处于相同级别,对界面信
却是软件系统中最容易发生变化的部分【31。对实时
息的修改必须通过编译、连接之后,才能反映到可
性要求很高的嵌入式Linux系统而言,由于其本身硬
执行文件中。这种传统的界面管理方式只是简化了
件的条件限制,对GUI的基本要求除了要求占用资
界面的生成与修改过程,对于用户界面的可扩展性
源少、高性能、高可靠性以外,可配置性也已经被
并没有带来实质性的好处I引。
提到相当重要的地位。
因此,本文提出了一种基于XML的可定制界面
目前已经开发出的嵌入式GUI产品很多,如:
管理机制,实现对建立在M.miGUI上的嵌入式Linux
Century Software的Microwindows(Nano-X)、
系统用户界面进行配制及其动态更新,为最终用户
Trolltech的QT/Embedded、XFree86 Project的XFree86
提供维护修改功能而无需重新编译和连接,很好地
以及飞漫公司的MiniGUI等。它们的性能特点各有
实现了用户界面与应用语义的分离。
收稿日期:2005—10—19
基金项目:云南省省校省院合作科研项I ̄1(W060321)
作者简介:靳京(1975一).男.博士生.主要从事嵌入式实时系统方面的研究.
维普资讯
第3期 靳京等:基于XML的嵌入式Linux垂 旦 室
1相关技术背景
下主要特点:(1)提供了完备的多窗口机制,实现了
1.1 XML及其GUI应用
类Win32的消息传递机制;(2)支持多字符集和多字
XML是一种元数据语言,它允许开发者以标准
体,以及全拼、五笔等汉字输入法;(3)支持常见的
统一的方式简便地描述,在任意应用程序中传输结
图像文件,如BMP、GIF、JPEG、PCX、TGA等,
构化数据,并且可以跨平台地进行数据内容的定义
以及Windows的资源文件,如位图、图标、光标等;
声明,由此可提供更有意义的搜索结果。XML还是
(4)小巧、可配置是MiniGUI最突出的特点;(5)移
一
种通用的标准,适用于在异构系统、不周平台及
植性好。
应用程序间交换数据【5】。Ⅺ儿程序无需编译即可执
MiniGUI的目标是保持小的特点,并积极向模
行,便于修改,为定制和更新用户界面提供了可能。
块化方向发展,为各种嵌入式系统或实时系统提供
基于Ⅺ儿的用户界面描述将界面元素(例如对
一
个小型的窗口支持系统 J。
话框、菜单、工具条等)定义为Ⅺ 标签(Tag),可
2可定 ̄IJGUI结构及其基本原理
方便地将界面元素以及相关信息写入XML文件中,
此XML文件即定义了相应的用户界面。显然,基于
用户界面定制fUI Customization)是指在软件运
Ⅺ沮肭格式文档易于编辑,当然还可由此建立可视
行过程中,用户可以根据自己的使用习惯,对界面
化界面设计工具。更为重要的是,此类文档可在程
元素(如菜单、工具栏、键盘命令等)的属性(如文字、
序运行时动态载入或修改,从而赋予了应用程序更
图标、大小、位置)进行修改,当软件结束运行时,
为强大的界面处理能力l6】。
界面定制的结果将被保存到固定的界面配置文件中。
1.2 MiniGUI
图I为XML的可定制界面管理机制,图中系统
M iGLⅡ是一个专门为基于Linux的嵌入式系统
利用界面定制模块,对界面元素在允许的范围内进
提供的一个轻量级图形用户界面支持系统,是基于
行个性化修改,并将修改后的界面数据及时写入到
sVGALib及LinuXThread库的多窗口GLⅡ支持系统。
XML界面文件中的对应位置。当系统运行时,首先
它采用了类Win32的API接口,实现了简化的类
对XML文档进行解析,提取其中的数据并按照一定
Windows98风格的图形用户界面。MiniGUI是遵循
的机制存放于一个消息队列中;当MiniGUI运行时
LGPL条款的纯自由软件,同时也是国内最早出现的 便从消息队列中逐个取出所用的数据,并赋值给相
几个自由软件项目之一,可以运行在任何一种具有
应的变量,这样系统界面就会按用户的设计的要求
POSIX线程支持的POSIX兼容系统上。MiniGUI有以
呈现在屏幕上。
图l基于XML的可定制界面管理机制图
3重要模块的设计实现
在构造界面组件库时,首先对所有界面元素的
3.1用户界面定制模块
外观、特征、行为进行分析,提炼它们的共性,并
这是本系统的核心之一,其中的关键是界面组
划分出类型和层次;然后采用面向对象的思想,用
件库和界面风格的确定。
不同层次的类对它们进行描述,通过继承与派生维
界面组件库由一组用于描述各种界面元素基本
护共性。界面元素的外观是通过绘制而成,每个组
外观、特征、行为的组件,以及一整套用于界面管
件从其父类继承绘制方法,可获得标准、统一的视
理的组件所构成,它是实现界面生成与定制的基础;
觉效果。界面元素的行为是通过消息来实现人机交
而界面风格则定义了界面元素的个性化特点,使用
互(如鼠标移动消息、点击消息、键盘击键消息等),
户可以选择适合自己的界面样式。
在界面组件中,通过消息的映射、筛选、响应、转
维普资讯
5l2 电子科技大学学报 第36卷
发等操作处理,
可以管理和扩充界面元素的交互方
法和能力。
组件库中各界面组件均有各自的标准接口与
Linux系统相连接,当被用户选中成为可用状态时,
便可与下层系统对应的接口自动完成对接,无需重
新设置,实现了用户界面设计数据与应用逻辑模块
的分离嗍。其关系结构如图2所示。
3.2解析模块
XML文件解析流程如图3所示,其工作原理类
似E)q)at工具包中的Ⅺ 解析器【9】。其中主要涉及到
个CxmlParser类,该类中封装了解析一个XlVIL文
档的所需函数。主要包括:
一
(1)Element(eleName):解析名为eleName的元素
的类别,根据其类别将其加入相应的链表;
(2)IterateAttributes:解析结点的属性值,根据
结点的类型调用相关类的OnAttribute函数,将结点
的属性值存入相应的变量;
(3)Parser(ifleName):创建一个DOMDocument
对象,载入名为fileName的XlVIL文件。该函数利用
DOM Document对象和文档对象模型(Document
Object Model,OOM)应用程序接口生成一个结点的
树型逻辑结构。可通过遍历此DOM树的每一个结
点,达到浏览、查询和修改Ⅺ儿文档内容和结构的
图2定制模块与下层系统结构关系图
目的。
图3 XML文件解析流程图
DOM是一个文档对象组成的模型,对于XML 3.3通信模块
应用开发来说就是一个对象化的XML数据接口。 在系统定制过程中,必然会有一定量的数据需
DOM提供了丰富的元素,使用操作灵活,而且可以 要更新并在XML文档解析进程和界面显示进程间
完成对于XML文档的读取、修改、删除等功能。简 进行传递。由于系统定制是一个动态更新过程,其
单地说,DOM就是一个对象集合,通过操纵这些对 数据传输量不固定,而且考虑到嵌入式系统对实时
象,就能操纵XML数据。 性的要求,本系统选用了消息队列机制的方法,而
XML进程间通信的过程如图4所示。
图4进程间通信原理示意图
3.4实现方法
(1)利用前述函数,解析生成如图6所示DOM
下面以控制按钮为例介绍本系统的具体实现方 树。
法。XML文档结构如图5所示,图中整个解析实现 (2)根据解析结果生成如下消息队列:
过程描述如下
QUEUE ID=123:“ID_BUT:l:确定;WS
—
维普资讯
第3期 靳京等:基于XML的嵌入式Linux系统用户界面定制 5l3
CH几D:100;100;80;30;…”
种新的用户界面开发和更新方案,并介绍了基于实
现该方案的核心技术。
这种基于XML的用户界面定制的方法不仅可
以使用户界面描述信息与功能实现代码相分离,简
化用户界面的开发与维护,还可以使软件的最终用
(3)消息传递给显示进程,存入数组vary[i](i=
0,l,2,3…),其 ̄vary[o]=“ID
BUT”;vary[1]=“l”;
LD”…
vary[2]-“确定”:vary[3]=“WS
CHI
_
—
(4)调用MiniGUI的按钮创建函数,显示生成按
钮。
CreateWindow(CTRL_BUTTON,vary[o],vary
【l】,vary[2],…);
图5 XML文档结构
图6 DOM树
4结束语
本文结合XML等技术,为嵌入式应用提供了一
户获得与开发人员相同的界面操控能力,能够在系
统运行前和运行过程中对用户界面进行配置、定制
和控制等操作。
基于XML本身特有的灵活性,该方法在协同设
计软件和网络服务型软件中也将有非常广阔的应用
前景。
参考文献
【l】王子强.LirIux下图形用户界面程序的开发与实现[J】.计
算机应用与软件,2005,6:81.83.
【2】施奈德曼.用户界面设计——有效的人机交互策略【M】.
第3版.张国印,译.北京:电子工业出版社,2004:
ll4-ll7.
【3】FANG Zhi-gang,WU Xiao-bo,MA Wei-juan.111e progress
on the study of human-computer niteraction technology[J].
Computer Engineering nad Design,1998,l9(1):59-65.
【4】祁献鹏,郭玉东.M.miGul——面向嵌入式系统的GUI系
统【J】.信息工程大学学报,2001,3(2):8-10.
【5】王婷.XML技术在嵌入式系统图形界面开发中的应用
【J】.武汉科技大学学报,2005,28(3):75-77.
【6】吴根祥.基于XlVlL的用户界面描述语言分析【J】.计算机
系统应用,2004,12:28.30.
【7】TIAN Bina。DAI Hang,DAI Guanzhong,et 1a.Design nad
application of persistent user interface management
system[J].Chinese Journal of Computers,2000。23(6):
660-666.
【8】 IK D J,L M MSEY H W Relfections on
using a U1MS for complex applications[J].IEEE Software,
1989,6(1):54-61.
【9】聂丹.Ⅺ 在脚本语言PHP中的应用【J】.丹东纺专学报,
2005。l2(1):42-44.
编辑刘文珍
版权声明:本文标题:基于XML的嵌入式Linux系统用户界面定制 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735285886a1642794.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论