已阅读5页,还剩70页未读, 继续免费阅读
(计算机应用技术专业论文)跨虚拟机架构的midp+ui接口的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 j 2 m e 平台是一个日趋庞大而强大的平台,在小型移动设备领域软件平台 支持上占有不可替代的一席。m i d p ( m o b i l ei n f o r m a t i o nd e v i c ep r o f i l e ) 规范 为无数移动设备软件开发者提供了丰富的编程接口。很多现有的j 2 m e 平台的 实现是基于s u n 公司的参考实现,在其基础之上作一定量的扩展,大部分这 样的实现都没有将性能作为设计时考虑的首要因素。另外一个方面,移动平台 上j 2 m e 的垄断地位将大量不使用j a v a 语言编程的开发者拦在j 2 m e 的精彩 世界之外。同时,还有些不支持j 2 m e 标准的设备,在这样的设备卜j a v a 语 言的开发者同样没有展身手的天地。 在本文中,我们以性能表现为前提,独立于s u n 公司的参考实现,设计 并实现了以0 r l ( o p e nr u n t i i n el i b r a r y ) 中m i d pu i 类库为基础的一系列 本地方法。其中o r l 类库是i n t e l 基金支持的项目,本文的工作属于o r l 类 库的范畴。 从j a v a 语言层开始,本文严格依据m i d p2 0 规范中与u i 相关的部分的 文档,设计了一些没有以p u b l i ca p i 的形式存在于规范中的内部实现类,这部 分主要为j a v a 类库层的事件派发模块。同时本文还从本地方法层实现效率的角 度出发设置了类库中的本地方法。 在i n t e lp x a 2 5 5 开发板上,本文在l i n u x 操作系统上实现了本地层方 法。u i 系统底层的图形绘制引擎使用g 2 图形引擎,本文根据操作系统的特 点,为g 2 引擎设计了驱动层的模块。在众多各式各样的底层渲染模块中,本 文选择使用轻量级的f r a m e b u f f c r 直接绘屏,这能满足m i d p 规范的要求,同 时能带来性能上的优势,本文在可以高度自定义的p r e e t y p e 2 字体引擎之上作 了少量的包装,作为g 2 引擎的一个模块。事件处理模型为一个懒惰式轮询模 型,键盘事件来源于非阻塞的键盘扫描码查询,指针事件使用t s l i b 从内核中 读出,后者为l i n u x 内核中触摸屏驱动的用户态函数库。本地方法采用g 2 引 擎和虚拟机中的函数来编制。本文的l i n u x 平台上的实现取得了o r l 类库 存w i n d o w sc e 操作系统卜的本地实现同一水平的性能,在某些性能指标甚李 超过 某些产品级设备上的实现。 此外,为了拉近j a v a 平台与其他平台的距离,本文首创性的将m i d p u i 类库移植到n e t 平台上。在不改动j a v a 代码的情况下,本文使用 了i k x , i n n e t 提供的在n e t 和j u r a 语言之间交流的能力,存i k v m n e t 的 伪j a v a 虚拟机上移植了本地代码。使用本文的移植成果,开发者可以在 不支持j 2 m e 但是有n e t 虚拟机的设备上编写m i d p 程序,同时还可以 在n e t 平台的语言巾调用m i d pu i 类库,使用其他语言来编写m i d p 程序。 关键词:虚拟机j a v 押 台n e t 桨构j 2 m em i d pg u if r a m e - b u f f e r 字体渲染轻量级性能 中图分类号:t p 3 1 9 l l a b s tr a c t t h ej 2 m ep l a t f o r mi sg r o w i n gb i g g e ra n ds t r o n g e ri ns u p p o r t i n gt h eh a n d h e l dm o b i l ed e v i c e sa ss o f t w a r ed e v e l o p m e n tp l a t f o r m ,a sp a r to ft h ej 2 m e p l a t f o r m ,m i d p ( m o b i l ei n f o r m a t i o nd e v i c ep r o f i l e ) s p e c i f i c a t i o np r o v i d e sp l e n - t i f u lp r o g r a m m i n gi n t e r f a c e s h o w e v e r ,t h em a j o r i t yo ft h ee x i s t i n gj 2 m ei m p l e m e n t a t i o n sa r eb a s e do ns u n sr e f e r e n c ei m p l e m e n t a t i o n s o m ev e n d o rs p e c i f i c e x t e n s i o n sa r eb u i l tu p o nt h ei m p l e m e n t a t i o n f u r t h e r m o r e ,m o s to ft h e s ei m p l e m e n t a t i o n sd i d n ta i ma tp e r f o r m a n c e o nt h eo t h e rs i d e ,w i t ht h eb o o mo ft h e 。j 2 m ep l a t f o r m ,t h ej a v al a n g u a g ed o m i n a n c ew o u l d p r e v e n to t h e rd e v e l o p e r sf r o m p r o g r a m i n gi nt h ew o n d e r f u lj 2 m er e a l m t ot h i sd a yt h i sp a p e rw a sw r i t t e n t h e r ea r es t i l ls o m ed e v i c e st h a td i d n ts u p p o r tt h ej 2 m es t a n d a r d ,w h i c hw o u l d a l s op r e v e n tt h ej a v al a n g u a g ep r o g r a m m e rf r o mw r i t i n gj 2 m ep r o g r a m m e sf o r t h e m i nt h i sp a p e rw ed e s i g n e da n dd e v e l o p e das e to fn a t i v el a y e rm o d u l es e r v i n g a sn a t i v em e t h o d sa g a i l l s tt h em i d pu il i b r a r yb a s e do np e r f o r m a n c et h cm i d p u il i b r a r yi s p a r to ft h eo r l ( o p e nr u n t i m el i b r a r y ) ,w h i c hi sai n t e lf u n d i n g p r o j e c t o u ri m p l e m e n t a t i o ni sc l e a nr o o m ,w h i c hm e a n si t i si n d e p e n d e n t ,e s p e d a l l yn o tb a s e do ns u n sr e f e r e n c ei m p l e m e n t a t i o n t h ew o r kd o n ei nt h i sp a p e r i sp a r to f o r l s t a r t i n gf r o mt h ej a v al a n g u a g el a y e r ,w ed e s i g n e ds o i i l ei n n e rc l a s s e sb e - s i d e st h em i d p2 0u is p e c i 矗c a c i o n ( p u b l i ca p i ) t h e s ec l a s s e sa r es t r i c t l yb a s e d o nr e q u i r e m e n to fm i d ps p e c i f i c a t i o n m o s to ft h e ma r et h ee v e n t sd i s p a t c h i n g m o d u l e ,w h i c hi sn o ti m p l i c i t l yd o c u m e n t e di nt h es p e c i f i c a t i o na sj a v a d o c s w e a l s os e tt h en a t i v em e t h o d si nt h el i b r a r yc o n s i d e r i n gt h ee f f i c i e n c yi nn a t i v el a y e r i m p l e m e n t a t i o n , o na ni n t e lp x a 2 5 5d e v e l o p m e n tb o a r d ,w ei m p l e m e n t e dt h en a t i v el a y e r o i lal i n u xo p e r a t i n gs y s t e m w ed e p l o y e dg 2g r a p h i c se n g i n ea st h eu n d e r l y i n g n l u i2 dr e n d e r i n ge n g i n ew ed e s i g n e dt h ed r i v i n gm o d u l ef o rg 2e n g i n es p e c i a l l y u t i l i z i n gt h eo p e r a t i n gs y s t e m sf e a t u r e s al i g h t w e i g h tf f a m e b u f f e rd i r e c tr e n d e r _ i n gw a ss e l e c t e da m o n gd o z e n so fa l t e r n a t i v e s ,w h i c he m b o d i e dt h e , j 2 m er e e o n r e e u s i n gp o l i c ya n db o o s t e dt h eo v e r a l lp e r f o r m a n c e w eh a dat h i nc a p s u l a t i o no n t i l eh i g h l ye u s t o m i z a b t ef r e e t y p e 2f o n te n g i n e t h ec a p s u a t i o ns e r v e da san l o d u l ei ng 2e n g i n e sf r a n l e w o r k t h ee v e n td i s p a t c h i n gm o d u l ei nn a t i v el a y e ri s al a z yq u e r yo n e k e y b o a r de v e n t sa r ec o m i n gf r o mn o n - b l o c ks c a nc o d eq u e r y p o i n t e re v e n t sa r er e t r i e v e df r o mt h ek e r n e lu s i n gt h eu s e r - s p a c el i b r a r yt s l i b t h e a c t u a ln a t i v em e t h o d sa r ed e v e l o p e du s i n gg 2e n g i n e sa p ia n dt h ev i r t u a l1 2 1 8 一 c h i n e sf u n c t i o n t h ei m p l e m e n t a t i o no nl i n u xh a sas i m i l a rb e n c h m a r ks c o r ea s 0 1 1w i n d o w sc ei ta l s oo u t p e r f o r m ss o m em a t u r ei m p l e m e n t a x i o n so np r o d u c t l e v e ld e v i c e s t h i sp a p e ra l s op r e s e n t sa l lo r i g i n a lp o r to ft h em i d pu il i b r a r yt ot h e n e tp l a t f o r m t h ep o r tc l o s e su pt h eg a pb e t w e e nt h ej a v ac o m n m n i t ya n d t i l er e s t o ft h ew o r l d w em a i n t m n e dt h ei n t e g r i t yo ft h ej a v al a n g u a g el a y e r l i b r a r yb yd e p l o y i n gt h ei k v m n e ta sap u p p e tj a v av i r t u mm a c h i n eo nt o po f n e tf r a m e w o r k t h en a t i v ec o d e dw e r ep o r t e dt oi k v m n e tc o n v e n t i o n i ti st h e p o r tt h a tm a k e si tp o s s i b l et od e v e l o pm i d pp r o g r a m n m su s i n gl a n g u a g eo t h e r t h a nj a v a i ti sa l s ot h ep o r tt h a te n a b l e sw r i t i n gm i d pp r o g r a m m e so np l a t f o r m s t h a ts t i l ld o n ts u p p o r tj 2 m e ,b u ts u p p o r tn e tf r a m e w o r k k e y w o r d s :v m j a v ap l a t f o r m n e tf r a m e w o r kj 2 m e m i d pg u i f r a m e b u f f e rf o n tr e n d e r i n gl i g h t w e i g h tp e r f o r m a n c e c h i n e s el i b r a r yc l a s s i f i c a t i o nn o :t p 3 1 9 1 v 本论文的工作得到了英特尔公司( i n t e lc o r p o r a t i o n ) 基金项目“j 2 m e c l a s sl i b sw i t hs m a l lf o o t p r i n t ,l o wp o w e ra n dh i g hp e r f o r m a n c eo nx s c a l e p r o c e s s o r ”的支持,特此感谢。 第一章引言 笼统的说,虚拟机是计算机科学中一种软件,人们利用这种软件所创造的 联系真实计算机平台和最终用户之间的环境来操控计算机。但是当我们具体的 谈到虚拟机时,通常有以下这四种虚拟机概念。 原始虚拟机虚拟机最原始也是最直接的解释是在一台计算机上建造出多个等同 的执行环境,每一个执行环境都最大程度的模拟宿主计算机,使得使用这 些虚拟执行环境的用户都觉得他们是在用一台真正的自己的计算机,与其 他执行环境中的用户毫无关系。在宿主计算机上提供这些功能的软件就被 称作虚拟机。 应用程序虚拟机这可能是现在用到最多,也是大多数人逻辑中的虚拟机。应用 程序虚拟机将使用应用程序的用户从真实的计算机底层隔离开,换句话 说,用户j 需要关心虚拟机给出的环境,而不需要关心底层的千差万别。 只要是按照虚拟机环境写出的软件,在任何平台上的虚拟机都可以运行, 不需要为不同的平台准备不同的软件版本。通常虚拟机上软件的执行通过 虚拟机中的解释器或者即时编译器1 来执行。 操作系统虚拟机这样的虚拟机软件为最终用户模拟一个操作系统,同时这些虚 拟机软件所运行的真实计算机上还会运行一个他们自己的操作系统。 并行虚拟机这可能是相对比较新的一个概念。这种虚拟机在多台真实计算机上 建造一个单一的执行环境,使得使用这些环境的用户感觉卜是存使用台 真实的计算机。 但是不管虚拟机以怎样的概念出现在我们面前,在虚拟机实现细节内 部总是少不了一个词模拟。有一些是在模拟底层的原始硬件:计算机历 史上晟早的分时系统就是这样的虚拟机,它们通过提供多仟务和后台管理 的方式让用户觉得只有自己一个人在使用某台计算机;现在我们常常用到 的v m w ”e 、p l e x 8 6 、b o c h s 、x e n 和p e a r p c 系统也是这样的虚拟机,它们模 拟p c 上除了处理器之外所有的硬件设施,而处理器的指令执行则必须经过俘 1 即i n t e r p r e t e r 和j u s ti nt i m ec o m p i l e r ,后者又被简称作j i t 。 1 1 1 虚拟机平台 2 获,虚拟化等多种复杂的机制来实现;当然更有甚者,i n t e l 等公司在他们下一 代的处理器里都会嵌入一些用虚拟执行x 8 6 级别指令的虚拟机,这恐怕是做得 最底层的虚拟机实现。另外一些是在模拟1 f 原生的系统:这些虚拟机允许为某 平台而写的软件存另外的平台卜运行,这里的平台可以是不同的操作系统, 不同的计算机体系架构,只需要软件是按照虚拟机的规范来编写;这就接触到 了我们通常所说的j a v a 虚拟机和m i c r o s o f t n e t 平台的核心c l l 2 虚拟机。 如果没有特别指明,本论文下文中将用“虚拟机”这一简称来指代应用程 序虚拟机这一概念。 1 1 虚拟机平台 般米说,我们说虚拟机平台时,是指如下四个部分 虚拟机程序设计语言 虚拟机字节码 虚拟机应用编程接口 虚拟机在各种平台上的实现 编译时,我们将虚拟机语言编译成虚拟机字节码。程序员自己的程序的 字节码和应用编程接口所提供的程序的字节码一起被送往相应平台f = 的虚拟机 里执行。这两句话就可以简单概括这四块独立但相关的技术在虚拟机平台中联 系。 我们可以随意举山各种各样的虚拟机,其中大部分都是一种虚拟机语言对 应某种特定的虚拟机。比如运行p e r l6 的p a r r o t 虚拟机、s m a l l t a l k 语言和相 应的虚拟机、t r u e t y p e 指令雨i 在字体引擎中解释这些指令的虚拟机,当然还有 上文中提到的j a v a 平台和n e t 平台。但是,我们有必要澄清一些概念。程序 设计语言足程序员用来描述其程序设计时的思想的。在虚拟机平台上,程序设 计语言与虚拟机分别处于平台的顶层和底层,是相对依赖较少的模块。可以这 么说, 要某种语言设计得当,i 司时有能把这种语言编译成为虚拟机字节码的 编译器,这种语言所编写的软件就可以在字节码所遵循规范的那些虚拟机上运 行。所以在前面所举的例子中任何+ 种虚拟机平台上,理论匕都可以运行任何 其他的设计得当的语言,说设计得当是因为有些虚拟机有不同级别的限制,不 适合支持某些有特殊用途的语言。作为使用非常广泛的j a v a 平台和n e t 平 2 c o l n l n o nl a n g u a g ei n a s t r u c t u r e c l i 的实现称作c l r ( c o m m o nl a n g u a g er u n t i m e ) 。 1 2j 2 m e 和m i d p 简介 3 台,至少都已经有数 种语占可以作为其上运行的高层语言,同时这两个平台 的在跨操作系统和体系架构也做得非常出色。 j a v a 平台是s u n 公司推出的面向平台无关性、安全性和刚络移动性 的网络体系结构。j a v a 语言是一种面向对象语言,由s u n 公司的j a m e s g o s l i n g 于1 9 9 1 年创造,但是真正公布于世是1 9 9 4 年。最初,j a v a 语言因 为j a m e sg o s l i n g 办公室外有颗橡胶树而被称作o a k 语言,j a v a 语言的设计初 衷是为了取代同样是面向对象语言的c + + ,但是从语言特征上来说j a v a 语言 更加像c 语言的另外一个面向对象变种o b j e c t i v ec 。 j a v a 语言戏剧性的创造历史历程或许更加贴近我们后面将要介绍 的j 2 m e 平台。o a k 语言是s u n 的一个叫“g r e e n ”的项目的一部分战果。 “g r e e n ”项目的日标是一个被称作s t a r 7 的便携式的无线p d a 。非常有趣的 是曾经代表j a v a 语言的卡通人物d u k e 也是“g r e e n ”项目的一个副产品2 9 1 。 j a v a 语言能最大程度上利用j a v a 平台所提供的各项先进技术,它支持面 向对象、多线程、结构化错误处理、垃圾收集、动态链接和动态扩展。 n e t 是微软公司推出的着重网络透明、平台无关和快速开发的软件开发 平台。策略j 说,n e t 架构是微软公司用来取代其先前提出的c o m 模型的。 微软公司已经将n e t 平台的部分规范提交到e c m a 和i s o 组织,谋求将其 标准化。这可能是计划风险,但是可以鼓励其他平台l 更多符合规范的实现, 这样能将非微软公司操作系统上的应用软件通过移植到n e t 规范的形式更快 的移植到微软的操作系统上。 除了用以支持企! 止级应用的c l r 之外,我们已经看到了很多其他 的n e t 平台实现。其中m o n o 、d o t g n u 和m i c r o s o f tr o t o r 在跨平台方面做 出了很好的成绩。 1 2 j 2 m e 和m i d p 简介 从o a k 的无心捕柳开始,j a v a 平台就是在嵌入式平台和手持设备上有了 开发基础。1 9 9 7 年j a v a1 1 发表时,s u n 公司单独添加e m b e d d e dj a v a 和p e r - s o n a lj a v a 这两种嵌入式的规范。接着一年的j a v a1 2 ( 即j a v a2 ) 的首次引入 了三个平台的说法。j 2 m e 作为j a v a 三大平台( j 2 s e ,j 2 e e 和j 2 m e ) 中一 个不可缺少的部分主要面向嵌入式消费电子设备,一般来说这些设备没有台式 机和服务器设备上的强劲的处理器能力和海量的存储能力,同时不同设备之间 的差异也非常人,以至差不多没有套笼统的规则可以来描述他们。 s u n 公司使用系列的规范来定义这些平台,每个规范均面向消费类小型 设备大家族中的某一个子集。这些规范分两种,定义基本功能的称为c o n f i g u 5 l2j 2 m e 和m i d p 简介 r a t i o n ,在其r 扩展的叫做p r o f i l e 。我们可以通过c o n f i g u r a t i o n 和p r o f i l e 的配 合来定义e j 标设备的硬件特件和运行在其上的确切的j a v a 编程环境。 图ll :j 2 m e 平台的c o n f i g u r a t i m l 和p r o f i l e 目前,j 2 m e 下台确两个c o n f i g u r a t i o n ,分别针埘两种级别的设备: c l d c 这是而向运算功能有限,没有稳定的电力供应的设备,通常是p d a 和 蜂窝式移动电话娄设备。c l d c 要求至少有1 6 忙运算能力处理器,1 6 0 k b 的内存,其中1 2 8k b 用于虚拟机和类席,网络连接方面只要求支持 低速网络连接,但是这个支持是n j 选的,这就是为什么它叫做c o n n e c t e d l i m i t e dd e v i c ec o n f i g u r a t i o n 。c b d c 0 1 1 1 的类库不支持浮点数运算,其 后的c l d c1l f 2 开始支持3 2 值和6 4 位浮点数运算。c l d c 类库是相 对功能有限的一个j 2 s e 标准类库的一个子集。c l d c 上可以扩展的p r o f i l e 包括m 1 d p ( m o b i l ei n f o r l 2 1 a t i o nd e v i c ep r o f i l e ) 3 l z rp d a p ( p d a p r o f i l e ) 。 c d c 这个配置下的设备运算能力相对较好,有充足的电力供应,通常是家电 类消费电子设备,【匕如空调、机顶盒和车载设备。c d c 的最低硬件条件 是至少3 2 位的处理器,至少2m b 的r a m 内存和2 , 5m b 的r o m 存 储。c d cf 可以扩展的p r o f i l e 有f o u n d a t i o np r o f i l e 和p e r s o n a lp r o f i l e 。 本文只讨论c l d c 上的p r o f i l e 扩展m i d p 。m i d p 在c l d c 的基础上提 供了用户界面、应用程序管理、高级连接和持久存储等功能的支持。由于是建 立在c l d c 的基础之上,m i d p 也需要c l d c 所规定的最低设备要求在此之 上,还需要r a m 和r o m 军少为5 1 2k b 。昂新版本的m i d p 为2 0 ? ,这个 版术在1 0 的基础上添加了对多媒体游戏和安全连接的支持。 l 旦堕苎! ! 查! 堕婆里! 盟! 型垩一 5 另外,使用硬件来实现虚拟机的斛释器的j a v ac a r d 也是j 2 m e3 p 台 的一部分。吲ll 显示了j 2 m e1 卜台所定义的内容1 5 l 。图中的各种c o n f i g u r a 广 t i a n 和p r o f i l e 颜色从浅到深,其对应设备上处理器能力也越强大可使用资源 也越丰富。 li 蜷辫 匿 茅 _ 赚秦 j 麟 誊 嚣 一 琶 堇 蔫 詈 菩 磬1 。霉 禽 l 誊 誊 霎 努 三 岩 巷 蔓 i p 差 i 鲁 量m 彬i oj s r l l 8 妻。 。j q l d cj0j s r m d e 印cl l m i “ 图12 :c l d c 和m i d p 上丰富的a p i 3 2 m e 平台的应用越来越| r 泛,相对较新的中高端手持设备上都会支 持3 2 m e 。同时,j 2 m e 平台上的a p l 支持也越来越丰富,如图12 所示 2 8 卜 仅仅在c l d c 上就有如此多的多媒体娱乐和消费相关的a p i 出现,它们都 以j s e 3 的形式存在。 1 3j a v a 本地方法和j n i 规范 j a v a 应用编程接口中的大部分方法都是以j a v a 语言编码,经编译器编译 成字节码形式,最后以 a r 包4 的形式随j a v a , 软件丌发t 具或者j a v a 运行环境 发布给开发者和最终用户。然而,我们知道,j a v a 语言是运行在虚拟机之上 的语言,开发者通过j a v a 语言可以看得到的底层系统也止于虚拟机返一层, 这给跨平台的开发者提供了便利,当然也带来了局限。j a v a 语言,t 可以诵用 使厂口j a v a 语言编写的库的方法,这檄大收缩了j a v a 语言的视野,况且,虚拟 机所提供的只有字竹码层上的语言指令的孵释翻译,并不能提供其他的功能调 用。这个时候就需耍本地方法( n a t i v em e t h o d ) ,使得j a v a 可以调用其他语言 写的库函数。 3 n i 规范正足提供了这样一个接口。j n i 全称j a v an a t i v eh t t e r f a e , 即j a v a 奉地接口。它提供个编码框架,能让j a v a 虚拟机所运行的操作系统 3 j s r 全称j a v as p e c i f i c a t m nr e q u e s t s ,通常是些描述规范和拉术的正式文档,j s r 被提 交给j c p ( j a v ac o m m u n i t yp r o c e s s ) ,通过审核后台成为j a v a 平卣的部分。 4 z i pf 蕞缩包的一神形式。 1 3j a v a 本地方法和j n i 规范 5 另外,使用硬件来实现虚拟机的解释器的j a v ac a r d 也是j 2 m e 平台 的一部分。图1 1 显示了j 2 m e 平台所定义的内容 5 】。图中的各种c o n f i g u r a - t i e l l 和p r o f i l e 颜色从浅到深,其对应设备上处理器能力也越强大,可使用资源 也越丰富。 亭 一 髓l 量 醚 卧 誊 嚣 星琶 莹: 簿 黧豢参 霉 口 霎董 鏊 霉 藿 _ 穰 轷 ,誊 萤 5 置 藉 毫, 囊r 鞫: 骞一 善 _ i 善 圣 n :! i 蔓 一 毪1 誊 毫 露 舅 ;i 藿 詈匿 i 誊 翟 宇 萎 n 蚤兰 l 耋 匿 璧 眩 !i ;孽 磊 譬l 茧 染 ”o = 一,一i m l d p oj s r1 1 8 ? c l d c10j s r3 0 踮a e i _ d ci i l l 5 r i 39 1 ; 图1 2 :c l d c 和m i d p 上丰富的a p i j 2 m e 平台的应用越来越广泛,相对较新的中高端手持设备上都会支 持j 2 m e 。同时,j 2 m e 平台上的a p l 支持也越来越丰富,如图1 2 所示 2 8 】, 仅仅在c l d c 上就有如此多的多媒体娱乐和消费相关的a p i 出现,。邑们都 以j s r a 的形式存在。 1 3j a v a 本地方法和j n i 规范 j a v a 应用编程接叫中的大部分方法都是以j a v a 语言编码,经编译器编译 成字节码形式,最后以j a r 包4 的形式随j a v a 软件开发t 具或者j a v a 运行环境 发布给开发者和最终用户。然而,我们知道,j a v a 语言是运行在虚拟机之上 的语言,开发者通过j a v a 语言可以看得到的底层系统也止于虚拟机这一层, 这给跨平台的开发者提供了便利,当然也带来了局限。j a v a 语言j t 可以调用 使用j a v a 语言编写的库的方法,这极大收缩了j a v a 语言的视野,况且,虚拟 机所提供的只有字节码层上的语言指令的解释翻译,并不能提供其他的功能调 用。这个时候就需要本地方法( n a t i v em e t h o d ) ,使得j a v a 可以调用其他语占 写的库函数。 j n i 规范正是提供了这样一个接口。j n i 全称j a v an a t i v eh l t e r f a c e , 即j a v a 本地接口。它提供一个编码框架,能让j a w 虚拟机所运行的操作系统 3 j s r 全称j a v as p e c i f i c a t i o nr e q u e s t s ,通常是一些描述规范和技术的正式文档,j s r 被提 交给j c p ( j a v ac o m m u n i t yp r o c e s s ) ,通过审核后会成为j a v a 平台的一部分。 4 z i p 廿i 编包的一釉形式。 14 现有m i d p u i 实现的本地接口 6 上的本地应用程序或者库函数与j a v a 代码之间能互相调用。j n i 并不关心本 地应用程序或者库是以什么语言来编码,可以是c 、c + + 、汇编或者其他语 言。当程序员遇到一些不能完全靠j a v a 语言和现有的a p i 库能解决问题的情 况后,就可以使用j n i 接口来编写本地方法。大多数情况f ,这是一些与具体 的下台栩关的实现,比如图形用户界面等。同样,在这些用其他语言写的本地 方法中,程序员可以通过j n i 的架构来访问j a v a 代码中的对象、调用j a v a 代 码叶l 的方法。 1 4现有m i d pu i 实现的本地接口 m i d p2 0 规范包含多块功能模块,图形用户界面是其中不可缺少的一部 分。用户界面部分是与最终用户交流的最直接方式,很多其他模块需要和用 广界而模块一起工作。本文将讨沦m i d p2 0 规范中用户界面的实现。具体的 说,m i d pu i 是m i d p2 , 0 规范中的如下两个包5 : j a v “m i c r o e d i t i o n i c d u i ja v a - x m i c r o e d i t i o n i c d u i g a m e 莉:本文中,我们将简称l c d u i 。 开始本文的实现之前,我们先简单介绍一些现有的l c d u i 的实现。这些简 略的介绍将着重在图形实现方面,这是本文的方向。其中有些是部分公刊的 商业产品版本,有一些是开源软件。以下可能不尽然都是m i d p 类库的名字, 有一些没有公开发布的类库我们使用其所运行的虚拟机平台的名字来代替。 1 4 1 s u n 参考实现 s u n 公司的参考实现是当m i d p 的j s r 被j c p 正式接受为j 2 m e 平台标 准时,随平台标准一起推出的实现,它起到一个给其他实现作参考的作用,大 多数移动电话公司的实现都是在此基础之h 的。 为了真正能起到参考的作用,s u n 公司的参考实现没有假定任何平台条 件。s u n 公司提供了至少支持w i n d o w s 和l i n n x 平台下的仿真器。同时在学 术研究的前提下,通过许可证的形式提供了部分库( 包括c l d c1 0 、c l d c 1 1 、m i d p1 0 和m i d p2 0 ) 实现的代码。 作为官方的参考实现,它把重点放在严格遵守规范上,但是在性能方面没 有作过多的考虑。其提供的仿真器的模拟本地实现是从画点等原始图形元素开 5 叩j a v a 语言巾的p a c k a g e ,f 同 15i n t e l 公司荩金项日:j 2 m e 类库o r l 7 始的p r i m i t i v e 实现,m i d p 应用能在不同操作系统下的仿真器上运行产生相i 刊 的用户体验。 1 4 2i b mj 9 实现 j 9 是集成在i b mw e b s p h e r em i c r oe n v i r o n m e n t 中的j a v a 虚拟机,尽 管没有公开发表,但是我们从一些零星的资料上看出,j 9 是一个以高性能 为基础、以无缝的与i b m 公司的其他产品进行连接为目标的虚拟机。其上 有i b m 公司实现的各类j 2 m e 类库。 j 9 所使用的m i d p 的实现在最大程度上使用本地操作系统上已有的图形 控件库。比如在w i n d o w sc e 上的实现使用了大量的g d i 在w i n d o w sc e 子 集,将m i d p 上类库里的文字输入框类t e x t b o x 映射到g d i 上的文字输入 框,依此类推。这样使得m i d p 的稃序运行时看起来和本地操作系统上的图形 界面程序几乎没有差别。 1 4 3m i c r o e m u l a t o r 实现 m i c r o e m u l a t o r 6 是一个开源的m i d p1 0 的类库实现,该项目以g p l 许 可证发布。最初的目的是为了能方便m i d p 程序的演示。 它使用s u n 的j d k1 1 来实现j 2 m e 中的a p i ,底层可以是j 2 s e 的a p p l e t 或者a p p l i c a t i o n ,以a p p l i c a t i o n 方式运行时,底层可以使用各种图形 库,比如:a w t 、s w t 和s w i n g 。可以说这是一个使用j a v a ( j 2 s e ) 来实现 的j 2 m e 平台。 1 5i n t e l 公司基金项目:j 2 m e 类库o r l o r l 全称为o p e nr u n t i m el i b r a r y ,是从2 0 0 3 年开始,i n t e l 公司资助 的基金项日“j 2 m ec l a s sl i b sw i t hs m a l lf o o t p r i n t ,l o wp o w e ra n dh i g h p e r f o r m a n c eo nx s c a l ep r o c e s s o r ”的目标。o r l 是在遵循c l e a nr o o i r l 原则的 前提下,严格按照s u n 公司的j 2 m e 规范而开发的高性能j 2 m e 类库。 截至2 0 0 4 年4 月,o r l 已经完成_ c l d cl0 和c l d c1 i 部分的伞 部a p i 的实现。本文作者从c l d c1 0 的实现阶段开始加入了该项目组,本文 所实现的m i d pu i 部分是o r l 遵循m i d p2 0 标准实现的一部分。 6 可以从h t t p :w w w b a r t e o n e t m i c r o e m u l a z o r 处得到。 1 6 论文目的和意义 8 1 6 论文目的和意义 从m i d p2 0 正式被j c p 接收为j 2 m e 平台的正式标准开始,只有s u n 公 司白己的参考实现系统而严格的实现了全部m i d pu i 标准。但是从各种测试的 结果和部分j 2 m e 设备上使用的切身感受上看来,s u n 公司的实现在性能上难 以满足大多数用户的需求。用户对性能的感觉直接来自与用户接触最近的用户 界面部分。所以,从性能调整的角度来讲,提升整体m i d p 系统的性能的关键 在丁提升l c d u i 的性能。 本文的一。个目的就是能实现一个c l e a nr o o i y l 的m t d p2 0 类库的u i g g 分,能在性能上超越现有的实现在配合i n t e l 基金项目组里其他m i d pa p i 的 实现的同时,将侧重点放在l c d u i 类库底层的本地实现上。为j 2 m e 平台下的 开发者提供一个开放的、高性能的类库实现。 从另外一个方面说,虽然当前j 2 m e 平台已经非常流行,也拥有人量的开 发者,我们还是看到一些基于其他平台的嵌入式系统解决方案,比如基于微软 公司n e t 技术的n e tc o m p a c tf r a n l e w o r k 。开源社区内这方面已经有些 与门针对这类需求的项目,这些软什使得多个平台的开发者之间的交流更加方 便。本文力图在实现l c d u i 类库本地接口卜尽可能的考虑到多个虚拟机架构r 的 共通性,并试图为n e tc o m p a c tf r a m e w o r k 平台的开发者提供j 2 m e 平台。f 丰富的开发资源。 1 7论文结构 本论文主要分三个部分:先介绍背景和准备工作,然后详细阐述存两个目 标平台上的实现细节,最后将实现结果与其他实现作比较,论证为什么作者使 用这些实现模型,同时提出可以改进的余地。 第一部分,共两章。第一章,从本文的落脚点虚拟机的概念开始,作 者简略的介纠了论文中使用到的各种概念和各种相关的平台技术。第二章将论 文进行实验测试时用到的环境作了简要的介绍,其中包含了实验的操作系统平 台、虚拟机平台、各种用到的运行库,当然还从编写本地接口的角度介绍,作 者领导架构的j a v a 代码层的l c d u i 库。 第二部分包含第三章和第四章。第三章从l i n u x 上各种必要的底层驱动的 设训开始谈起,包括键盘、触摸屏,f r a m e b u f f e r ,字体等,然后介绍了这些底 层驱动与g 2 图形引擎的结合,它们同时为本地接口提供服务,最后介绍r 详 细的本地接口的实现情况。第四章阐述如何在前一章l i n u x 实现的基础之上将 代码移植到n e t 平台上。 1 7 论
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程签证课件
- 工厂排污调查课件
- 钢材模板海报课件
- 工程课件大纲课件
- 驾驶证科目一理论高频考点备考习题集及答案
- 保险产品定价原理与实务专项训练题库及答案
- 环境工程管理与法规备考习题集及答案
- 2026民航飞机维修工程技术人员考试航空器维修质量控制与安全管理模拟试题及答案
- GCP检查教学课件
- 消防安全综合能力备考习题及解析及答案
- 2026年广东省环保集团有限公司人员招聘考试模拟试题及答案
- 2026-2027北京初中语文秋季期七年级上册期中模拟试卷(三)
- 专项债项目运营管理指南
- 2026年《中国慢性阻塞性肺疾病诊疗指南(2026版)》
- 2026新能源领域薄膜过滤材料应用场景开发与商业模式探索报告
- 《第2课 有趣的平面空间》教学设计-2026-2027学年五年级美术上册岭美版
- 乌鲁木齐辅警考试仿真试题及答案解析
- 2026年六盘水市钟山区法检系统书记员招聘考试参考试题及答案详解
- 第九章 三维点云数据标注
- 纪委谈话室建设标准方案
- 公司制度体系内部流程
评论
0/150
提交评论