(计算机应用技术专业论文)windows平台上midp仿真器ui部分的设计与实现.pdf_第1页
(计算机应用技术专业论文)windows平台上midp仿真器ui部分的设计与实现.pdf_第2页
(计算机应用技术专业论文)windows平台上midp仿真器ui部分的设计与实现.pdf_第3页
(计算机应用技术专业论文)windows平台上midp仿真器ui部分的设计与实现.pdf_第4页
(计算机应用技术专业论文)windows平台上midp仿真器ui部分的设计与实现.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

指导小组成员:高传善 孙慰迟 毛迪林 曹袖 教授 副教授 讲师 讲师 v 7 7 0 3 9 8 本论文的工作得到了英特尔公司( i n t e lc o r p o r a f o n ) 基金项目“j 2 m ec l a s s l 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 l lx s c a l e p r o c e s s o r ”的支持,特此感谢。 洙强嚣啤 勃垒定公在。1 垫 摘要 随着无线通讯产业的蓬勃发展,无线通讯设备也越来越普及了,而这些无线 终端设备中,最主要的一种就是手机。在中国市场上,有数以亿计的人每天都在 使用手机。当然,现在手机的用途远远不局限于电话或短信,还有着多种多样的 无线服务,比如通过网络下载各类应用程序进行使用、在线联网游戏等。如果同 一个应用程序针对不同厂商不同类型的手机开发多个版本的话,其成本太高了, 因为不同芯片和操作系统合在一起的组合太多了。这样,具有跨平台特性的j a v a 技术就成为解决这一问题的最佳方案。 j a v a 技术中关于这方面的应用属于j a v a2 袖珍版( j 2 m e ,j a v a2m i c r o e d i t i o n ) 。其底层是相对精简的虚拟机( v m ,v i r t u a lm a c h i n e ) ,上一层根据设 备情况分为有限连接设备配置( c l d c ,c o n n e c t e dl i m i t e dd e v i c e c o n f i g u r a t i o n ) 和连接设备配置( c d c ,c o n n e c t e dd e v i c ec o n f i g u r a t i o n ) , 在配置之上的是更加细分的简表( p r o f i l e ) 。本文讨论的是适用于手机的j a v a 技术,简表是移动信息设备简表( 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 ) , 它是建立在c l d c 基础上的。 虽然最终的应用程序是使用在手机这样的设备上的,但是得益于j a v a 的平 台无关性,应用程序的开发工作就可以在相对容易操作的p c 上进行。这样,就 需要使用到仿真器。本文的主要工作就是在w i n d o w s 平台上实现这样的一个m i d p 仿真器,当然由于各种原因,本文的实现仅限于m i d p 仿真器的用户界面( u i , u s e ri n t e r f a c e ) 部分,这也是其中最基础、最主要和最中心的一部分。 本文使用的虚拟机是i n t e l 公司开发的一个高性能软件。仿真器的设计风格 参照了一些比较通用的大公司在w i n d o w s 上的仿真器。具体的编程实现,则主要分 为本地代码和m i d p 类库两部分。 在本地代码中,首先介绍了如何用w i n d o w sa p i 来实现仿真器本身的图形 u i ,然后对于j a v a 规范要求支持的p n g 和实际使用较多的j p e g 这两种格式的图 片,分别说明了如何利用开源的参考实现库来实现仿真器对其的支持。最后,还 讲述了本地代码中消息循环处理的具体流程。 在m i d p 类库中,则是对涉及到的包按照j a v a 类一个一个具体介绍其实现的 原理。介绍时,除了对类整体的构造外,主要是按照其公开的方法,对其实现原 理、牵涉内容和注意事项等方面进行说明,其中少数简单的方法从略。同时,对 不同类之间的组织和相互影响关系,也作了一定的阐述。同样,关于m i d p 类库 中消息循环处理的具体流程,也进行了讲述。另外,还介绍了出于需要而额外实 现的n o k i au i 包相关部分。 完成以上的实现工作后,本文对仿真器进行了相对完整的功能测试和性能测 试。测试分两部分:一部分是运行公开的b e n c h m a r k ( 基准程序) ,用测试数据 与其它仿真器进行比较;另一部分是运行多种多样的应用程序,人为观察和感受 运行效果。 文章的最后,对全文的内容作了一个总结,然后讨论了现有实现的不足,并 在此基础上对今后进一步的研究丌发工作进行了展望。 关键词 j a v a2 袖珍版,有限连接设备配置,移动信息设备简表,虚拟机,类库,仿真 器,用户界面 t p 3 1 1 1 程序设计 中图分类号 6 a b s t r a c t w i t ht h ed e v e l o p m e n to ft h ei n d u s t r yo fw i r e l e s sc o m m u n i c a t i o n ,w i r e l e s s c o m m u n i c a t i o nd e v i c e sb e c o m em o r ea n dm o r ep o p u l a r i z e d a m o n gt h e s ew i r e l e s s t e r m i n a lu n i t s ,c e l l p h o n ei st h eu p p e r m o s to n e i nc h i n a ,t h e r ea r eb i l l i o n so fp e o p l e w h ou s ec e l l p h o n ee v e r yd a y a sw ek n o w , t h eu s a g eo fc e l l p h o n ei sn o tc o n s t r a i n e d w i t h i nm a k i n gap h o n e c a l lo rs e n d i n gas h o r tm e s s a g e o n ec a ng e tm a n yk i n d so f w i r e l e s ss e r v i c e s ,s u c ha sd o w n l o a d i n gl o t so fa p p l i c a t i o n st ou s et h r o u g hn e t w o r k , p l a y i n go n l i n eg a m e s ,a n ds oo n i fw eh a v et od e v e l o pm a n ye d i t i o n sa i m e da t d i f f e r e n tm a n u f a c t o r t u r e r so rd i f f e r e n tm o d e l sf o rt h es a n l ea p p l i c a t i o n ,t h ec o s tw i l l b et o oh i g h ,s i n c et h ec o m b i n a t i o no f c h i p sa n do p e r a t i n gs y s t e m si st o oc o m p l i c a t e d s o ,j a v at e c h n o l o gy ,w h i c hi sc r o s s - p l a t f o r m ,b e c o m e st h eb e s tw a y 幻s o l v et h i s p r o b l e m i nj a v at e c h n o l o g y , t h i sk i n do fa p p l i c a t i o nb e l o n g st oj a v a2m i c r oe d i t i o n ( j 2 m e ) t h eb o t t o ml a y e ri sac o m p a r a t i v e l yt i d yv i r t u a lm a c h i n e ( v m ) ,a n dt h e s e c o n dl a y e ri sd i v i d e di n t oc o n n e c t e dl i m i t e dd e v i c ec o n f i g u r a t i o n ( c l d c ) a n d c o n n e c t e dd e v i c ec o n f i g u r a t i o n ( c d c ) b yt h ed e v i c e s t h e r ei sap r o f i l el a y e ra b o v e t h ec o n f i g u r a t i o nl a y e r , w h i c hi ss u b d i v i d e d h e r et h ej a v at e c h n o l o g yw et a l ka b o u t i sc e l l p h o n e - o r i e n t e d ,s ot h ep r o f i l el a y e ri sm 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 ( m i d p ) w h i c hi sb a s e do nc l d c a l t h o u g ht h ea p p l i c a t i o n sa r ef i n a l l yu s e do nd e v i c e sl i k ec e l l p h o n e ,w i t ht h e b e n e f i to nj a v a sc o r s s - p l a t f o r m t h e yc a nb ed e v e l o p e do np cw h i c hi sm u c he a s i e r t oo p e r a t e s o ,a ne m u l a t o ri sn e e d e d t h em a i nj o bi nt h i sa r t i c l ei st oi m p l e m e n ta m i d pe m u l a t o ro nt h ew i n d o w sp l a t f o r m f o rs o m er e a s o n ,h e r ea c t u a l l yw ej u s t f i n i s ht h ep a r to fu s e ri n t e r f a c e ( u i ) ,w h i c hi st h em o s tf u n d a m e n t a la n di m p o r t a n t o n e t h ev i s u a lm a c h i n eu s e dh e r ei sah i g h p e r f o r m a n c e ds o f t w a r ed e v e l o p e db y i n t e lc o r p o r a t i o n t h es t y l eo ft h ee m u l a t o rr e f e r st os o m eo t h e re m u l a t o r so n w i n d o w s t l l es p e c i f i cc o d e sc a nb ed i v i d e di n t on a t i v ec o d e sa n dm i d p l i b r a r y d u r i n gt h ei n t r o d u c t i o no fn a t i v ec o d e s ,f w s tw ei n t r o d u c e dh o w t oi m p l e m e n t t h eg r a p h i c a lu io ft h ee m u l a t o rw i t hw i n d o w sa p i ,t h e ne x p l a i n e dh o ww eu s e d o p e ns o u r c el i b r a r i e st os u p p o r tt w oi m a g ef o r m a t s :p n ga n dj p e g t h ef o r m e ro n ei s r e q u e s t e db yj a v as p e c i f i c a t i o na n dt h el a t t e ro n e i sm u c hu s e di np r a c t i c e i nt h ee n d , w et a l k e da b o u tt h ef l o wo f h a n d l i n gm e s s a g el o o pi nn a t i v ec o d e s d u r i n gt h ei n t r o d u c t i o no fm i d pl i b r a r y , w ei n t r o d u c e do n eb yo n et h ep r i n c i p l e 7 o fh o wt oi m p l e m e n ti ti nt e r mo fj a v al i b r a r ym e n t i o n e d b e s i d e st h ec o n s t r u c t i o no f e v e r yc l a s s f r a m e w o r k ,w em a i n l yt a l k e da b o u ti t si m p l e m e n tp r i n c i p l e ,c o n t e x t ,a n d s o m e t h i n gw es h o u l dp a ya t t e n t i o no n ,o m i a i n gaf e ws i m p l em e t h o d s w ea l s o s h o w e dt h eo r g a n i z a t i o n sa n dr e l a t i o n so fd i f f e r e n tc l a s s e s t h e nw ee x p l a i n e dt h e f l o wo fh a n d l i n gm e s s a g el o o pi nm i d pl i b r a r y a tl a s t ,w ei n t r o d u c e ds o m e p a r t so f n o k i au 1w h i c hw ei m p l e m e n t e di nn e e d a f t e ra l lo fa b o v e ,w eh a ds o m e r e l a t i v e l yc o m p l e t ef u n c t i o nt e s t sa n d p e r f o r m a n c et e s t s t h et e s t sh a dt w op a r t s :o n ei sr u n n i n gp u b l i cb e n c h m a r k s ,a n d c o m p a r i n gw i t ho t h e re m u l a t o r sw i t ht h ed a t a ;t h eo t h e ri sr u n n i n gm a n yk i n d so f a p p l i c a t i o n s ,a n dw a t c h i n go re x p e r i e n c i n gi t i nt h ee n d ,w es u m m a r i z e dt h e c o n t e n t ,d i s c u s s e dt h ei n s u f f i c i e n c y , a n d p r o s p e c t e dt h ef o l l o w i n gr e s e a r c ha n dd e v e l o p m e n t k e y w o r d s j 2 m e ,c l d c ,m i d p , v i r t u a lm a c h i n e ,c l a s sl i b r a r y , e m u l a t o r , u s e ri n t e r f a 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 u m b e r t p 311 1 p r o g r a md e s i g n i n g 8 1 1m i d p 简介 第一章引言 要介绍m i d p ,首先要介绍j 2 m e 。 自从j a v a 问世以来,其“一次编写,到处运行”的特点使它得到了巨大的 发展。为了满足越来越大的企业级应用的需要,j a v a2 标准版( j 2 s e ,j a v a2 s t a n d a r de d i t i o n ) 对本身进行了扩展,推出了更强大的j a v a2 企业版( j 2 e e ,j a v a 2e n t e r p r i s ee d i t i o n ) 。近年来,随着无线应用与嵌入式系统越来越受到人们的重 视,j a v a 的影响力更是超出了p c 的范围,开始应用于从电视机顶盒到p d a 、移 动电话等众多设备。这些设备都用一些共同的特点:内存有限、显示屏不大、 c p u 较慢、i o 要求低等等。这样一来,j 2 s e 的很多功能就显得多余,同时这些 小型电子消费设备也无法负担j 2 s e 这么大的开销。因此,j 2 s e 对本身又进行了 削减,推出了简化的j a v a2 袖珍版( j 2 m e ,j a v a2m i c r oe d i t i o n ) 。 在j 2 m e 内部,仍然有进一步的细分。j 2 m e 先将所有的嵌入式装置大体上 区分为两种:一种是运算功能有限、电力供应也有限的嵌入式装置( 比方说p d a 、 手机) ;另外一种则是运算能力相对较佳、并请在电力供应上相对比较充足的嵌 入式装置( 比方说冷气机、电冰箱、电视机上盒( s e t t o pb o x ) ) 。这两类产品的 界限并不明确,实际上,这两类产品之间的界限更多的是用存储空间、带宽、电 能消耗和设备物理屏幕的尺寸来区分的,而不是根据它们的功能和连接类型来区 分的。j 2 m e 里面用两种不同的配置来适应这两类设备:前者是有限连接设备配 置( c l d c ,c o n n e c t e dl i m i t e d d e v i c ec o n f i g u r a t i o n ) ,后者是连接设备配置( c d c , c o n n e c t e d d e v i c e c o n f i g u r a t i o n ) 。c l d c 适用于“d e v i c e s t h a t y o u h o l d i n y o u r h a n d ( 你握在手中的设备) ”,处理器能力有限,多为1 6 位或3 2 位,存储器大小一般 也只在1 2 8k b 到5 1 2k b 之间,运行在k v m ( 千字节虚拟机) 上面。而c d c 适用于“d e v i c e s t h a t y o u p l u g i n t op l u g i n t o t h e w a l l ( 你插入墙的设备) ”,可能有3 2 位或6 4 位处理器,以及不少于5 1 2 k 的存储容量,运行在c v m ( 压缩虚拟机) 上面。 配置是用于一组通用设备的最小的j a v a 平台,常常归为一种横向的设备分 组,相对来说,横向分组设备是那些共享相同的内存安排,通信带宽,能量需求 以及用户能力的设备,一般认为配置能够提供这众多的设备的所有需求。配置定 义了一个j a v a 虚拟机的特性和j a v a 类库的最小子集,提供给应用程序开发人员 一个最基础、最核心的j a v a 平台。 配置的上层是简表。它针对每一类功能设备的特殊行定义与之相关的类库, 作为配置的扩充和完善,提供给应用程序开发者在特定类型设备上开发的环境。 它为某个具体的设备家族或某个具体的工业片段应用程序提供更高的性能。换言 之,简表为具体的纵向市场的设备比如说行动电话提供更多的性能。针对c l d c , 有移动信息设备简表( 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 ) 和p d a 简表 ( p d a p r o f i l e ) 。m i d p 补充了c l d c 并且提供应用程序语义和控件、用户界面、 持久存储器、网络和用于移动电话的计时器、双通道呼叫器和其他无线电设备。 p d ap r o f i l e 至少应当提供两个核心功能片段:一个用户界面显示工具包,适合 于“有限的尺寸和深度显示”和一个持久数据存储器机制。显示工具包应该是抽 象窗口工具包的一个子集,而持久机制将为应用程序、数据、配置环境信息提 供简单的数据存储。针对c d c ,有基础简表( 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 ) 等。 j 2 m e 层玖豳 如今,支持j a v a 技术的无线通讯设备的大量增加,对商务和个人通讯都产 生越来越重要的影响。相应的,c l d c 加m i d p 的组合在j 2 m e 技术中的重要地 位也日益凸现出来。 本文讨论的重点就是c l d c 上的m i d p 。 1 2 虚拟机、类库和仿真器 j a v a 的“一次编写,到处运行”的跨平台特点,是建立在j a v a 程序必须运行 在j a v a 虚拟机这个基础上的。语言使用模式j a v a 虚拟机屏蔽了与具体平台相关 的信息,使得j a v a 语言编译程序只需生成在j a v a 虚拟机上运行的目标代码( 字 1 0 节码) ,就可以在多种平台上不加修改地运行。j a v a 虚拟机在执行字节码时,把 字节码解释成具体平台上的机器指令执行。在运行时,会预加载j a v a 的一些核 心类库( j a v a 1 a n g 包下面的类) 。 c d c 基于的虚拟机c v m 是完整的j a v a 虚拟机,可以支持j 2 s e 虚拟机的全 部性能,包括预加载j 2 s e 的所有核心类库,而只需要相对较小的内存,还有针 对有限资源设计的垃圾回收器( g c ,g a r b a g e o l l e c t i o n ) 。当然,它而我们关注 的c l d c 是基于k v m 的,因为设备的限制更加严格,所以k v m 不可能也不用 支持完整j a v a 虚拟机全部功能,对j 2 s e 的核心类也不是完整支持的。 k v m 的主要特点有:丌始的c l d c l 0 是不支持浮点操作的,直到c l d c l 1 才支持f l o a t 和d o u b l e 这两个基本类型并增加了f l o a t 和d o u b l e 这两个核心类; 语言方面,不支持反射( 即j a v a 1 a n g r e f l e c t 包下面以及与此相关的内容) ,c l d c l 0 不支持引用( 即j a v a 1 a n g r e f 包下面以及与此相关的内容) ,直到c l d c i 1 才开 始支持;不支持对象最终化( 即j a v a 1 a n g o b j e c t 类中没有f i n a l i z e ( ) 方法) ,不支 持守护线程和线程租,很多错误( e r r o r ) 和异常( e x c e p t i o n ) 的类都没有包括; 不支持j a v a 本地接口( j n i ,j a v an a t i v ei n t e r f a c e ) ;不支持用户自定义的j a v a 级的类加载器,用户也不可以影响系统的类加载器,同时将类的字节码校验拆分 成预校验和运行时校验两步。以上的特点除了一些移动设备特有的安全问题考虑 外,主要都是为了减少对设备资源( 特别是内存) 的大量使用。 c l d c 的类库主要有两块:j 2 s e 的i a v a i o ,j a v a 1 a n g 和j a v a u t i l 包的部分内 容;j 2 m e 的专有功能j a v a x m i c r o e d i t i o n i o 包。前者针对j 2 m e 设备的特点对j 2 s e 的相应类和类的方法进行了删减,后者则定义了一个通用连接框架( g e n e t i c c o n n e c t i o nf r a m e w o r k ) ,实现j 2 m e 的连接功能。 显然,仅有c l d c 的类库是无法进行应用开发的,因为它没有与用户、存储 设备等进行交互的功能。要由简表来对应各类设备来制定合适的接口,m i d p 就 是针对以移动电话为典型代表的一类简表。m i d p 的类库主要分为用户接口 ( i a v a x m i c r o e d i t i o n 1 c d u i 和i a v a x m i c r o e d i t i o n 1 c d u i g a m e ) 、m i d p 应用程序 ( j a v a x m i c r o e d i t i o n m i d l e t ) 、声音( i a v a x m i c r o e d i t i o n m e d i a 和 i a v a x m i c r o e d i t i o n m e d i a c o n t r 0 1 ) 、存储( i a v a x m i c r o e d i t i o n r m s ) 、安全认证 ( i a v a x m i c r o e d i f i o n p k i ) 等几部分。 c l d c 库和m i d p 库大部分都是j a v a 代码,但是有些底层操作仍然要用本地 代码实现。k v m 虽然不支持j n i ,但是这些系统的类库还是可以使用c c + + 代 码的。虚拟机、配置层、简表层,这三者合在一起,就是一个完整的j 2 m e 架构。 当然,m i d p 的目标设备是移动手持设备,程序最终是要运行在这样的设备 上面。不过,为了方便此类应用程序的开发和调试,就出现了m i d p 仿真器。当 然,这样的仿真器基本都是在p c 机的w i n d o w s 平台下的,因为这是应用最广泛 的开发平台。m i d p 仿真器能够实现,源于j a v a 的平台无关性。因为j a v a 程序 在各平台上执行应该产生同样的效果,我们可以在仿真器上开发调试好应用程 序,然后直接用于目标设备,这样就体现了m i d p 仿真器的有用性。 1 2 第二章目前的m i d p 仿真器 2 1s u n 的w t k s u n 公司的w t k ( w i r e l e s st o o l k i t ) 是使用最为广泛的m t d p 仿真器了,2 0 0 4 年j a v a 开发领域著名的( j a v ap r o d 杂志还将w t k 评为最佳移动开发工具( b e s t m o b i r ed e v e l o p m e n t t 0 0 1 ) 。目前最新的版本是2 2 ,可以在h 娅坳型a :趔垒:! q 堡网 站上下载到。下面的介绍就以w t k 2 2 为例。 w t k 2 2 支持的内容包括:c l d c l 1 ( j s r l 3 9 ) 、m i d p 2 0 ( j s r l l 8 ) 、无线 产业的j a v a 技术1 0 ( j t w i ,j a v at e c h n o l o g yf o rt h ew i r e l e s si n d u s t r y ,j s r l 8 5 ) 、 无线通迅a p l 2 0 ( w m a ,w i r e l e s sm e s s a g i n ga p i ,j s r 2 0 5 ) 、移动媒体a p l l 1 ( m m a p i ,m o b i l em e d i a a p i ,j s r l 3 5 ) 、j 2 m e 平台p d a 可选包( p d a o p t i o n a l p a c k a g e s f o r t h ej 2 m e p l a t f o r m ,j s r 7 5 ) 、蓝牙j a v a 接口( j a v a a p i s f o r b l u e t o o t h , j s r 8 2 ) 、j 2 m e 网络服务规范( j 2 m ew e bs e r v i c e ss p e c i f i c a t i o n ,j s r l 7 2 ) 和j 2 m e 移动3 d 图像a p i ( m o b i l e3 dg r a p h i c s a p if o rj 2 m e ,j s r l 8 4 ) 等。这些都是j a v a 社团( j c p ,j a v ac o m m u n i t yp r o c e s s ) 规定的标准,有各自的j s r ( j a v as p e c i f i c a t i o n r e q u e s t ,j a v a 规范要求) 。另外,w k t 2 2 还支持m 1 d l e t 签名、证书管理、集 成的无线协议( o t a ,o v e rt h ea i r ) 仿真等功能。 当然,现在的应用程序大多用不到这么多功能,对于本文关注的m i d p 应用 程序,c l d c l 1 加上m i d p 2 0 已经基本能满足要求了( 实际上,现在广泛流行 的手机应用程序很多都是c l d c l 0 和m i d p i 0 的,新款手机才慢慢开始支持 m i d p 2 0 ) 。因此,本文实现的m i d p 仿真器只支持c l d c l 1 加m i d p 2 0 ,这已 经足够了。 1 3 进行程序开发的时候,运行w t k 2 2 b i n 下面的k t o o l b a r ,则出现上面的画 面。可以选择新建项目( n e w p r o j e c t ) 或者打开项目( o p e n p r o j e c t ) ,设置( s e t c i n g s ) 里面可以选择项目的属性,比如是基于c l d c l 0 还是c l d c l 1 ,是否需要附加 的功能( 像上面提到的移动媒体a p i 等) 什么,m i d l e t 属性什么的。设备( d e v i c e ) 可以选择不同设备的模拟图,可以通过鼠标点击或者键盘操作来模拟设备按钮的 点击。通过文字编辑器编辑好j a v a 源文件后,可以点击“b u i l d ”按钮来编译和 预校验项目,然后点击“r u n ”来运行项目。“c l e a rc o n s o l e ”是用来清除控制台 的输出信息。 项目都是放在w t k 2 2 a p p s 下面的,而每个项目目录下面,b i n 目录有项目 清单和项目说明文件,程序字节码文件的压缩包也放在这里,c l a s s e s 目录放的是 编译好的字节码文件,1 i b 目录存放项目需要但不属于项目的库文件,r e s 存放存 放项目需要的资源( 如图片,声音文件等) ,s r c 目录存放j a v a 源文件,t m p c l a s s e s 旱面的是项目编译过的但还没有与编译过的类文件,t m p l i b 里面是从1 i b 目录中 读取的已经经过预编译的库文件,而p r o j e c t p r o p e r t i e s 文件则是记录项目的一些 属性。 这样一来,开发和调试应用程序的过程就变得简单很多。根据仿真器上运行 的情况,不断修改源文件,直到出现满意的结果。然后在w t k 中将程序字节码 文字打包成后缀为j a r ( j a v aa r c h i v e ) 的压缩包,其中包含了程序清单文件 m e n i f e s t m f ,再加上w t k 自动生成的后缀为i a d ( j a v a a p p l i c a t i o nd e s c r i p t o r ) 的程序说明文件,这就是完整的可供目标设备下载使用的应用程序了。 同时,对于已经完整地应用程序,w t k 可以演示其效果。通过运行 w t k 2 2 b i n 下面的e m u l a t o r w ,可以选择要运行的应用程序,就可以在w t k 上 跑目标设备上的程序( 如下图) 。 1 4 2 2n o k i a 的n d s s u n 的w t k 是通用的仿真器,而接下来介绍的n o k i a 公司的n d s ( n o k i a d e v e l o p e r ss u i t ef o rt h ej 2 m e ) 则是设备厂商提供的开发包,它里面包含了针对 多种型号系列的设备的m i d p 软件开发包( s d k ,s o f t w a r ed e v e l o p m e n tk i t ) 。 这样,就能更准确、更真实的进行仿真。下载n d s 需要在n o k i a 开发论坛 ( h t t p :w w w , f o r u m n o k i a c o m ) 进行免费注册。目前最新版本是2 0 。 如果只是运行m i d p 程序,那么单独使用n d s 就可以了。点击“s t a r t e m u l a t o r s ”,出现上面的画面,可以选择目标设备的型号,通过“c o n f i g u r e ”设 置一些属性,在“a p p l i c a t i o n ”后面输入要运行的程序文件名,最后点击“e m u l a t e ” 就行了。 不过,当需要对应用程序的源码进行修正并重新编译和预校验时,方便而实 用的是与w t k 配合使用。最简单的配合方式,就是将n d s 中d e v i c e s 目录下面 的各种设备的开发包复制到w t k 中w t k l i b d e v i c e s 目录下面即可。这样,就可 以在w t k 中选择n o k i a 的系列设备,然后编译和预校验准备在这类设备上运行 的项目。 2 3 其他w i n d o w s 平台上的仿真器 一些j a v a 集成开发环境( i d e ,i n t e g r a t e dd e v e l o p m e n te n v i r o n m e n t ) 有m o b i l e 版或者通过插件,从而达到开发j 2 m e 程序的能力,例如e c l i p s e 加上e c l i p s e m e 。 还有很多手机厂商业提供开发包,例如s o n ye r i c s s o n 、m o t o r a l a 、三星等等。 这些开发包大多可以与w t k 或者有开发j 2 m e 能力的i d e 配合使用。当然,最 常见的就是w t k 加n d s 的组合了。其它的种种组合也是大同小异,这里就不 一一详细介绍了。 最后要说明的是,本文提出的仿真机,就是以w t k 加n d s 为参考实现的。 第三章本文使用的虚拟机和类库 3 1 虚拟机的介绍 本文使用的j a v a 虚拟机原型是i n t e l 公司开发的一个高性能的m r t e ( m a n a g e dr u n t i m ee n v i r o n m e n t ) 软件,可以运行大多数为j a v a 虚拟机编写的 j a v a 程序。此虚拟机本来是面向j 2 s e 的,根据需要,对此虚拟机进行了改造, 使之适用于j 2 m e 平台。因为改造过程并非本文讨论的范围,所以这里只是简要 介绍概况。 改造分两个部分:增加对j 2 m e 类库的支持和根据虚拟机核心的差别进行修 改。前者包括删除一些j 2 m e 不用的预装载类,线程机制的简化,本地代码库德 相关增减等等;后者包括根据j a v a 语言的区别进行修改,j 2 m e 安全特性的处理, 类装载过程的控制,类的预校验和运行期校验,取消自定义本地方法,g c 初始 内存池的大小修改等等。前者仅仅对v m 和c l a s sl i b r a r y 的接口处进行改造,对 于内存负载和计算能力方面则未做改动,修改后的虚拟机仍然是一个面向j 2 s e 的虚拟机,只不过成为了一个可以运行j 2 m e 程序的虚拟机平台。而后者的改动, 无论从安全机制考虑,还是从语占支持程度考虑,或者是针对小型消费电子设备 芯片的浮点支持考虑,虚拟机内部机制都已经完全适应。 当然,j a v a 虚拟机是面向多平台的,本文只需要p c 的w i n d o w s 平台即可, 这点可通过虚拟机的宏定义来完成。 3 2c l d c 类库的介绍 有了j 2 m e 虚拟机,还需要有在上面运行的核心类库。现有的c l d c 类库是 遵从c l e a n r o o m 的原则,严格按照c l d c l 1 规范要求( j s r l 3 9 ,j a v as p e c i f i c a t i o n r e q u e s t ) 开发的。所谓的c l e a nr o o m 原则,是指绝不借鉴s u n 的j 2 m e 的参 考实现( 包括了源代码和字节码) 。开发过程中,只阅读了j 2 m e 的规范,以及 查看了s u n 的j 2 m e 的运行结果,以保证类库是完全“干净”、独立实现的。 c l d c l 1 的规范要求中说明,c l d c 为具有以下特征的小型、有限资源和联 网的设备定义了一个标准平台: j a v a 平台至少有1 6 0 k 可用内存 处理器频率从8 3 2 m 开始 1 6 或3 2 位的处理器 有限电源,通常使用电池 与某种网络相连,带宽一般有限( 9 6 0 0 b p s 或更少) 大量生产制造( 通常数百万级) 用户界面多种多样,包括没有 同时,c l d c l 1 的规范要求还指出了它的目标: 向后兼容c l d c l 0 继续针对小型、有限资源和联网的设备 继续针对一般性( 而针对任何具体的设各种类) 继续针对维持紧凑步伐的目标来限制a p i 的增长 利用c l d c l 0 的经验来优化c l d c l 0 实际上,我们已有的c l d c 类库就是在先完成c l d c l 0 规范的基础上,经 过调试并升级到c l d c l 1 的。由于c l d c l 0 和c l d c l 1 的编写过程也并非本 文讨论的范围,这里就不进行具体展开讨论。 3 3m i d p 类库的介绍 现在还没有开发m i d p 2 0 ,与c l d c l 1 一样,我们要遵从c l e a n r o o m 的原 则,严格按照m i d p 2 0 规范要求( j s r l l 8 ) 开发。 m i d p 2 0 的规范要求中说明,它致力于以下几个方面: 向后兼容m i d p i 0 继续针对小型、大量的无线电话 继续针对维持紧凑步伐的目标来限制a p i 的增长 利用m i d p i 0 的经验来优化m i d p i 0 针对大部分设备和应用都需要的核心功能 针对促成移动商业( mc o m m e r c e ) 和基于服务的应用 另外,m i d p 2 0 的规范要求中指出下列功能区域: 域安全模型,包括应用的签名和证书的认证 h t t p s 和安全的网络连接 通过套接字( s o c k e t ) 和数据报( d a t a g r a m ) 来连接网络 正式包括无线协议供应( m i d p i 0 中建议操作) 推动体系结构:外部的事件和消息传送到正确的m i d p 应用 用户接口一一扩展低端的用户界面以允许更好的游戏功能和大屏幕的 图像层次控制 一个小而有效的x m l ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记语言) 解析器以实现平台无关的数据交换 基本的声音a p i 3 4 本章小结 虚拟机已经是p c 机上w i n d o w s 平台下面向j 2 m e 的了,j a v a 类库也已经基 本实现了c l d c l 1 的。本文的中心,就在于搭建符合m i d p 2 0 的仿真器的图形 用户接口平台,这主要包括本地代码( 使用c c + + 语言) 和m i d p 类库( 主要使 用j a v a 语言,少数调用c c + + 语言) 两个部分的实现。 第四章u i 部分本地代码的设计与实现 m i d p 最大的特点就是有了图形用户界面( g u i ,g r a p h i c a lu s e ri n t e r f a c e ) 。 由于设备资源有限,屏幕大小有限,所以需要不同于j 2 s e 的更简单的图形组件。 应用程序从以前的命令行变成图形,执行的方法从参数的m a i n 方法变成用 户选择m i d l e t 执行其s t a r t a p p 方法。 4 1

温馨提示

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

评论

0/150

提交评论