admin 管理员组文章数量: 1087652
2024年4月20日发(作者:十天学会css教程下载)
维普资讯
第24卷第3期
2007年3月
计算机应用与软件
Computer Applications and Software
Vo1.24,No.3
Mar.2007
基于XML-Glue的DIY智能手机UI设计与实现
严振山赵岳松
(武汉理工大学计算机科学与技术学院湖北武汉430070)
摘 要XML・Glue技术为智能手机用户界面的DIY需求提供了可行性方法,该方法可以在不改变智能手机应用逻辑实现的情
况下,通过脚本灵活的组织和控制界面的显示;不仅便利了智能手机uI程序员的开发和维护,而且降低了整个智能手机应用的开
发成本。给出了XML—Glue的开发框架并详细介绍了它的各种技术元素和应用实例,最后说明了它在智能手机换肤技术上带来的
便捷性。
关键词XML—Glue CAR CAR Relfection构件元数据
DESIGN AND D御)LEM NTATIoN oF【HY SM R删oNE MoDEL BASED oN XM .GLUE
Yan Zhenshan Zhao Yuesong
(Department ofComputer Science and Technology,Wuhan University ofTechnology,Wuhan Hubei 430070,China)
Abstract XML—Glue technology provides the possibilities to DIY smartphone UI,and it can arrange and control freely the UI through
script,without changing the implementation of application logic.XML・Glue not only makes the UI progammer write and maintain code easily,
but also reduces the development cost.The paper presents the development frame of XML・Glue and introduces all kinds of technology elements
and an applicant example of it.At last the text shows the convenience XML・Glue brings to smartphone skin・chan ̄ng.
Keywords XML—Glue CAR CAR reflection Component Metadata
通过更换不同的组件库来完成不同的功能或者达到定制的用户
0 引 言
在传统的手机应用设计中,手机系统的应用uI和实现逻辑
是粘合在一起的,没有进行详细的功能分切,通常的情况是应用
体验。
(Con
tro
ller
。
—
~
)]
—
……
uI的变化会牵动上层uI部分的重新设计和底层逻辑代码的修
改和编译。对于具体的手机软件开发商来说,uI和逻辑界线的
模糊不清带来的是手机应用维护的庞杂,同时也不利于软件作
业的分工,这种高耦合性最终导致的是手机软件开发的低效率
和高成本,最终也不利于以后手机软件的工厂化实现。和欣嵌
入式操作系统提供的XML・Glue技术很好地解决了这些问题。
本文结合和欣DIY手机的技术原理,分析了XML.Glue怎样将
CAR构件和XML/Script协调起来实现智能手机应用部件的动
态拼装技术,以此来完成手机uI的显示。
[量]
图1 XML・Glue的MVC开发框架
图1是XML.Glue的开发框架,XML.Glue的核心技术是和
欣CAR构件技术,它使用XML/Script来描述应用的uI,由CAR
构件来完成应用的逻辑,然后由XML.Glue技术来完成两者的
拼装,并形成一个完整的应用。这个思想在桌面应用上已经得
到了较广的应用,像Mozilla的XUL,Microsoft的XAML等等,通
过Xm1.Glue在嵌入式系统中也提供了相应的框架。XML—
Glue使得和欣CAR构件技术的优势充分张显,构件的自描述
真正体现了软件零件化的思想,构件的Relfection技术使得脚
本对构件的操纵更加灵活自如,这两点是上述两种技术所不具
备的。
XML.Glue基于和欣CAR构件技术,MVC开发框架的引入
使得构件技术在嵌入式系统开发领域的优势得以充分发挥,主
要可描述为:可移植可重用性、单点维护性、易于交互性、可升级
1 XML-Glue技术特性
XML.Glue是和欣操作系统上的一个Rich Client应用的
MVC开发框架(图1),它的核心思想是用XML表达界面。但
是,XML文件仅仅描述界面的组成,它不包含组件本身或具体
的实现技术,这种关注点上的分切使得它可以运行于任何运行
环境。在界面绘制方面,可以用和欣的Grafix来画界面,可以
用Windows的界面引擎来画界面即XAML,可以用浏览器中的
SWF引擎来画界面(Flex/Laszlo),可以用AWT/SWING组件来
画界面(Thinle swixML/JNDc),还可以用任何其他的技术来
可修改性和模块对等性等。
收稿日期:2006—04—27。基金项目:国家863计划资助项目
(2001AA113400)。严振山,硕士生,主研领域:网络操作系统,嵌入式
系统。
做这件事。在逻辑实现层,可以选择不同的组件库,uI设计层
维普资讯
计算机应用与软件 2007血
是JAVA由于它的灵活性和与平台无关性被引用进来,以此完
2 XML-Glue的机制及实现
2.1 XML-Glue的关键技术
XML—Glue技术已被成功应用于和欣手机uI的设计中,它
成一些辅助的逻辑事务。Grafix图形设备接口(GDI)也以构件
的形式存在并向上层提供服务,由于它的通用性被系统自动加
载,用户可以直接调用它的接口。底层的ElaScope图形系统引
擎负责按照“XML—GLUE描述文件”的要求将逻辑资源粘合起
来,同时,事务实现单元CAR构件和JAVA语言用ElaScope引
将多种前沿技术(包括构件、构件relfection和XML+JavaScript
等技术)灵活运用到自己的框架里面,并使它们能够协调运作,
具体如下:
(1)CAR/Reflection CAR(Component Assembly Runtime)
擎在图形系统中实现界面表现逻辑。
是科泰世纪有限公司自主研发的构件系统。CAR是一个面向
构件的编程模型,它表现为一组编程规范,包括构件、类、对象、
接口等访问构件对象的规定。CAR规定了一组构件间相互调
用的标准,由于元数据封装于构件内,二进制构件能够自描述,
跨进程通信非常便利。和欣CAR技术从操作系统层引入构件
的概念,所有的服务由构件来提供,是新一代的构件系统,为网
络编程和Web Service提供强大的支持。CAR Reflection技术充
分运用CAR构件类型描述信息,这些元数据信息由CARC编译
器生成并被整合于一个单独的文件(.cls)中,该文件最终打包
到构件(.dl1)里面,通过向外提供的接口用户可以从该dll文件
中获取到任何想要的类型描述信息。这种机制增强了XML—
Glue中脚本操控构件对象的能力和灵活性,使得构件接口方法
能够被动态的调用。
(2)XML/Script 可扩展标记语言(eXtensible Markup
Language,XML)是一种着重数据描述的元语言,XML是未来
WEB技术的基础,已成为普遍的数据操纵和数据传输的工具,
XML.Glue使用XML可以灵活的组织、存储和发送数据。XML
Glue中用到的脚本语言为JavaScript,由于JavaScirpt对于对象
类型的无关性,在宿主机环境中,它可以被连接到同一环境中的
其他对象之中,并且它的属性和方法可以被动态的加入到任何
对象中,对这些对象进行灵活的控制。应用上文提到的CAR re—
flection机制,JavaScript可以查询到CAR构件所有接口及接口
方法属性从而对构件进行更有弹性的操控。XML—Glue是运用
XML+Script技术来实现应用uI控制的。
(3)Grafix Grafix为和欣操作系统中的图形系统,其实现
技术是CAR构件技术,它以构件的形式存在于内核之上,应用
之下。Grafix向上层应用导出GDI接口,它是XML—Glue赖以
存在的基础。
2.2 XML-Glue的实现
XML.Glue使用XML实现图形系统的界面表达,XML.Glue
将其解释为相应的图形元素,并将图形请求全部发给图形系统
构件。XML—Glue使用Java.Scirpt脚本语言实现uI的控制逻辑,
用户在CAR文件中定义接口函数并将其导出,uI程序员使用
JavaScript调用这些接口从而实现对应用uI逻辑的控制。XML—
Glue使用CAR构件完成uI的模型实现,通过面向对象语言
(也可为C)实现并封装于构件里,以图形系统构件或者具体的
应用逻辑构件向上层提供服务。可以看出,XML—Glue的设计
思想是将整个图形系统的界面实现进行精确分工,充分利用
XML语言的灵活性,Java.Script等脚本的敏捷性和C\c++等底
层开发语言的高效性,写出便于维护和代码重用的软件。
图2给出了XML—GLUE的逻辑框架模型,其中起支撑作用
的是中间层的CAR构件、XML脚本、图形设备接口(GDI)、JA.
VA语言,四者都是与界面相关的逻辑资源。其中需要指出的
图2 XML—Glue逻辑框架
下面是应用XML—Glue技术实现一个简易计算器的相关代
码,包括一个采用CAR构件编程方法的.Car文件和一个描述
和控制UI的.xml文件。
//.car文件功能为向应用导出一些通用接口
CalcCtr1.car:
Module CalcCtd{
InterfaceICalc{
Reset();
声明其他接13函数
}
Class CCalc i
Interface ICalc;
i
t
当我们用c++将这组接口实现后,我们就可以在XML文
件中直接使用Java.Script进行uI控制部分实现,并与XML描述
的uI试图部分结合,形成一个完整的应用程序。
//.xml实现uI的表达和控制
C ̄cjs.xml:
用XML实现uI的显示
<script language=‘’javascfipt‘’>
<
Var calc=Elastos.Using(”CalcCtr1.dll“).CreateObject(”
Calc“);
处理逻辑分支
//对底层接口的调用
Calc.Reset();
调用其他接口函数
>
</scnpt>
其中,Elastos是XML—Glue提供出来的一个默认对象,它
包含XML—Glue语法要用的基本方法,比如上文的Using(“Cal—
cCtr1.dll”),这样,XML—Glue可以从构件CalcCtr1..dll中读出
元数据信息并通过CreateOb)ect创建出该对象,返回给ealc。通
过Javascipt中的calc变量XML—Glue最终调用CCMc类中的对
应方法,Javaseript通过calc和对象进行通信。此外,应用CAR
Reflection提供出来的接口,Java.Script还可以主动查询构件的
自描述信息,比如类名、接口名、接口方法名和方法参数类型
等,这样Java.Script可以在运行时决定调用哪个接13方法或做
其他控制。
一
个XML文件被Parser解析后,将其中引用的Widgets
维普资讯
第3期 严振山等:基于XML-Glue的DIY智能手机uI设计与实现
(3)可扩充性
27
(Grafix)组装,通过Render显示给用户,当发生事件时,通过相
应的ScriptEngine脚本或者CAR构件来执行相应事件的处理。
此数据模型是独立于应用,独立于过程的,
能适应企业业务流程和业务规则的变化,可根据企业需求扩展
模型而不影响原有的事实表和维表。
2.3 XML-Glue换肤机制
XML.Glue换肤机制是XML—Glue的一个技术实例。换肤机
制是手机界面表达层的概念,它不涉及手机应用的逻辑实现。
uI设计时,手机应用界面切分为多个区域,不同区域对应不同
3.3模型应用
应用上述模型,进行第三方物流企业对运输业务运行情况
的查询,例如:
(1)查询某月的利润情况,其SQL语言实现如下:
处理逻辑体,不同逻辑体通过XML—Glue沟通,实现相互协调,
通过XML UI描述语言XML将各种界面逻辑整合。运用XML.
Glue技术实现的换肤机制满足静态、动态界面要素要求及切换
SELECT时间维表.月,SUM(运输事实表.运输收入)AS
INCOME,SUM(运输事实表.物流成本)+SUM(运输事实表.管
效果,并可以做到音视同步,界面工作简化为美工及人机
工程。
3 总 结
本文提出了一种前沿的基于构件和脚本的手机应用界面
DIY设计模型,利用构件编程语言的高效性和脚本语言的敏捷
性对整个手机uI事务逻辑进行精确分工,同时结合CAR的自
描述能力以及由此功能衍生的Reflection机制,实现脚本对构
件的灵活控制,目的是给手机应用界面开发人员提供方便的开
发平台,uI程序员只需懂得uI控制语言,复杂的应用逻辑已
经封装在构件里面,可直接在脚本中使用,uI层的控制变动不
会影响到应用逻辑实现层。同时XML-Glue基于CAR构件技
术,任何符合CAR语法标准的组件都可以在XML—Glue使用,
体现出软件动态工厂化生产的概念。需要提出的是目前XML—
Glue只支持JavaScript控制脚本,以后会做到对LUA及其他通
用脚本的支持。
参考文献
[1]Koretide,CARS Manual[M].2004.
[2]Aiming pan.c0M§Principle nad COMa Application[M].The Tsin-
ghua Press,1999.
[3]Prof.Dr.Wolfgang Rosenstiel,Embedded System Architecture Design
Based on Real—Time Emulation.
[4][美]Don Box著,潘爱民译,COM本质论,北京:中国电力出版
社,2001,8.
[5]Elastos Book.陈榕,科泰世纪有限公司,2003,7.
[6]万麟瑞、胡宏、孙红星,“面向构件的软件开发方法学研究”,《小型
微型计算机系统》,2003,3.
(上接第ll页)
图5运输主题多维数据模型
可提供如客户信用分析、合同执行情况分析等相关方面的决策
支持,提高了信息利用率。
理成本)+SUM(运输事实表.税金)AS COST;
FROM运输事实表INNER JOIN时间维表ON运输事实表.
时间键=时间维表.月
某月的利润=INCOME—COST;
(2)查询某年的合同执行率,其SQL语言实现如下:
先由
SELECT时间维表.年,COUNT(合同维表.合同键)
FROM运输事实表INNER JOIN时间维表
ON运输事实表.时间键=时间维表.年
求得签订合同数
然后由
SELECT时间维表.年,COUNT(合同维表.合同键)
FROM运输事实表INNER JOIN时间维表
ON运输事实表.时间键:时间维表.年
WHERE合同维表.是否执行:‘是’
求得合同实际执行数
合同执行率:(合同实际执行数/签订合同数)×100%
类似地可以进行如发货准确率、履行订单的准确度、客户信
用情况和缴费情况等方面的综合查询,从而为物流企业在客户
关系管理、成本/效益比等方面的决策分析提供有力的支持。
4结束语
现阶段随着物流信息化管理水平的不断提高,海量历史数
据已经成为物流企业重要的经济资源,本文针对目前第三方物
流企业信息化建设中存在的主要问题,提出一种基于数据仓库
技术的解决方案,并遵循维度建模方法建立了一个运输主题的
多维数据模型,为数据仓库建模和提高物流企业的信息利用水
平进行了有益的探索,但数据仓库的开发是一个迭代的过程,因
此,此模型还需在实际应用中不断完善,从而有效指导数据仓库
后续物理设计和具体开发工作的开展。
参考文献
[1]叶彬、曾伟民、肖治华、郭创新、朱承治,“数据仓库在电力系统中
的应用”,《电力系统及其自动化学报》,2005,17(3).
[2]杨开英、陈为,“数据仓库在电信行业中的应用”,《武汉理工大学
学报》,2005,27(2).
[3]Inmon W.H,数据仓库[M],北京:机械工业出版社,2003.
[4]Corey Michae1.Oracle8i数据仓库[M],北京:机械工业出版
社,2001.
[5]Kimball Ralph,Reeves Laura,Ross Margy,Thornthwaite Warren,数据
仓库生命周期工具箱:设计、开发和部署数据仓库的专家方法
[M],北京:电子工业出版社,2004.
[6]张树山,物流信息系统[M],北京:人民交通出版社,2005.
版权声明:本文标题:基于XML-Glue的DIY智能手机UI设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713554703a640498.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论