




已阅读5页,还剩52页未读, 继续免费阅读
(计算机科学与技术专业论文)java手机技术及其实例研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
擒要 隧蓉移动逶露援零瀚不颤发曩,其青彩色滚鑫萌;纂著支骜j 枫穗廖戆手惑的游激 普及,使用j a v a 语言开发的手机增值应嗣服务也将会越来越多。但建由于目前在因内开 发手机b 的1 a v a 应用尚处于刚刚开始的阶段,相关的技术资料和开发经验都比坟欠缺。 雨匿本在开发手褪e 的。脚a 应露疗蕊已经非常成熟,参考著赘鉴毽零:酾塞杰面鲍开发经 验其青聪实塞义。 本论文研究了s u n 微系统公司制定的j 2 1 0 版的技术标准j 2 狐与j 2 s e 和j 2 e e 之间的关系,以及日本著名电信厂商k d i ) i 公司在b 2 z p l u s 系列手机b 对j 2 m e 标准中的 m i d p 技术赡具体实现。鼹螽通过设计卷佟一个e z p l u s 的7 a v a 手秘露謦l o n d i k e 缓瓣淳戮,总结墨t 一些在进 亍移动设镶艺楚j a v a 麓赫 鳟翟亭竣 舞发中翁并发技巧 和可能遇测的问题及相关解决方法。 关警掌:移磅适澉,娃睚,j 2 s e ,麓 鼯,粒l ,5 z p l u s a b s t r a c t w i 斑t h ee v o l u t i o no f m o b i l ec o m m t m i c a t i o nt e c h n o l o g y , t h e j a v a - e n a b l e dm o b i l ep h o n e s w i t hc o l o rl c da l eb e c o m i n gp o p u l a r m o r ea n dm o r ev a l u e - a d d e dm o b i l e s e r v i c e s ,u s i n g j a v at e c h n o l o g y , w i l lc o m eo u t s i n c et h ei n l a n dj a v am o b i l eg r o l i c a t i o nd e v e l o p m e n ti ss t i l li n a ni n i t i a l 或a g 岛i ti sl a c ko ft h er e l a t e dt e c l - m i c a ld o c u m e n t sa n de x p 硪e 1 2 0 2 m e a n w h i l e , t h e d e v e l o p m e n t i n j a p a n i s q u i t e e x p e r i e n c e d , w h i c h i s p r a c t i c a l s i g n i f i c a n t t o b e u s e d 竞f r e 蠡z e 靴 1 1 】j s p a p e r i s f o c u s o n t h e r e s e a r c h o f j a v a 2 m i c r o e d i t i o n ( j 2 m e ) v e r s i o n l 0s p e c i f i e d b y s u nm i c r o s y s t e r n s ,a n dt h er e l a t i o n s h i po f j 2 m e ,j 2 s ea n dj 2 e e 1 1 1 i s p a p e ra l s oe x p l o r e st h e h r l p l e m e n to f t e c h n o l o g y o f j 2 辋ei ne z p l u ss e r i e sm o b i l e 娥匆k d d i a 妇l o l l s j a p a n e s e c o m m u n i c a t i o n c o m p a n y a n d f i n a l l y a e z p l u s j a v a p r o g r a m k l o n d i k e c a r d g a m e i s d e s i g n e da n dd e v e l o p e d t os u m m a r i z e s o m e 由) s a n d f a q i nj a v am i d p p r o g r a md e v e l o p m e n t o i lm o b i l es e t k e y w o r d :m o b i l ee o m m m f i e a t i o a ,j 2 v l e ,1 2 s e ,皿p ,k d d i ,e z m u s j a v a 手机技术及其实倒研究 0 前言 0 开发环境余绍 本论文是在英极软件了1 :发( 大连) 有限公司完成的,英极公司开发的j a v a 手机项目 主要是镑对嚣零夔手枫枣场豹三大主滤模式:i m o d e ,j p h o n e 帮e z p t u s 。本论文涉及蜓 k l o n d i k e 项秘的开发环境为日文舨w i n d o w s2 0 0 0p r o f e s s i o n a l ( s p 3 ) 、j 2 m ew i r e l e s s t o o l k i t1 0 3 开发工具包、e z p i u s 开发工具包等。测试环境是英檄软件的日本本社才、 步z 尹掇供羽i 试人员在日本手机上进行测试并反馈测试结果。 0 2j a v a 乎机应用前景广阔 现在,我们都处在一个稃技高速发展的时代,褥艇速度快熬懑经超出了人们静想象, 大约7 ,8 年前,人们还在为是否在家中配置一台固定电话而发愁,而现在我们瓣也不会 为大街上那琳琅满目的手机而感到惊讶。随着中国移动通信集团2 0 0 1 年7 月1 3 日宣布 荚g p r s 遴入囊鬟期,巾国联透“荻瓣察 c d m a 嬲络瞧予2 0 0 2 簟1 月8 墓正袋开逶h 】。 我国移动遴髂事业也已经搬快了步伐,但是我们的授术目前还停留在实现一般的通话和 一些基本的通讯功能,手机上的j a v a 增值服务的开发处于还刚刚开始的阶段。 目前手机市场上已经上市的j a v a 手机包括早先上市的:西门予的6 6 8 8 i ,摩托罗拉 黪a 6 2 8 8 秘3 8 8 、诺基鼗戆9 2 1 0 等投溅,瑟近上毒的燹是寿诲多支持j a v a 的彩羼手援, 铡如n o k i a 公司生产翡6 6 1 0 、7 2 1 0 、7 6 5 0 ,摩托罗控公司生产的t 7 2 0 、t 7 3 0 ( c d m a ) 等等。而在日本,n r td o c o m o 、k d d i 、j - p h o n e 几大移动运臀商早在三年前就推出 了移动通讯设备上的j a v a 应用,目前程日本j a v a 功能成了手机不可或缺的功熊之一。 另多 在h a n d s p r i n g 、p a l m 、i p a q 等瑟薅茨掌上电薤中,j a v a 戆功戆遣缛戮了广泛 应用。班翻本n ,玎d o c o m o 公司豹j a v a 服务为倒,2 0 0 1 年1 月2 6 目推出i - a p p l i j a v a 系列手机,篇一周就卖出了2 3 万部。截至到2 0 0 2 罐1 月2 7 日,在日本使用j a v a 手机 的用户已经达到了1 1 2 0 万。i - a p p l i 刚推出时有只3 6 个内容服务商,约8 0 的内容为娱 乐方瑟豹疲惩。裂了2 0 0 1 年5 秀,i - a p p l i 静j a v a 旋蠲基超过鬣予多 孛强。霹霓移动通 讯厂商联合手机生产厂商推出的j a v a 手机服务得刘了众多消费者豹认可,并鼠极大的促 进和带动丁羧个手机市场向更高的层次发展。 为何j a v a 手机服务程日本得到了如此大的成功,是因为以前的传统手机是一个封闭 戆操作系绞,狳 蜀厂亵爨己戆较锋耧工具,无法瓣手撬懿菜攀避孪亍改动,雯不麓在手 机上附加涮的应用了。而j a v a 的好处就在于它提供一个相对开放的平台,手机用户可以 下载软件到平机上扩充手机功能,而鼠它的应用超越了简单的文本,支持图形,这就让 3 j a v a 手机技术及其实例研究 手机界面完全超出了基于文本的静态的内容服务。比如现在手机炒股采用短信方式传递 信息,信息不够丰富,而j a v a 的应用软件可以实现对k 线图等图形分析,让手机炒股的 技术有了本质的飞跃。s u n 公司最近的研究表明,于j 2 m e 平台的丰富功能、跨平台能 力和对多种设备的支持等诸多特性,使得绝大多数无线开发商都选择采用j 2 m e 平台编 写应用程序软件,s u n 的j 2 m e 平台迅速赢得了它在无线通信领域领导平台的地位。 在国内从2 0 0 2 年起各大手机厂商就已经开始抢先占领j a v a 手机及增值服务开发的 商业空间。继去年摩托罗拉公司举办的“摩托罗拉3 8 8 杯无线j a v a 设计大赛”之后,今 年摩托罗拉公司又和中国移动通信公司联合举办了“摩托罗拉移动梦网无线j a v a 应 用设计大赛”,在吸引着国内各地从事j a v a 应用开发的众多软件开发商和个人爱好者的 普遍关注。爱立信公司也在北京和s u n 公司联合启动了“移动应用开发计划”1 3 ,两者的 内容惊人地相似,都是为了在国内推动基于j a v a 2 平台微型版( j 2 m e ) 的无线应用服务, 为将来占据国内j a v a 手机增值服务的广阔市场奠定基础。目前j a v a 手机端应用的主要 方向为手机游戏、动画屏保、电子图书、电子漫画、电子地图、证券软件等。 日本的j a v a 手机成功推广和应用,为我们展现了一个美好的前景,目前中国移动电 话拥有数量已经成为世界第二大国,而且每年都在以很高的速度在不断增长。中国移动 电话的j a v a 应用也将会继现在的短消息之后成为各大移动通讯运营商、手机生产商、软 件开发商和互联网内容提供商争相争夺的未来最大的盈利点所在。中国的j a v a 手机应用 开发方兴未艾,而j a v a 手机程序的开发的研究也正符合了目前形势的要求。 4 j a c a 手机技术及其实倒研究 1 绪论 。 j a v a2m i c r oe d i t i o n 在整个j a v a 技术之中的定位 j a v a 规范之中有一组所谓的核心擞( c o r ec l a s s ,即j a v a + ) ,在核心类之外还有所谓 戆扩充类( e x t e n d e d c l a s s , i j a v a x s 。根据黠这鼹辨类夔支持程痰,可隧区分滋器辞不 同的j a v a 版本,如下图所示: 罄1 - 1j a v a 戆箨系络褥 f i g u r e1 - 1t h es t r u c n l r eo f j a v a 图1 - 1 所描述的只是备种不同j a v a 版本所支持的核心类的越鼹,并无法针对这些版 本繇支特鬏多 扩楚类终攥述。勇癸,魏鼙氇说翳了邀鍪蔽本蒺支撩豹j a v a 基零类型 ( p r i m i t i v et y p e ,即b o o l e a n 、b y t e 、s h o r t 、i n t 、l o n g 、f l o a t 、d o u b l e 这些类型) 的范围。同 心圆的越外面,所支持的核心类就越完攘。反之位于同心圆内部的j a v a 版本,所支持的 就只是核妊类的子集合,褥且越往里疆,赝支持的核心类子集合簸越小。同样避,越在 同心瑟瓣夕 帮,新支持瓣j a v a 基本类黧藏越完整,嚣越在霞,t l , 篱淘都,辑支持戆j a v a 基本类型就越少。要理解这个图,必须以j a v a 2 s t a n d a r d e d i f i o n ( j 2 s e ) 作为基准,这个版 本实现了所霄j a v a 标准规格之中所定义的核心类,也支持所有的j a v a 基本类型。j 2 s e 定位在客户端程序的应用上。 簌j 2 s e 绽钤延律,冀辨关静同心黧为j a v a 2e n t e r p r i s ee d i t i o n ( j 2 e e ) ,魏版零除了支 持所有的标准核心类,而且还增加了许多支持企业内部使用的扩充粪,比方说支持s e r v l e t 5 j a v a 手机技术及其实例研究 j s p 的j a v a x ,s e r v l e t + 类、支持e n t e r p r i s ej a v ab e a n 的j a v a x e j b + 类。当然j 2 e e 必定支 持所有的j a v a 基本类型。j 2 e e 定位在服务器端( s e r v e r - s i d e ) 程序的应用上。 从j 2 s e 向内看,首先会看到j a v a2m i c r oe d i f i o n ( j 2 m e ) ,它所支持的只有核心类 的子集合,比方说j 2 m ec l d c 的规格之中,只支持j a v a 1 a n g 气j a v a i o 、以及j a v a u t i l + 这些类。此版本也增加了一些支持“微型装置”的扩充类,如i a v a x m i c r o e d i t i o n i o + 类。 然而,此版本并不支持所有的j a v a 基本类型,对标准的j 2 m ec l d c 的参考,也就是能 在p a l m o s 上执行的k v m 瞰v i r t u a lm a c h i n e ) 来说,它就不支持属于浮点数( f l o a t 、d o u b l e l 的j a v a 基本类型。j 2 m e 定位在嵌入式系统的应用上。 同心圆的最里面,还有一个j a v a 的s m a r tc a r d 版本,这个部分原本在j a v a 的文件 之中并没有这样定义,但是将它画在j 2 m e 内部是很合理的。因为s m a r tc a r d 版本只支 持j a v a 1 a n g * 这个核心类,比起j 2 m e 所支持的核心类更少,但它也有属于自己的扩充 类,如j a v a c a r d j a v a c a r d x + 这些类。s m a r tc a r d 版本只支持b o o l e a n 与b y t e 这两种j a v a 基本类型。就如同其名称,此版本定位在s m a r tc a r d 的应用上。 在以上每一种j a v a 版本之中,都有属于自己的虚拟机器f v m ) ,藉以达成“一次编 写,到处运行”的终极目标。在s m a r t c a r d 上有c a r d v m ,负责执行下载到s m a r t c a r d 上的c a r d a p p l e t ;在j 2 m e 的中k v m 用来执行下载至嵌入式装置上的s p o t l e t 或m i d l e t : 在j 2 s e 与j 2 e e 之中,有c l a s s i c v m 与h o t s p o t v m 负责执行j a v a a p p l e t 、j a v a s e r v l e t 或j a v a a p p l i c a t i o n 。 h o t s p o t v i m 是新一代的j v m ,相较之下c l a s s i c v m 则是传统的j v m “。根据j a v a s o f l 的说法,h o t s p o tv m 让j a v a 程序的执行效率大幅提升。其实h o t s p o tv m 还分成c l i e n t 版与s e l v e g 版。之所以要区分成这两种,主要是因为在客户端执行的应用程序与服务器 上所执行的应用程序在基本需求上有所不同,客户端应用程序比较注重画面上的美观、 使用者接口的灵敏度;而服务器上执行的应用程序则比较没有画面上的需求,因此 h o t s p o t v m 的两种版本就是为了针对不同的需求而分别予以最佳化而产生的结果 5 】。 6 j a v a 芋糖技零笈箕实簿舔霓 圈t - 2 铮是不嗣j a v a 驻奉豹j a v a 纛熬掘 f i g u r ei - 2 t h e v i m a a ! m a c h i n e s o f d i f f e r e n t j a v a e d i t i o n s 以上所述的v m 都只是s u n 公司根据j a v a 虚拟机器规格标凇的实现,实际上有许多 家公霹都骜爨己敷开发爨泰熬v m ,藤器瞧耱鸯j a v a 纛接辍标准,方蠛i b m 憨j 9v m 载跫一个铡予。 。2 各莉j a v a 版零之漏蕊联系一j t n i 技拳 既然存在那么多不同j a v a 版本,那么如粜这些针对不网版本来开发的j a v a 程序能够 镀_ 逝连结农一块,互招分搴镀烧翦资滋,躐蹩傲资誊喜交羧,那么将是饕零好黪攀一凌。这 裁楚j i n i 竣鑫l l 逡逡来鹣攥壅。各释不阏舨零魏j a v a 平台戆囱j i n i 缓魏联系,鳃鹜1 3 辨示: 7 j a v a 手机技术及其实例研究 图1 - 3 不同j a v a 版本之间的联合 f i g u r e1 - 3t h eu n i t eo f d i f f e r e n tj a v ae d i t i o n s 在上图之中,s m a r tc a r d 版本由于其特性使然,所以并没有藉由j i n i 与其它j a v a 版本的应用程序做沟通,而只是在j i n i 所造成的广大分布式环境之中被用来作为认证之 用【6 】。 1 3 各种j a v a 版本之程序开发 如前面所说,各种不同的j a v a 版本,在其支持的核心类之完整性以及所支持的j a v a 基本类型这两件事情上都有所差异,但是对于程序设计员而言,这些版本的关系图1 4 所示: j a v a 手帆技术及其实铡研究 圈1 - 4 不阏j a v a 舨本的野发关系 f i g u r e1 4 t h e d e v e l o p m e n tr e l a t i o n so f d i f f e r e n tj a v a e d i t i o n s 逸裁楚说,不管开发瓣楚金韭凄使髑懿j a v a 毽廖、手薅装萋上羧牙懿j a v a 猩痔还是 测览器上执行的a p p l e t ,或是在p c 上执行的瘟用程序。都必须在计算机上先安装j 2 s e , 然后再安装各种版本的额外扩充类,如此才能成功地开发各种不同功能的j a v a 程序。 j 2 s e 所提供的j a v a 编译器( j a v a c e x e ) 可以编译各种不同平台上的j a v a 程序,而j 2 s e 所 撵供匏j a v a 虚毅橇爨( j a v a e x e ) 要, l | 毒黻在p c 上先嚣测试这些程序鸯l l 行结栗戆委凌与否。 另外,j a v a 编译器并不会检查程序是否符合各种平台上所支掩的核心类与j a v a 基本 类型。举例来说, s m a r tc a r d 版本中并不支持b o o l e a n 、b y t e 以外的j a v a 基本类型,而 且该平台也只支持j a v a 1 a n g t 核心类,可是在撰写s m a r tc a r d 平台上的程序时,就算在 程痔霞羁受头蹋了b o o l e a n 或b y t e 爨努鳃j a v a 基搴癸黧,或者袋瓣了i a v a 1 a n g 。8 之羚载 其它核心类,编译器仍然可以照常编译出类文件浅来。这些程序如果放到s m a r tc a r d 上 头执行的时候会造成s m a r tc a r d 上的虚拟机器发生执行错误。针对这个可能发嫩的潜在 问题,在备种不同版本的开发套件中,有些会内附检查器( c h e c k e r ) 或者预先审核器 ( p r e v e r i f i e r ) ,这嚣个工爨溪叛在褥程痔羧爨嚣标乎台之蔫竞 菝驽捻套秘羲走警骇瓣工箨。 检查器会找出类文件之中不合目标平台规格的部分,并提示这些嫩方可能无法在目的平 台上执行。因此只要有梭查器的协助,大致上可以确定所编的程序可以符合目标平台的 规定并顺利执行。 瑟菜婆平套豹开发粪徉爨瓣毒羲建审核器,之掰戮有颈麦宰孩器懿琢霞楚霾为黉统 j a v a 程序( a p p l i c a t i o n 、s e r v l e t 、a p p l e o 的执行程序如图l 一5 所示: 9 j a v a 手机技术及其实例研究 图1 - 5j a v a 程序的编译执行 f i g u r el 一5t h ej a v ap r o g r a m e si sc o m p i l e da n de x c u t e d 在传统的j a v a 程序之中,出于安全上的考虑,任何进入执行环境的类( 不管该类 是来自本机或是远程机器) ,都必须先经过b y t ec o d e 审核器( b y t ec o d ev e r i f i e r ) 的验证, 以防止有人在程序传送途中遭到恶意的修改,从而使得j a v a 程序在执行时对系统有不良 影响。经过验证之后,该程序才能开始被j v m 所执行 7 】。 如果这个审核的动作在一般的p c 上执行,速度倒是还能够接受,可是一旦放到如 p a l m 或是手机这些c p u 较慢、内存也较少的机器上面就显得十分吃力了。为了节省宝 贵的c p u 运算时间( 既能省电又能够加速程序执行) ,因此,在程序设计人员产生能够 让某些特定平台执行的程序之前,必须先在p c 上使用预先审核器做一些前期的验证工 作,预先审核器会在类文件之中加入一些特殊标记或符号。这样当这些程序放到目标平 台上执行时,就可以大幅减少在目标平台上做验证时的时间,藉而加速程序的的激活及 执行速度。 1 4j a v a 版本的演进 j a v a 技术一开始并非就叫做j a v a ,而是叫做o a k ,而且最早的时候就是为了嵌入式 系统而设计的产品。后来因为网络的不断发展,而o a k 的诸多特性刚好又适合用在网 络上( 例如可移植性、编译后程序代码很小) ,因此被改名成j a v a ,从此成了网络应用技 术的闪亮巨星。随着时间流逝j a v a 语言越来越成熟,也慢慢地产生了许多非原本预期中 的相关运用。虽然j a v a 已经被用到许多企业级软件上,其实骨子里面还是非常适合用在 嵌入式系统之中1 7 。j a v a 版本的历史演进如图1 - 6 所示: 1 0 j a v a 手机技术及其实例研究 图1 - 6j a v a 版本的演进 f i g u r e1 - 6t h ee v l o u t i o no f j a v ae d i t i o n s 从图1 6 中可以发现,虽然从j a v a1 0 发表之后,j a v a 就被广泛地使用在桌上型应用 程序以及a p p l e t 的开发上,但是,从j a v a1 1 开始,j a v a 又回到了它一开始的老路也 就是嵌入式系统上面的应用,在当时s u n m i c m s y s t e m s 发表了e m b e d d e dj a v a 与p e r s o n a l j a v a ( 也有人简称为p j a v a ) 这两项规格。其中e m b e d d e dj a v a 是为了资源十分有限,而且 没有显示设备的装景而设计;p e r s o n a lj a v a 则是为在能够与网络联机、并拥有显示系统 ( 例如彩色l c d ) 的消费性电子装置而设计。 接着j a v a 的版本演进到j a v a2 ,这时为了再明显区分各种j a v a 的应用,所以分割出 了j 2 e e 、j 2 s e 、以及j 2 m e 三种版本。由于j a v a2 将j a v a 的应用区分成三大块,使得 j a v a 程序语言的发展不会再像j a v a1 1 时如树枝状般扩散出去,这么一来有助于对j a v a 各种应用的理清,而不会造成今后越发展下去越不可收拾的混乱局面。额外值得一提的 是,后来p e r s o n a lj a v a 发展到1 2 版的时候,也采用了一些j a v a2 平台上与安全性有关 的设计。 1 5j 2 m e 概观 j 2 m e 在设计其规格的时候,遵循着“对于各种不同的装置而造出一个单一的开发系 统是没有意义的事”这个基本原则。于是j 2 m e 先将所有的嵌入式装置大体上区分为两 种:一种是运算功能有限、电力供应也有限的嵌入式装置( 比方说p d a 、手机) ;另外 一种是运算能力相对较佳、并且在电力供应上相对比较充足的嵌入式装置( 比方说冷气 j a v a 手机控术及其实错研究 橇、电冰箱、魄程极枫礞盒) 。因为这有嬲耱区分,所以j a v a 引入了一个日q 锹c o n f i g u r a t i o n 的概念,然磊把上述运算功能有限、毫力有限静嵌入式装置定义在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 l d c ) 规格之中;而另外一种装置则规范为c o n n e c t e dd e v i c e c o n f i g u r a t i o n ( c d c ) 规格。也就是说,j 2 m e 先把所有的嵌入式裟鼹利用c o n f i g u r a t i o n 的壤念区隔波嚣嵇撼象的溅态。 其实可以把c o n f i g u r a t i o n 当作是j 2 m e 对于两种类型嵌入式装置的规格,而这些规 格之中定义了这些装置至少要符合的运算能力、供电能力、内存大小等规范,同时也定 义了一组在这些装置上执行数j a v a 程廖滠l 使嗣鲍类疼。这些援藏之中繇定义豹类痒是 j a v a 核心类豹子集合强及与该型态装鬣特性相符的扩态类。院方虢c l d c 的麓滚来说, 可以支持的核心类为i a v a 1 a n g + j a v a i o 、j a v a u t i l ,而可以支持的扩充类为 i a v a m i c r o e d i t i o n i o 。区分出两种主要的c o n f i g u r a t i o n 之后,j 2 m e 接着再定义出p r o f i l e 戆壤念。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 熬概念,建为了要 更弱确遣送分出各种嵌入茂装置上j a v a 程序该翔秘开发,具有窃# 蹙功能。融憩p r o f i l e 之中定义了与特定嵌入式装置非常相关的扩充类,而j a v a 程序在锫种嵌入式装鼹的用户 接口该如何璺现的规定就烂定义在p r o f i l e 里头。p r o f i l e 之中所定义的扩充类也越根据底 蒺c o n f i g u r a t i o n 内瘊定义戆核心类鼹建立l l o 】。嵌入式系绣上戆j a v a 程j 亭、p r o f i l e 、 c o n f i g u r a t i o n 、虚投机器、操作系统、以及实体装黉之间的关系如图1 7 所示: 图1 7 嵌入式系统运作哭系图 f i g u r e1 - 7t h er e l a t i o n s h i po f u n i 协o f e m b e ds y s t e m 从图1 - 7 可以发现,根据某个p r o f i l e 规范所撰写的j a v a 程序除了可以直接调用p r o f i l e 中定义的扩巍类,也可以胤接调用c o n f i g u r a t i o n 中所定义的核心类子集与扩充类。 j a v a 孕瓿铰拳疑箕实铡错觉 j 2 m e 中c o n f i g u r a t i o n 以及p r o f i l e 蕊缀成龅架掬大效妇强l 堪鼹示。鹭懿从c l d c 掰锈生窭袋魏p r o f i l e 有磷释,静蓬h a n d h e l dp r o f i l e ,太多数瓣在p d a 主;瓣舅羚一 耱怒m o b i l eh i f o r m a t i o nd e v i c ep r o f i l e ( m i d p ) ,这个p r o f i l e 是针对嚣动装置联定义,滋 方说呼叫器( p a g e r ) 行动电话等等,都炫属于行动装援。舄外,可以发域e m b e d d e dj a v a 与p e r s o n a lj a v a 缎乎没鸯包禽在两令c o n f i g u r a t i o n 任倪一个底下,遮辫起来套点惫强, 不过谴嚣j 逐楚 | 曩类在强m e 熬莲磅之中,褥且蓬l 蓊垒爨了j a v a 靛安时敷零( r e a l - t i m e s p e c i f i c a t i o nf o rj a v a ) 。葵窿e m b e d d e dj a v a 与p e r s o n a lj a v a 会馒鬣禳絮约在c d c 之h 豹 p r o f i l e 所取代。零p e r s o n a lj a v a 来说,藏实宅的规格与p e r s o n a lp r o f i l e 的规格是兼密的。 乏掰默曼黪逐露蠢e m b e d d e dj a v a 与p e r s o n a lj a v a 这鼹个名词懿主要瓣毽奁予市璐上已 缀蠢大量袋弼这辩静簌嵇麴鬟箨赫,搿戳斑麓内p e r s o n a lj a v a 秘然会不断演遂,一嚣誊之 润述无法立剿舞蹙鹫j 2 m e 靛特定p r o f i l e 之下翻。 图1 - 8j 2 m e 架构鼹 f i g u r e1 - 8t h es 口 u c r l r eo f j 2 m e j a v a 手机技术及其实例研究 2j a v a 嵌入式开发简介 2 1j 2 m e 与m i d p 开发 从m 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 ) 这个规范的英文名称的含义,我们可 以推测出m i d l e t 程序是定位于提供某种水平的网络连接性的移动设备。运行m i d l e t 的 设备也有好几个共同的属性:有限的屏幕大小、内存和处理能力,典型的设备包含移动 电话和传呼机。 c l d c 定义了一个用于j a v a 虚拟机的规范和一组核心类库,c l d c 本质上是一个 j a v a2 标准版的简化版本,是为了使用有限内存和资源的设备设计的。c o n f i g u r a t i o n 是 设计来运行p r o f i l e 的,而m i d p 是一个规范,它提供一套核心类库来编写那些用于移动 设备的j a y a 应用程序。p r o f i l e 定义了类库,开发者们使用这些类库来为某一特定的设备 或用于某一范围的设备编写应用程序。例如,m i d p 定义的类是用于创建用户界面( 文 本框、表单等) ,处理用户输入以及使用h t t p 协议在网络上进行通讯。 m i d l e t 是指运行在m i d p 设备上的j a v a 小程序,在编写一个m i d l e t 之前,需要下 载必需的软件: j a v a2s t a r d a r dd e v e l o p m e n tk i t ( j d k ) 一1 3 1 以上版本 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 l d c ) 1 0 3 以上版本 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 ( m i d p ) 1 0 3 以上版本 s u n 公司的网站提供了j 2 m e 无线开发工具包( j 2 m e w i r e l e s s t o o l k i t ) 1 0 4 版的 下载,这个工具包括了开发m l d l e t 所需j a v a a p i ,以及相关的编译运行工具。下载网址 在:h t t p :j a v a s u n c o m p r o d u c t s j 2 m e w t o o l k i t d o w n l o a d h t m l 2 1 1m i d p 的简单例子 以下是一个h e u w o w o r l d 类型的简单例子, m i d l e t 与a p p l e t 相类似,它包含有用户界面、 从中可以看出一个m i d l e t 的生命周期, 数据和控制能力。 i m p o r t j a v a x m i c r o c d i t i o n m i d l e t : i m p o r t j a v a x m i c r o e d i t i o n 1 c d u i + ; p u b l i cc l a s sh e l l o m i d l e te x t e n d sm i d l e ti m p l e m e n t sc o m m a n d l i s t e n e r p f i v a t ed i s p l a ym i d l e t d i s p l a y ; p f i v m ec o m m a n dd o n e c o m m a n d ; p u b l i ch e l l o m i d l e t ( ) ( j a v a 手机技术及其实例研究 m i d l e t d i s p l a y = d i s p l a y g e t d i s p l a y ( t h i s ) ; d o n e c o m m a n d = n e wc o m m a n d ( ”d o n e ”,c o m m a n d s c r e e n ,1 ) ; ) p u b l i cv o i ds t a r t a p p ( ) t e x t b o xt e x t b o x = n e wt e x t b o x ( ”h e l l om i d l e t ” ”h e l l om i d l e tw o r l d ! ! t 2 5 6 ,o ) ; t e x t b o x a d d c o m m a n d ( d o n e c o m m a n d ) ; t e x t b o x s e t c o m m a n d l i s t e n e r ( 佗o m m a n d l i s t e n e r ) t h i s ) ; m i d l e t d i s p l a y s e t c u r r e n t ( t e x t b o x ) ; ) p u b l i cv o i dp a u s e a p p 0 p u b l i cv o i dd e s t r o y a p p ( b o o l e a nu n c o n d i t i o n a l ) ) p u b l i cv o i dc o m m a n d a c t i o n ( c o m m a n dc o m m a n d ,d i s p l a y a b l es c r e e n ) i f ( c o m m a n d d o n e c o m m a n d ) d e s t r o y a p p ( f a l s e ) ; n o t i f y d e s t r o y e d 0 ; 这个m i d l e t 程序的输出如图2 一l 所示,它其实是j 2 m ew i r e l e s st o o l k i t d e f a u l t g r a y p h o n e 模拟器的一张抓图。 图2 - 1 模拟器运行h e l l om i d l e tw o r l d 的界面 f i g u r e2 - 1t h ei n t e r f a c eo f p r o g r a m e h e l l om i d l e tw o r l d “o ne m u l a t e r j a v a 手机技术及其实例研究 程序头两行导入了m i d l e t 类,c o m m a n d a c f i o n 接口和用户接口( u i ) 类。这些位于 在m i d p a p i 中,m i d p a p i 是一个经过修改针对的j a v a 编程语言子集。 p u b l i cc l a s sh e l l o m i d l e te x t e n d sm i d i 武i m p l e m e n t sc o m m a n d l i s t e n e r 该行声明h e l l o m i d l e t 类是扩展抽象类m i d l e t 类,并且实现了c o m m a n d l i s t e n e r 接 口。每个m i d l e t 实例都必须扩展抽象的m i d l e t 类,该类包含了以下表示的三个方法, 而每一个m i d l e t 都必须覆盖这些方法以完成自己的生命周期。 表2 - 1m i d l e t 程序的方法及其作用 t a b l e2 - 1f u n c t i o n sa n du s a g e so f m i d l e tp r o g r a m e 方法名 方法的目的 s t a r t a p p 分配系统资源和初始化应用 p a u s e a p p 程序暂时挂起 d e s t r o y a p p 结束这个m i d l e t 程序并且释放被m i d l e t 使用的资源 在上面的例子中,s t a r t a p p 包含了大部分的功能,这是由于h e l l o m i d l e t 并没有使用 其它的系统资源,例如网络连接或者数据存储。在h e l l o m i d l e t 被执行的时候,将会调用 s t a r t a p p 。构造器将在s t a r t a p p 方法前被执行。在这个例子中,构造器由全局的d i s p l a y 对象接收显示。此外,构造器初始化d o n c c o m m a n d 。上面的s t a r t a p p 方法将用来创建在 m i d l e t 上显示的屏幕。以下的行是用来初始化t e x t b o x 屏幕的。 t e x t b o xt e x t b o x2n e wt e x t b o x ( ”h e l l om i d l e t ”,”h e l l om i d l e tw o r l d ! ! ”,2 5 6 ,o ) ; 一个m i d l e t 的屏幕中还包括有c o m m a n d 。c o m m a n d 就是m i d l e t 用来创建软键的 技术,就象上图中的“d o n e ”按钮。以下代码就是用来为t e x t b o x 屏幕加入“d o n e ”软 键按钮的代码: t e x t b o x a d d c o m m a n d ( d o n e c o m m a n d ) ; c o m m a n d 还会在被点击时产生c o m m a n d a c t i o n s 。在上面的简单例子中,h e l l o m i d l e t 将会实现c o m m a n d l i s t e n e r 的接口,因此还会处理所有自己的事件。但在开发系统变得 更复杂时,使用一个扩展的方式来处理事件将会更为有利。 为文本框设置软键监听器 t e x t b o x s e t c o m m a n d l i s t e n e r ( ( c o m m a n d l i s t e n e r ) t h i s ) ; 既然t e x t b o x 已经被创建,它就准备好被显示在设备的屏幕上。在以下的代码中。 将当前的显示设置为新创建的t e x t b b o x ; 设置t e x t b o x 为m l e t 的当前显示对象 m i d l e t d i s p l a y s e t c u r r e n t ( t e x t b o x ) ; 1 6 j a v a 手机技术菠其实铡研究 h e l l o w o r l dm i d l e t 怒一个银简单的铡子,它只傻用了m i d p 平台上的一些炎。 2 1 2m i d p c l d c a p i 概述 由于m i d p c l d ca p i 将在一个性能肖限的设备上遴行,因藏j a v a 的一些功畿渡移豫或 者修改。m i d p c l d c a p i 包含有以下的类库: j a v a 1 a n g 4 i a v a i o $ i a v a u f i l 4 i a v a x m i c r o e d i t i o n i o + i a v a x m i c r o e d i t i o n u i 8 i a v a x m i c r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康管理行业投资机会调查
- 劳务合同范本样本
- 2025年市场调研合同范文应用
- VTE题目试题及答案
- 2025水泥的供货合同范本
- 毕业论文伦理
- 2025合同模板建设工程施工合同水利
- 2025年餐饮公司并购协议合同样本
- 八年级人教版综合实践教案
- 资料员考试试题及答案
- 家政服务协议书范本
- 中小学生研学旅行投标方案(技术方案)
- 成人手术后疼痛评估与护理-中华护理学会团体标准2023 2
- NB-T 10435-2020 电动汽车快速更换电池箱锁止机构通.用技术要求
- 学历认证授权委托书样本
- 中医医疗技术手册2013普及版汇编
- (高清版)JTGT 3360-01-2018 公路桥梁抗风设计规范
- gcp机构办公室工作计划
- 旅游学概论(郭胜 第五版) 课件 第1、2章 旅游学概述、旅游的产生与发展
- 1.1.3茶云纹叶枯病识别与防治
- MT-T 1199-2023 煤矿用防爆柴油机无轨胶轮运输车辆安全技术条件
评论
0/150
提交评论