(计算机应用技术专业论文)dsr在j2me开发平台下的研究及实现.pdf_第1页
(计算机应用技术专业论文)dsr在j2me开发平台下的研究及实现.pdf_第2页
(计算机应用技术专业论文)dsr在j2me开发平台下的研究及实现.pdf_第3页
(计算机应用技术专业论文)dsr在j2me开发平台下的研究及实现.pdf_第4页
(计算机应用技术专业论文)dsr在j2me开发平台下的研究及实现.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

直立唑电堂院亟盟宜生堂焦迨塞 翅翌 摘要 j a v a 语言以其开发周期短、面向对象的特点越来越受到丌发人员的青睐。j 2 m e 平 台的推出把j a v a 语言与嵌入式系统开发连接在一起。但j a v a 语言的执行效率一直是开 发人员关注的焦点,必须针对嵌入式系统的特点设计适用于嵌入式系统的虚拟机。 随着当前硬件、软件技术的高速发展,语音识别技术的应用已经成为可能。但由于 无线系统资源的一些限制,语音识别在无线系统中的应用还存在一些问题。针对无线系统 的特点,i b m 等一些大公司提出了分布式语音识别的技术规范,使得无线系统下的语音识 别得到了进一步发展。 本文首先介绍了j 2 m e 开发平台的体系结构和基本概念,然后对j 2 m e 虚拟机在 w i n d o w s 操作系统下实现的关键技术进行了分析和研究,提出了一种基于w i n d o w s 操作 系统的j 2 m e 开发平台的参考模型和实现的软件体系结构。 在此基础上,结合笔者所作项目,对以下几点工作进行了详细的阐述: 1 设计了一种w i n d o w s 平台下符合实际无线系统特点的分布式语音识别仿真系统。 2 对无线系统前端设备采用的关键算法进行了研究并给出了部分实现。 3 设计并在j 2 m e 平台下实现了分布式语音系统所采用的传输协议。 最后在j 2 m e 仿真平台上进行了验证,证明了设计的正确性。 关键词:j a v a2 平台微缩版,虚拟机,仿真器,分布式语音识别 直夏些生堂隧亟监塞生堂僮迨塞煎噩 a b s t r a c t j 2 m e t e c h n o l o g yi st h ec u r r e n th o t s p o to ft h ew i r e l e s sa p p l i c a t i o nf i e l d d i s t r i b u t e ds p e e c h r e c o g n i z a t i o ni nw i r e i e s ss y s t e mi sb e c o m i n gi m p o r t a n tm o r ea n dm o r e t h ee m u i a t i o no fd s r u n ( 1 e rj 2 m ep l a t f o r mi st h ee m p h a s e so ft h i s p a p e r ,w h i c hi st h es 啪m a r yo fm yr & d e x p e r i e n c ei nm o t o m l ac h i n a t h ea r c h i t e c t u r ea n db a s i cc o n c e p t i o no fj 2 m ep l a t f o r ma r ei n t r o d u c e dn r s t b a s e do nt h i s j n t f - o d u c t j o n ,ar e 右爿 c n c em o d e io fj 2 m ep j a t f o n no nv “n d o w so p e r a t i n gs y s t e mi n c 】u d j n gi t s s o r w a r ea r c h i t e c t u r ei sp r o p o s e d t h e nt h ee m u l a t i o no fd s rf e a t u r eu n d e rj 2 m ep l a t f o m li s d e t a i l e dd e s c r i b e da n ds o m ek e yi m p l e m e m t e c h n o l o g i e sa r eb m u g h tf o n a r d t h ei n t e g m t e dd e v e l o p m e me n v i r o 啪e n to fj 2 m ea 士1 dt h ee m u l a t i o no fj 2 m eh a l l d s e ta r e i m p o n a l l tf i e l d so fr c s e a r c h t h ed e s i g na n di m p l e m e n t a t i o no ft h e m ,w h i c hi sp a r to fm yw o r k , a r ed i s c u s s e di nm i sp a p e l ih a v eb u i l tat e s te n v i r o n m e n tt h a ti sc o n s i s t e n tt op r a c t i c a l i m p i e m e n te n v i r o n m e n tt o e m u l 8 t et h ef h m e w o r kt h i sp a p e r p u tf o r w a r d t h et e s tr e s u l t sb a s e do nt h et e s te n v i r o m e n ta r e g i v e no u t i nt h ee n d ,is u m m a r i z ea l lt h ew o r ki nt h ep a p e r ,a n dp r o s p e c tt h en e x tr e s e a r c h a s d e c t k e yw o r d s :j 2 m e ,k v m ,e m u l a t or ,d s r 直立蛆虫堂隧亟班巍垒堂焦途塞 缝旦翊遴 缩写词表 n o 缩写词荚文全文译文 lj 2 e ej a v 82e n t e r p r i s ee d i t i o n j a v a2 企业版 2j 2 s e j a v a2s t a n d a r de d i t i o nj a v a 2 标准版 3j 2 m 1 8 v 82 4 i e 嚣d i 6 0 nj 8 v 8 2 皴绩舨 4 c l d cc o r m e c t e dl i m i t e dd e v i c e 有限连接设备配置 c o n n g u r a t i o n 5m i d p m 曲i l ei n f o m l a l i o nd e v c ep r o 蠡l e 移动售惠设蚕接述 6k v mk 订o v i r t u a lm a c h i n e 千字节虚拟梳 7j n i j a v an a t i v ei n t e r f h c e j a v a 本地接口 8珏) l 越e 笋a 主e dd e v e l 。p m e n t祭残开发环境 e n v i r o m n e n t 9j a m j a v aa p p l i c a t i o nm a n a g e r j a v a 应用管理器 1 0j a rj a v aa ! h i v e j a v a 档寨文 孛 l l0 e m o r i g i n a le q u i p m e n tm a n u f a c t u r e r 襟使设备制造商 1 2a p i a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e应用编程接口 1 3r t pr e 8 ll i m 0 搬瓣s p o f tp r o o e o l 实孵传输携议 1 4r t c p r e a lt i m em m s p o r tc o n t r o lp r o t o c o l 灾时传输控制协议 1 5d s rd i s t r i b u t e ds p e e c hr c c o g n i z a t i o n 分布式语音识别 4 8 南京邮电学院学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 _ i 作及取得的研究成果。尽我所知,除了文巾特别加以标注和致谢的 遗方乡 ,论文中不毯含其德入已经发表羲撰焉遥的研究戚采,也不包 含为获得南京邮电学院或其它教育机构的学位或证书而使用过的材 料。与我一露工终懿溺态慰本磷究菠徽的强篱震蒙殇已在论文孛幸霉了 明确的说明并表示了谢意。 研究生签名:爻走咖 日期: 兰:竺:垡 南京圭器电学院学使论文使鼹授权声骥 南京邮电学院、中国科学技术信息研究所、国家图书馆有权保鼹 本入所送交学位论文熬复窝俘稷魄子文档,霹浚采用影印、缩印或其 他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一 致。除在搽密赣内的像密论文癸,竞诲论文装查阙翱後阕,霹戮公瘴 ( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权 南京邮电学院研究生郝办理。 研究生签名; 塾墨:盎器舜签名; 直立邮生堂瞳亟婴塞生堂焦迨塞 蔓二童2 m e 煎蕉 第一章j 2 艇概述 1 1j a v a2 平台简介 近几年计算机行业最大的发展在于网络的迅速发展和不同架构网络的互通互连,尤其 是无线通信业呈现出的爆炸式增长,人们越来越希望能够通过移动和无线设备来访问 i n t e m e t 上的信息。对于网络服务提供商来说,如何提供更快更安全的无线数据和移动 i n t e m e t 服务成了重要的研究项目。无线环境应用的挑战之一就是终端设备的转换,如何将 具有固定编码特征的面向语音的通信设备转换为捌有高级的数据和软件支持、可扩展、可 访问i n t e m e t 的设备,而这些设备要支持动态软件下载,不但能够运行设备制造商提供的 程序,而且能够运行第三方软件开发商丌发的软件。这些要求使得终端设备将更加依赖于 软件,同时将重点更多的放在软件互操作性、安全性和可靠性上。 j a v a 编程语言以其有益的特点成为移动设备丌发的重要平台之一。 一次编码,跨平台使用 使用了j v m 技术,对不同的操作系统提供不同的虚拟机,使得j a v a 程序员编码时不 再需要考虑不同操作系统的代码移植问题,这也萨是j a v a 之所以能够受到程序设计师喜欢 的原因之一。 简单性 纯面向对象的特性,再加上众多类别函数库的支持,使得使用j a v a 丌发各式各样的应 用程序变得非常简单。除此之外,不论在调试或是程序修改、增加新功能方面,因为面向 对象技术的使用,使得这些维护也变得非常容易。 安全性 j a v a 许多新增的功能是针对安全性的问题而考虑的,j a v a 甚至可以针对于不同的安全 需求来设定j a v a 应用程序的安全等级,原则上一个未经授权的j a v a 程序,是不可能对系 统产生任何破坏的。 使用u n i c o d e j a v a 使用u n i c o d e 作为它的标准字符编码,这项特性使得j a v a 的程序在不同语言的平 台上都能撰写和执行。 支持网络 j a v a 可以说是由于网络而产生的,它提供丰富的函数库支持网络程序的丌发。无论是 般网络程序( s o c k e t 、e m a i l 等) ,或是网页方面的应用( s e r v l e t 、j s p 等) ,甚至是分 布式网络程序( c o r b a 等) 都可以找到相应的组件。 直立蜒哇i 堂睦亟业塞生堂位迨塞 苤二蕈2 m g 拯蕉 资源回收处理( g a r b a g ec 0 1 l e c t i o n ) g a r b a g ec o l l e c t i o n 是由j v m 对程序内存做动态的管理,在程序中需要多少内存、有那 些对象的内存已经不再使用、需要释放回系统,这些原本需要程序员考虑的烦琐且危险的 操作全部交由j v m 去管理。这不但能把程序员解放出来使其能更专心的开发程序,而且 内存的统一管理,对程序的跨平台移植也有很大的帮助。 异常处理( e x c e 口t i o n ) j a v a 引用了异常处理的机制,能够在程序中有可能出现异常产生的地方加上相应的处 理,让程序不致于因为突发的错误造成执行中断或是系统崩溃的情况。异常处理也能让程 序员能更容易控制程序执行的流程,使得程序的设计更为严诺。 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 dc l a s s ,即j a v a x + ) 。根据对这两种类库支持程度的 不同,s u n 公司将j a v a 组织成4 个版本,如下图所示: 图1 1 j a v a2 平台分类 针对各种不同的j a v a 版本所支持的核心类函数库的范围进行描述,越外层支持的核 心类函数库就越完整。反之,位于内部的j a v a 版本所支持的就是核心类函数库的子集,而 且越往内,所支持的核心类函数库的子集就越小。 下图表明了j a v a2 平台的版本以及它们的目标市场: 直壅邮也堂医亟监宜生堂位迨塞 箍二重1 2 堑擐整 i 服务器和企业计算机1 桌面和个人计算机l 0 l 可选包 li 尚端消费类设备l 可选包 r 低端溃舞类谶謦。 1r ;霸瓣2 ( _ 尘塑堡l 波逝版 “j 撕2 r 一、r 、 傅2 e e ) 标准版 1 基本描述l m i d p j ( j 2 s e ) r 、,_ 、 l c d c c l d c 智能卡 v ,a v a 卡a p i 卜j a v a 虚拟机 k v m | l c a r d v mr 一一。、r 一、r 、 、, j 2 m e 图1 2j a v a 目标市场分类 j a v a2 企业版( j a v a2p l a t f o 砷,e n t e 印r i s ee d i t i o n ,j 2 e e ) 用于企业服务于客户、供 应商和员工的可升级的服务器解决方案。 j a v a2 标准版( j a v a2p l a t f o m l ,s t a n d a r de d i t i o n ,j 2 s e ) 用于桌面计算机市场。 j a v a2 微缩版( j a v a2p l a t f o h n ,m i c me d i t i o n ,j 2 m e ) 用于各种小的资源受限的消 费类设备。 j a v as m a r tc a r d 用于智能卡的丌发。 1 2j 2 m e 平台体系结构 背景 随着无线应用与嵌入式系统的愈来愈受到人们的重视,s u n 也推出了j 2 m e 来迎合这一 趋势,j 2 m e ( j a v a 2 m i c m e d i t i o n ,j a v a 2 微型版) 的标准定义为“一种以广泛的消费性产 品为目标的、高度优化的j a v a 运行时环境”,通过j a v a 的特性,遵循j 2 m e 规范开发 的j a v a 程序可以运行在各种不同的小型设备上。j 2 m e 是s u n 公司为嵌入式丌发所定义的 一个框架,由一系列标准的规范所组成。所以j 2 m e 是一个协议簇,而不是单一的规范。 j 2 m e 是一个非常大的概念,下图表示出了j 2 m e 的适用范围。 馥塞蛭虫堂暄亟鲤窥生堂位迨塞 簋二至j 2 蜓撮述 1 6 b i t 处理器, 3 2 b i t 处理器, 1 2 8 k b 内存,电 :高性能,大内存桌面设备,p c 、 5 1 2 k b 内存 池供电 服务器设备笔记本c d c 设备:机顶 c l d c 设备;智 盒,智能家电 能手机,p d a i :“,v m c v mk v m 图1 3j a v a 虚拟机分类 k v m 和c v m 都是j v m 的子集。k v m 和c v m 均可被看作是一种j a v a 虚拟机一 它们是j 2 s ej v m 的压缩版,并特定于j 2 m e 。如同其他j a v a 版本一样,j 2 m e 保持了j a v a 技术的优点,即包括内建的跨产品的一致性在内的可移植性、安全网络传输和向上的可扩 展性。 一般来说,服务于信息产品市场的技术需要在如何配置计算技术和应用上有很大的灵 活性。需要这种灵活性的原因在于: 已经广泛存在的设备类型和硬件配置。 不同的设备对应用操作模块( 键盘操作,手写笔操作,语音操作) 需求的不同。 不断发展的技术。 已经存在于不同领域的各种应用。 j 2 m e 的思想就是要为创建动态可扩展、可联网的设备提供一个全面的应用丌发平台 以及为用户和嵌入式市场提供应用。为了适应不同的信息设备之间的差异,j 2 m e 平台的 最基本的要求不单是要资源占用小,而且还要求平台是模块化的和可定制的。 对于低端、资源受限的消费类产品,j 2 m e 环境支持j a v a 虚拟机和j a v a 库的最小配置, 这些仅仅包含设备最基本的功能。随着设备制造商在它们的设备上开发新的特性或者服务 提供商丌发新的应用,这些最小配置可以针对特定市场类别扩展额外的库。j 2 m e 最基本 的规范制定在j s r 一6 8 ,在此规范罩定义了j 2 m e 的技术架构,如下图所示: 厂商选择性实现 针对特殊硬件制定的高级a p i 定义硬件功能与低级a p i 图1 4j 2 m e 技术架构 直立邮生堂瞳亟婴塞生生鱼迨塞 笠二重。1 2 堑塑蕉 根据此规范,j 2 m e 由三种类型的规范堆栈而成,分别是配置( c o n f i g u r a t i o n ) ,描述 ( p r o f i l e ) 和可选包( o p t i o n a lp a c k a g c s ) ,最底层的配置规范定义了硬件所必须具备的能 力,配置规范中定义了一组低级的a p i ,这代表j a v a 至少必须提供的低级功能,这组低级 的a p i 就是核心类库的子集合。 在配置之上的规范称为描述。描述针对各种不同机器的特性定义了高级的a p i ,这些 高级的a p i 通常都是与其它平台不相关的扩充类库。这些高级a p i 决定了该种机器上j a v a 程序的撰写方法。 可选包是一组和其它规范( 或a p i ) 没有任何依存性的类库,由厂商决定提供一些特 定机器相关的功能给程序员。 1 3j 2 m e 平台体系结构的核心概念 在整体介绍了j 2 m e 丌发平台的体系结构之后,本节对该体系结构中的核心概念:配 置和描述进行深入探讨。 配置( c o n f i g u r a t i o n ) j 2 m e 将所有的嵌入式设备大体上区分为两种:一种是资源有限,包括运算功能有限、 电力供应有限、联机速度有限或是屏幕显示器大小与色彩有限的嵌入式设备;另一种则是 资源相对无限的设备,相对于前一种,这种设备通常运算能力相对较佳、并且在电力供应 上、联机速度上相对比较充足的嵌入式设备。 所有的嵌入式设备大致上可以先区分出这两种类型,然后j 2 m e 引入了配置的概念, 它 指定了支持的j a v a 编程语言的特征。 指定了支持的j a v a 虚拟机的特征。 指定了支持的基本j a v a 库和a p i 。 可见,配置为设备制造商和描述实现者定义了“最低公共标准平台”或者构建块。所有 具有大体相同的内存容量和处理能力的设备都要实现定义在配置中的所有特征。描述的实 现者必须遵循配置定义的特征。因此,通过配置就在描述和设备之阳j 实现了可移植性。为 了避免凌乱,目前只有两种标准的j 2 m e 配置可用,即连接设备配置( c o n n e c t e dd e v i c e c o 娟g u r a t i o n ,c d c ) 和有限连接设备配置( c o n n e c t e dl i m i t e dd e v i c ec o n f j g u r a l i 0 刀,c l d c ) , 如图所示。 直塞竖出堂瞳亟趔塞生堂僮迨塞墓= 薰2 堕煎述 图1 5j 2 m e 与j a v a 标准版配置的关系 在j 2 m e 环境中,c o n n g u r a t i o n 位于目标设备的嵌入式操作系统之上,包括两方面的 内容:一个是嵌入式的j a v a 虚拟机,根据配置的不同分为两种,即k v m ( k i l o b y t ev i r t u a l m a c h i n e ) 和c v m ( c o m p a c t e dv i r t u a lm a c h i n e ) ,另一个是支持虚拟机运行的最小库。正因为 它和j a v a 虚拟机的紧密结合,所以在核心j a v a 库中做一个很小的改动就要对虚拟机内部 进行较大的变动,维护这样的改动是昂贵和耗时的。因此,s u n 公司就在j 2 m e 体系结构 中引入配置层,而应用证明这种簧略是符合消费类和嵌入式工业的需求的。 描述( p r o f i l e ) 区分出两种主要的配置之后,j 2 m e 接着再定义出描述的概念。描述是架构在配置之 上的规范,它是处于特定配置之上的一组类库集合,同时为特定市场类别中的设备提供附 加的面向特定领域的功能。描述可以服务于两种截然不同的需求: 针对特定类型设备的描述( 面向设备的描述) ,为针对这一类设备的应用提供完 整的工具集。 针对几种不同设备类别的描述( 面向应用的描述) ,一种描述支持一组应用,这 些应用可能会用在几种不同设备类别上。例如,虽然机顶盒、传呼机、手机和洗 衣机之阳j 有相当大的差别以至于需要为每一种设备都创建一个单独的描述,但是 对于特定类型的个人信息管理来、蜕在这些设备之间实现可移植性是很有好处的。 这可以通过为这一类型的应用创建同一个描述来实现,同时还要确保每个目标设 备连同它们本身的针对特定设备的描述( 即面向设备的描述) 一起能够很好地支 持这个新描述。 如果说c o n f i g u r a t i o n 为应用程序提供了基础,那么p r o f i l e 则提供了应用程序的框架。 p m f i l e 定义了一整套j 2 m e 应用程序可用的a p i 类来针对给定配置创建。s u n 推出了2 种 可用的参考j 2 m ep r 0 6 l e :基础( f o u n d a t i o n ) 和移动信息设备p m n l e m i d p ( m o b i l e i n f o r m a t i o nd e v i c ep r o f i l e ) 。 基础p r o f i l e 主要用于c d c 配置,因而其虚拟机几乎等同于标准的虚拟机。这意味着, 使用基础p r o f i l e 的开发人员必须访问完整实现的j 2 s e 特性集。 6 亩裹艘曳堂琏獗蛆塞生堂位逾窒蓥= 童。1 2 婴援述 m i d p 连同功能较低的c l d c 配置一道为开发移动设备应用程序提供了最可能用到的 j a v a 平台。m i d p 支持j 2 s e 类库的有限子集,而且为在c l d c 配置上使用而定义了定制 的用户接口和输入输出类。 目前j 2 m e 对于配最和描述所组成的结构大致如下图所示 十。一”一“61“。 c l d c c l d c 、_ f o u n d 砒i o np 矗丘l c 上 p o n a l p r o l e m o b i l ci 幽n i l a t i o n d e v i c ep m 鼎i c 图1 5j 2 m e 配置及描述构成状况 在s u n 公司提出的j 2 m e 的体系结构中, 厂商选择性实现一( o p t i o n a lp a c k a g e s ) 除了c o n 矗g u r a t j o n 与p r o 矗j e 之外,在j 2 m e 规范中还定义了厂商选择性实现( o d i j o n a l p a c k a g e s ) ,这通常是一些本身具有独立价值的a p i ,厂商可以依照自己的需求,选择性 地实现其中某些o p t i o n a lp a c k a g e s 的规范。这些规范除了供j 2 m e 使用,还可能提供j 2 s e 使用。 厂商选择性包皆架构在特定c o n f i g u r a t i o n 之上,就技术兼容性来说,如下图所示。 l p 胁f o r c d c l p 倘l e 晒c l d c | - 。“- 一。 _“_。hh。”。”_。-+“、。 c d c j l 一+ j c l d c 图】6 厂商选择性包架构示意图 1 4k 虚拟机组成 j a v a 虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。k 虚拟机属 于有限连接配置c l d c 的一部分,是j 2 m e 体系结构的核心,本节将对k 虚拟机的特点和 结构进行深入的研究。 直立韭虫堂瞳亟硒究生堂位迨塞 簋二童j 2 蜓拯鲨 1 4 1 什么是k 虚拟机 j a v a 语言的一个非常重要的特点就是与平台的无关性。而使用j a v a 虚拟机是实现这一 特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代 码。而引入j a v a 语言虚拟机后,j a v a 语言在不同平台上运行时不需要重新编译。j a v a 语言 使用虚拟机技术屏蔽了与具体平台相关的信息,使得j a v a 语言编译程序只需生成在j a v a 虚 拟机上运行的目标代码( 字节码) ,就可以在多种平台上不加修改地运行。j a v a 虚拟机在执行 字节码时,把字节码解释成具体平台上的机器指令执行。 虚拟机实例的行为是分别按照子系统、内存区、数据类型以及指令这几个术语来描述 的。这些组成部分一起展示了抽象的虚拟机的内部抽象体系结构。下图是j a v a 虚拟机的结 构框图,包括主要子系统和内存区。 c l a 嫩件一匹墅骂 111 1r 1” 。 f i 方法区i 堆 j a v a 栈lp c 寄存|l 本地方 l 一jl 一 【 替一法螭 l执行引挚k 1 一 l,。, 1 :- _ - _ 二j 运行时数据区 本地方法接口 本地 方法库 图1 7j a v a 虚拟机的结构 每个j a v a 虚拟机都有一个类装载器子系统,它根据给定的全限定名来装入类型( 类或 接口) 。同样,每个j a v a 虚拟机都有一个执行引擎,它负责执行那些包含在被装载类的方 法中的指令。当j a v a 虚拟机运行一个程序时,它需要内存来存储许多东西( 字节码,局部 变量,返回值等) ,j a v a 虚拟机把这些东西组织到几个“运行时数据区”中,以便于管理。 尽管这些“运行时数掘区”都会以某种形式存在于每一个j a v a 虚拟机实现中,但规范对它 的描述是相当抽象的,这些运行时数据区结构上的细节,大多数都由具体实现的设计者决 定。 k 虚拟机( k v m ) 作为有限连接设备配置的一部分是一个专门为小型、资源受限设备 设计的j a v a 虚拟机。其高层设计目标是创建一个拥有以下特点的虚拟机: 直立邮出堂隆亟婴塞生堂位迨塞 蔓二重j 2 m e 避蕉 小型的,虚拟机核心的静念内存为3 0 5 0 k b ( 字节) 。 清晰的,拥有良好的注释和高可移植性。 模块化、可定制。 在不牺牲其它设计目标的前提下尽量完善和高速。 从应用方面考虑,k v m 是用于特定种类的设备,这类设备包括以下共有特性: 内存容量为3 2 2 5 6 k b 使用1 6 或3 2 位处理器 处理器速度为4 2 4 m h z 使用电池作为电源 无线连接 这类设备包括数字蜂窝电话、传呼机、个人信息管理器、便携式音频视频设备和小型 的零售付款终端等。 k v m 在目标设备上的任务会非常不同。在一些设备中,k v m 常常是位于本地软件栈 之上从而使设备可以下载j a v a 应用到虚拟机上并且运行这些应用。而在另一些设备中, k v m 被用于底层,同时也用j a v a 语言实现底层系统软件。 1 4 2k 虚拟机与j 2 s e 标准虚拟机的区别 为了满足有限连接设备对于内存和性能的要求,k v m 同j 2 s e 标准版的虚拟机比较有 以下不同: 不支持浮点数据类型( 没有f l o a t 和d o u b l e ) ,这是因为大多数c l d c 目标设备没 有硬件上的浮点支持,并且用软件支持浮点数的代价太大。 不支持j a v a 本地接口( j a v an “v ei n t e r f a c e ,i ) 。因为c l d c 提供的有限安全 模型要求本地函数机必须是封闭的。而且j n i 实现开销太大,违背了c l d c 目标 设备的严格内存限制。所以j 2 m e 去掉对了对j n i 的支持。 不支持用户定义的类装载器,去掉用户定义装载器是c l d c 规范对安全性限制的 一部分。k v m 有一个内建的类装载器不能被用户重载、替换或配置。 没有反射( r e n e c t i o n ) 特性 不支持映像( r e n e c t i o n ) 。 不支持线程组和守护线程。 不支持类实例( c l a s si n s t a n c e ) 终止过程处理( f i n a l i z a t i o n ) 。 不支持弱引用。 有限的错误处理( e r r o r h a n d l i n g ) 直立虹生堂瞳亟近塞生堂位途塞 蔓二重j 2 堑拯述 1 5c l d c 应用模型 c l d c 实现的核心是兼容j a v a 语言规范和j a v a 虚拟机规范的j a v a 虚拟机。虚拟机通 常运行在主机操作系统之上。在虚拟机之上是j a v a 库,这些库从大的范围分成两类: 由有限连接设备配置定义的库( c l d c 库) 。 c l d c 库定义了一个虚拟机的特性与i a v a 类库的最小子集,它为丌发人员提供了一个 最基础,最核心的j a v a 平台。 由描述例如m i d p 定义的库。 该层也包含一组a p i ,主要针对于特定的某一族系的设备而定义。 下图描述了虚拟机的主要框架 图1 8j 2 m e 虚拟机的主要框架 c l d c 的一些主要特性如下: 不支持l o n g 和f i o a t 数据类型。在从j 2 m e 继承的类中,所有使用这些数据类型 的方法都被删除了。 对c l d c 中的类,虽然提供了多个运行时异常处理,但运行时错误的数量已经大 大减少。实际中,只提供了以下三个错误: j a v a 1 a n g e r r o r j a v a 1 a n g o u t o f m e m o r y e r r o r j a v a 1 a n g v i r t u a i m a c h i n e e h d r 其他错误是由具体实现来处理的。 为了使垃圾收集简单,c l d c 不支持f i n a l i z a t i o n 。在j a v a 1 a n 昏o b j e c t 类中没有 f i n a l i z e 方法。 直塞竖血堂堕亟虹塞生堂位诠塞筮二重j 2 蟹煎蕉 c l d c 不支持j a v a n a l i v ei n t e r f k e ( 刷i ) ,消除依赖性的目的是使应用能够移植 到任何含有虚拟机的平台上去。 可以使用线程,但不能使用线程组( t h r e a dg r o u p s ) 或守护线程( d a m e o nt l l r e a d s ) 。 在标准版中,可以为了可能出现的垃圾收集而为对象做标记,但在c l d c 中不允 许这样做,换句话说,c l d c 不支持弱引用。 为了检查代码的构造是否良好,需要对类进行验证,在c l d c 中,这种验证是在 设备之外进行的,是通过预审器( p r e v e r i f i e r ) 来进行的。 c l d c 采用了一种不同的安全模型,与浏览器为下载a p p l e i 而采用的模型有些类 似。这样做的原因是标准版所采用的模型对小设备来说过于庞大,而被连接的设 备所需的安全性与浏览器的需求很类似。 1 6m i d p 应用模型 由于m i d ( m o b i l ei n f o h n a t i o nd e v i c e ) 这类设备,在屏幕、内存、处理器等问题上有 诸多限制,在手机或是p d a 等m i d 上开发应用程序必须要考虑一些技术上的特殊点。移 动信息设备描述( m i d p ) 并不支持在j a v a 2 平台标准版中引入的a p p l e t 模型。m i d p 引入 了一种新的应用模型,这种模型实际上是为了在扩展c l d c 应用模型的同时允许多个j a v a 应用共享数据以及在k v m 上并行运行。m i d p 建立于c l d c 之上,所以它致力于c l d c 忽略的以下领域: 应用程序生命周期管理( 加标记) m i d p 包含i a v a x 皿i c r o e d i t o n m i d l e t 包,其中的类和方法用来在主环境中启动、暂停和 关闭应用程序。 用户界面和事件 m i d p 还提供了j a v a x m i c r o e d i t o n 1 c d u i 包、其中的类和接口用来创建应用程序使用的 g u i 组件。 网络连接 通过提供h t t p c o n n e c t i o n 接口和h 1 v r p 协议的实现子集,m i d p 扩展了通用连接框架 的c o n t e n t c o n n e c t i o n 接口。 在设备上存储数据 m i d p 同时提供j a v a x m i c r o e d i t o n 咖s 包,该包实现了基于已录的数据库管理系统。 使用该包,应用程序可以把数据存储在设备上。 蠢斑监电堂瞳亟虹究生堂位迨塞 莹二重2 m e 拯整 1 6 1m i d l e t 在m i d p 中,基本的执行单元是m l d l e t 。m i d l e t 是扩展了j a v a ) ( m i c r o e d i t i o n m i d i e t 的类。与j a v a 印p l e t 类似,m i d l e t 应用程序在移动设备上运行时具有应用程序生命周期 它可能处于三种状态:暂停态( p a u s e d ) 、活动态( a c t i v e ) 、销毁态( d e s t r o v e d ) 。 当m i d l e t 成功地初始化之后,就丌始展丌了它的生命周期。如图所示,m i d i e t 的生 命周期完全由j a v a a p p l i c a t i o n m a l l a g e r 控制,当m i d l e t 要从一个状态变成另外一个状态时 j a v a a p p l i c a t i o n m a n a g 盯会调用对应的函数,如果状态转换时发生错误,那么j a v a a p p l i c “o nm a n a g e r 会丢出m i d l e t s t a t e c h a n g e e x c e p t i o n 异常。 n e w ( ) 图1 9m i d l e t 状念转换 要强调一点的是:只有当j a v a a p p l i c a t i o nm a n a g e r 认为m i d i e t 的状念必须改变时,才 会调用图中的相关函数,这些函数调用成功之后,j a v a a p p l i c a t i o nm a n a g e r 刊+ 会改变m i d l e t 的状态。因此,如果m i d l e t 自己调用这些函数,并不会发生错误,但是也不会造成状态的 转换,只是一个单纯的函数调用而己。 以下总结了m i d p 系统如何实现这样的状态转换。注意到所有的方法调用都是同步的, 因为在方法返回给调用者之前状态转换不会完成。 _ s t a n a p p :系统调用这个方法使m i d l e t 创建后第一次进入活动状态以及在m i d l e t 从暂停念恢复的时候进入活动念。 _ p a u s e a p p :在移动设备f 常操作的过程中,系统会遇到一些情况,需要挂起或者 暂停设备上的一些m i d l e t 。最常见的例子就是当设备内存运行缓慢的时候,为了 回收内存,系统会调用所有处于活动态的m i d l e t 的p a u s e a p p 方法。当m i d l e t 进 入暂停态后,会释放掉尽可能多的资源然后安静下来。需要注意的是m i d l e t 处于 暂停态的时候,系统并不真正强迫其具有任何特定的行为。因此有可能一个行为 直立鲣曳堂隧亟婴宜生堂焦途塞 墓= 童j 2 蜒拯述 不良的m i d l e t 并不会真f 的释放尽可能多的资源。在这种情况下,系统可能会强 行终止这个m i d l e t 甚至终止虚拟机本身。 - d e s t m y a p p 方法:这是系统终止m i d l e t 的一般方法。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 t e c h a n g e e x c e p t i o n 来请求保持执行状态。 m i d l e t 自身也可以控制自己的状态,这是通过先调用上述相对应的状念改变函数,然 后发出信息通知j a v aa p p l i c a t i o nm a n a g e r ,要求改变m i d l e t 的状态,方法如下图所示: 图1 1 0m i d l e t 事件触发 以下对上图所用的状态请求转换方法做一个小结: r c s u m e r e q u e s t :这个方法被处于暂停态的m i d l e t 调用来表明它希望重新进入活动 态,这种方法主要用在定时器时间到时。 _ n o t i f y p a u s e d :提供这个方法是允许m i d l e t 给系统一个信号说明它自动进入暂停态。 - n o t i f y d e s t m y e d :m i d l e t 可以调用这个方法通知系统其已经释放掉所有资源并且已 经将所有要保留的数掘保存到永久存储中。 1 6 2m i d l e t 套件 m i d p 应用模型的一个核心目标就是支持多个同时运行的m i d l e t 之间的数据和资源共 享。这就意味着必须考虑安全因素,为了完成这样的目标,m i d p 规范要求为了m i d l e t 之 间的共享数据和交互,它们必须被放到同一个j a r ( j a v aa r c h i v e ) 文件罩,这个封装起来 的m i d l e t 集合被称作m i d l e t 套件。在m i d l e t 套件中的所有m i d l e t 都共享一个名字空洲、 运行时对象栈和类的静态域。为了保护m i d l e t 套件提供者的安全性以及原始的意图,在 m i d l e t 套件中的m i d l e t 、类和文件不能被单独的安装、更新或者移走,它们必须强制成为 一个统一体。换句话说,在m i d p 中,安装、更新和删除的基本单元是m i d l e t 套件。 l3 直立些血堂瞳亟班究生堂位迨塞 墨二重1 2 竖拯述 在m i d l e t 套件包含以下的组件: 一附在j a r 文件中的j a v a 类文件, 描述j a r 文件内容的清单文件 附在j a r 文件中的资源( 如图像) 和j a v a 应用程序描述符文件( j a d ) 所有m i d l e t 使用的文件都放到m i d l e t 套件罩,通过使用标准的结构,将合法的类名 映射到套件中的目录和文件名。 m i d l e t 属性中以下几项是必需的: m i d l e t n a m e m i d l e t - v e r s i o n m i d l e t v e n d o r 每个m i d l e t 对应一个m i d l e t - m i c r o e d i t i o n p m f i l e m i c r o e d i t i o n c o n n g u r a t i o n 除了m i d l e t 套件外,m i d p 还提供了一个叫做应用描述符的单独的文件。应用描述符 允许系统在装载m i d l e t 的整个j a r 文件之前验证m i d i e t 套件是否与设备相匹配。它还允 许在不改变j a r 文件的情况下为m i d l e t 套件提供m i d l e t 属性。 应用描述符必须包含下面预定义的属性: m i d l e t - n a m e m i d l e t v e r s i o n m i d l e t v e n d o r m i d l e t j a r u r l m i d l e t j a r s i z e 通过验证m a n i f e s t m f 和文件描述符中m i d l e t n a m e ,m i d i e t v e r s i o n 和m i d l e t v e n d o r 属性的一致性来保证j

温馨提示

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

评论

0/150

提交评论