(计算机软件与理论专业论文)移动式java虚拟机的研究及改进实现.pdf_第1页
(计算机软件与理论专业论文)移动式java虚拟机的研究及改进实现.pdf_第2页
(计算机软件与理论专业论文)移动式java虚拟机的研究及改进实现.pdf_第3页
(计算机软件与理论专业论文)移动式java虚拟机的研究及改进实现.pdf_第4页
(计算机软件与理论专业论文)移动式java虚拟机的研究及改进实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

南京邮电学院硕士研究生学位论文摘要 摘要 j 2 m e 平台是由j a v a 平台衍生而来的、专门面向移动信息终端和嵌入式 设备的程序开发及运行平台。随着移动通讯和无线网络市场的蓬勃发展, j 2 n e 平台及其相关技术正日益成为一个研究的热点,众多国际著名的移动 设备制造商和运营商都在这一领域投入了大量的人力和物力。本篇论文从 j 2 m e 平台的基本概念、技术特点和体系架构等方面入手,首先让读者对j 2 m e 平台及其相关技术有一个感性的认识和了解。接着,作者介绍了j 2 m e 平台 上运行的一种移动式j a v a 虚拟机k 虚拟机的相关知识。随后,作者使 用大量篇幅详细介绍了k 虚拟机的核心技术之一垃圾收集算法的相关 知识,包括若干常见垃圾收集算法的特点和应用场合,分代式和保守式的垃 圾收集策略等。接着,作者在k 虚拟机参考实现1 1 版本的基础上,应用“分 代式”的垃圾收集策略,设计并实现了一种“双代式”的标记一清除一压缩 垃圾收集算法以及应用这种算法的垃圾收集器。并且,作者通过科学、合理 的采集和分析实验数据,验证了该算法的可行性和有效性。最后,作者提出 了一种在j 2 m e 环境下使用多线程机制来实现和优化网络传输的方法,构建 了个优化网络传输的多线程框架,并对网络传输过程中的一种常见问题一 一“丢包”问题进行了分析和探讨。 关键词:j a v a2 平台微缩版,k 虚拟机,垃圾收集算法,双代式, 有限连接设备配置,移动信息设备描述 南京邮电学院硕_ 上研究生学位论文 摘 要 a b s t r a c t t h ej 2 m ep l a t f o r mi sap m g m md e v e l o p m e n ta n dr u n n i n gp l a t f o r mt h a ti sd e r i v e d f r o mt h ej a v ap l a t f o r m a n dt a r g e t ss p e c i f i c a l l ym o b i l ei n f o r m a t i o n t e r m i n a l sa n d e m b e d d e dd e v i c e s a c c o m p a n y i n gw i t hb o o mo ft h em a r k e to fm o b i l ec o m m u n i c a t i o n a n dw i r e l e s sn e t w o r k ,t h ej 2 m ep l a t f o r ma n dm l a t a dt e c h n i q u e sa r eb e c o m i n ga ”h o t s p o t ”a b s o r b i n gg r e a tc o n c e r n s t h i st h e s i ss t a r t sf r o mb a s i cc o n c e p t s t e c h n i q u e t r a i t sa n dg e n e r a la r c h i t e c t u r eo ft h ej 2 m ep l a t f o r m ,p r o v i d i n gt h er e a d e rw i t ha s e n s i b l ec o g n i t i o na n du n d e r s t a n d i n go ft h i sp l a t f o r ma n dr e l a t e dt e c h n i q u e s t h e nt h e a u t h o rp r e s e n t sk v m ,as o r to fm o b i l ej a v av i r t u a lm a c h i n er u n n i n go nt h ej 2 m e p l a t f o r m ,a n di t sr e l a t e dk n o w l e d g e s u b s e q u e n t l y , t h ea u t h o rd e p i c t si nd e t a i lo n eo f k v mc o r et e c h n i q u e s - - g a r b a g ec o l l e c t i o na l g o r i t h m a n db ya d o p t i n gt h es t r a t e g yo f ”g e n e r a t i o n a lg a r b a g ec o l l e c t i o n ”,t h ea u t h o rd e s i g n sa n di m p l e m e n t sa k i n do f ”t w o - g e n e r a t i o n a l m a r k - s w e e p - c o m p a c t g a r b a g e c o l l e c t i o n a l g o r i t h m a n d c o r r e s p o n d i n gg a r b a g ec o l l e c t o ro nt h eb a s i so f t h ek v mr e f e r e n c ei m p l e m e n t a t i o n v e r s i o n1 1 f u r t h e r m o r e ,t h ea u t h o rf i n i s h e ds c i e n t i f i ca n dr e a s o n a b l eg a t h e r i n ga n d a n a l y s i so fe x p e r i m e n td a t a t ov e r i f yt h ef e a s i b i l i t ya n dv a l i d i t yo ft h i sa l g o r i t h m a tl a s t , u s i n gm u l t i p l et h r e a d sm e c h a n i s m t h ea u t h o rp r e s e n t sas o l u t i o no fi m p l e m e n t i n ga n d o p t i m i z i n g n e t w o r kc o m m u n i c a t i o nu n d e rj 2 m ee n v i r o n m e n t c o n s t r u c t sa m u l t i - t h r e a d e df r a m e w o r kf o ro p t i m i z e dn e t w o r kc o m m u n i c a t i o n a n dm a k e sa n a l y s i s a n dd i s c u s s i o nt ot h e ”l o s i n gp a c k e t s ”i s s u ei nt h en e t w o r kc o m m u n i c a t i o n k e yw o r d s :j 2 m e ,k v m , g a r b a g e c o l l e c t i o n a l g o r i t h m , t w o g e n e r a t i o n a l ,c l d c ,m l d p , 南京邮电学院硕七研究生学位论文 前言 月l j吾 随着无线通信技术的飞速发展,各种移动信息终端和嵌入式设备如手机、双向寻呼 机、掌上电脑、远程p o s 机等日新月异,层出不穷。为了对这一蓬勃发展的市场提供强 有力的软件技术支持,s u n 公司推出的j a v a 平台也适时地由一个统一的程序开发、运行 平台,细分为针对企业级应用的j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 平台、针对个人 p c 应用的j 2 s e ( j a v a2s t a n d a r de d i t i o n ) 平台和针对嵌入式设备和消费类电子产品 的j 2 m e ( j a v a2m i c r oe d i t i o n ) 平台。其中的j 2 m e 平台作为一个新兴的软件开发、 运行平台,从1 9 9 9 年出现至今,已经覆盖了从电视机顶盒、网络电视到移动电话、个人 掌上电脑、j a v a 智能卡的广泛的市场范畴。并且通过全球多家知名计算机和消费类电子 产品制造商的积极参与,制定了一系列严格的标准和规范,使得j 2 m e 平台不断的向更高、 更强的方向发展。这其中就包括有限连接设备配置( 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 l d c ) 规范和移动信息设备描述( 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 ) 规范。 作者从2 0 0 3 年年底开始在摩托罗拉全球软件集团,南京软件中心从事有关j 2 m e 仿 真平台的设计与开发,参与了该项目从需求分析、概要详细设计、编码、测试直至产品 发布的整个开发过程。通过积极参与项目,作者对j 2 m e 平台的发展状况、前景及各方面 技术进行了深入的学习和研究。并通过对j 2 m e 平台上应用的移动式j a v a 虚拟机中垃圾 收集算法等若干重要技术的研究和改进,完成了本篇论文,并完成了具体的代码实现和 实验数据的收集与分析。最后,论文中还描述了作者目前完成的改进实现中,尚且存在 的不足和缺陷,并预期在今后更加深入的研究中,进一步改进和提高现有的实现。 本论文共分为四个章节:第一章主要介绍j 2 m e 平台相关的基本概念和总体架构,以 及该平台上的应用程序_ m i d l e t 。第二章主要介绍j a v a 虚拟机( j v m ) 的相关知识, 尤其是j 2 m e 平台上应用的移动式虚拟机k 虚拟机。第三章介绍了j a v a 虚拟机中实 现垃圾收集技术的若干常见的算法及其应用场合;并且在现有k 虚拟机的基础上,设计 实现了一种“双代式”的标记一清除一压缩垃圾收集算法,并通过收集和分析该算法运 行样例程序所得的实验数据,验证该算法的可行性和有效性。第四章介绍了一种在j 2 m e 环境下使用多线程机制实现和优化网络传输的方法。 v i i 南京邮电学院硕士研究生学位论文图表 图1 1 图1 2 图1 3 图1 4 图1 5 图1 6 图1 7 图2 1 图2 2 图2 3 图2 4 图2 5 图3 1 图3 2 图3 3 图3 - - 4 图3 5 图3 6 图3 7 图3 8 图3 9 图3 1 0 图3 1 1 图4 1 图4 2 图4 3 图4 4 图4 5 图4 6 图表 j a v a2 平台分类8 j a v a 各版本及所针对的市场9 j 2 m e 平台体系结构的层次1 1 j 2 m e 配置和j a v a 标准版之间的关系1 2 j 2 m e 配置及描述的构成结构1 4 m i d l e t 可能处于的状态和状态间的转换1 5 m i d l e t 运行环境1 7 j a v a 运行时环境( j r e ) 2 2 软件实现的j v m 的基本结构2 3 k 虚拟机中的寄存器2 5 包含c l d ch l 技术的j 2 m e 设备的架构图2 8 k 虚拟机和c l d c 虚拟机性能范围的比较2 8 基于结点搬迁的垃圾收集算法3 5 动态存储空间的时间特性。3 6 对象头的结构一4 0 一个存储在j a v a 堆中的对象的基本结构图4 0 f r e el i s t 的结构图4 3 k v m 中内存分配函数与g c 函数之间的关系4 4 “双代式”的j a v a 对象堆4 5 “双代式”标记清除一压缩垃圾收集算法中对象头的结构4 7 “单代式”标记清除一压缩垃圾收集算法的实验结果5 0 改进后的“双代式”标记一清除一压缩垃圾收集算法的实验结果5 0 两种垃圾收集算法的实验结果的比照5 1 移动终端上的r t p 网络传输的架构,5 3 w i n d o w 平台上的r t p 网络传输的架构5 5 情况謦对应的顺序图5 6 情况盛对应的顺序图5 6 “事件处理函数”的基本流程图6 1 r t p 传输过程中“丢包”的几种情况6 2 v 1 南京邮电学院学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得南京邮电学院或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了 明确的说明并表示了谢意。 研究生签名:盘! ! 翌日期:巡! 垒甲 南京邮电学院学位论文使用授权声明 南京邮电学院、中国科学技术信息研究所、国家图书馆有权保留 本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其 他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一 致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布 ( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权 南京邮电学院研究生部办理。 研究生签名: 琏! 丑导师签名: 日期:碰幺f 够 南京邮电学院硎卜研究生学位论文第一章j 2 8 e 半台介绍 1 j 2 i e 平台介绍 本章主要介绍j 2 m e 平台总的体系架构和一些基本概念,特别重点介绍有限连接设备 配置( c 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 ) 和移动信息设备描 述( 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 1 j 2 m e 平台的发展历程及现状 j a v a 开发平台发展至1 2 版本后,正式更名为j a v a2 。这样做一来是为了显示j a v a 丌发平台相对于先前版本的重大改进和升级,二来是为了应对不同应用市场对j a v a 平台 的不同需求,于是从一个统一的j a v a 程序开发和运行平台中逐步细化出几个子类的平 台。目前来说,主要出现了以下四种平台: 1 i j a v a 2 企业版( j a v a 2e n t e r p r i s ee d i t i o n ,j 2 e e ) 平台:应用于企业服务器 市场,主要目标是协助企业服务于客户、供应商和员工等,例如电子商务、网 络内容服务等领域。 2 j a v a 2 标准版( j a v a 2s t a n d a r de d i t i o n ,j 2 s e ) 平台:应用于个人计算机市 场,在桌上型计算机( p c 或w o r k s t a t i o n ) 上开发和运行j a v a 程序。 3 j a v a 2 微型版( j a v a 2m o b i l ee d i t i o n ,j 2 m e ) 平台:应用于嵌入式设备、移 动设备市场,这一类设备的共同特点是资源受限,用户界面简单,移动性较好。 这一平台也是本文将要着重介绍和研究的一类平台。 4 j a v ac a r d 平台:应用于智能卡、智能芯片市场。 图卜一1j a v a2 平台分类 这四类平台之间的包含关系可以从图l 一1 中一目了然,也就是说,越往外的圆圈代 表的平台具有越完整的j a v a 核心类及库函数,扩展而成的应用程序接口a p i 也更加丰富。 8 南京邮电学院硕上研究生学位论文 第一章j 2 m e 平台介绍 反之拍i 然。而图l 一2 则进一步表明了j a v a2 平台各个版本的组成结构以及它们所针对 的目标市场。 j 2 m e 图1 2j a v a 各版本及所针对的市场 j 2 m e 平台自诞生伊始,逐步发展并完善,目前已形成以配置层( c o n f i g u r a t i o n l a y e r ) 和描述层( p r o f i l el a y e r ) 为核心的体系,还有一系列以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 ) 形式发布的a p i 集合,以及各个公司为本公司产品扩展生成的o e m a p i 。其中 应用最为广泛的配置层及描述层分别是c l d c 及m i d p ,它们主要应用于手机、个人数字 助理( p d a ) 、寻呼机以及p o s 终端等资源限制较为严格的设备上,它们目前在市场上主 流产品的版本分别是c l d c l 1 和m i d p2 o a 。自2 0 0 4 年年初以来,j 2 m e 平台的创造者和 主要推广者s u n 公司和m o t o r o a 公司f 在投入大量精力开发c l d c 的下一代版本c l d c h i ( c l d ch o t s p o ti m p l e m e n t a t i o n ,这将在后面的内容中进一步介绍) ,以及m i d p 的下 一个升级版本m i d p2 o b 。目前来说,全世界已有超过5 亿部移动信息设备、嵌入式设 备及智能终端安装了j 2 m e 运行时环境,并且世界上的几大移动设备制造商在其产品中也 都支持j 2 m e 平台。但同时也应看到,j 2 m e 平台正收到越来越多的挑战,其中以微软的 s m a r t p h o n e 平台,诺基亚的s y m b i a n 平台以及q u a l c o m m 的b r e w 平台的实力最为强劲。 j 2 m e 平台在激烈的竞争中,也逐步失去了一些市场份额。因此j 2 m e 技术的发展前景仍 9 南京邮电学院硕上研究生学位论文 第一章j 2 m e 平台介绍 然任重道远。 2 3 1 - 2j 2 m e 平台的特点及基本架构 1 2 10 2 m e 技术的特点 j 2 m e 技术与j 2 s e 、j 2 e e 技术类似,秉承了j a v a 技术固有的几个重要特性: 4 1 跨平台特性:同一份j a v a 执行代码在不同的平台上具有基本相同的运行效果。 2 安全特性:类文件格式检查、明确定义的应用程序编程接口等安全策略确保了 第三方j a v a 应用程序的行为是可靠的,不会对设备或者网络造成损害。 3 网络传输特性:j 2 m e 应用程序、内容和服务等都可以通过各种类型的网络动态 下载。 4 交叉平台的兼容性:使用j 2 m e 技术编写出来的j a v a 程序代码能够在j 2 s e 甚至 j 2 e e 平台上面,不加修改或很少修改就可以运行。 5 国际化特性:j 2 m e 技术提供的a p l 支持多国语言,并提供将u n i c o d e 与其他语 系文字相互转换的功能。 1 2 2j 2 m e 平台的基本体系架构 j 2 m e 平台定义了一套j a v a 的运行时环境( j r e ) 和开发环境,它包含了以下几个组 成部分: 1 安装在各种类型移动终端、嵌入式设备上的j a v a 虚拟机j v m 。 2 为一类性能相似的设备比如具有大体相同的内存容量和c p u 处理能力 规定的所谓“最小公分母”的特征和要求,形成这一类设备都必须至少遵守的 规范和必须支持的核心a p i 类库。也就是所谓的“配置( c o n f i g u r a t i o n ) ”。 3 针对某种类型的设备特别编写的若干a p i 类库的集合,为特定市场类别中的设 备提供附加的面向特定领域的功能。也就是所谓的“描述( p r o f i l e ) ”。 因此,j 2 m e 平台的体系结构从垂直角度来看,可以简单划分为如图1 3 所示的三 个层次: 1 0 南京邮电学院硕士研究生学位论文 第一章j 2 姬平台介绍 图1 3j 2 m e 平台体系结构的层次 1 3j 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 ) 进行详细的介绍。 5 6 1 3 1 配置( c o n f i g u r a t i o n ) 配置是为“横向”分类的设备类别定义了一个j a v a 平台,这个平台对于内存容量和 其他硬件特征具有相似的要求。更确切地说,配置指定了如下的几点特征: 指定了支持的j a v a 编程语言的特征 指定了支持的j a v a 虚拟机的特征 指定了支持的基本j a v a 类库和a p i 可见,配置为设备制造商和描述实现者定义了“最低公共标准平台”或者构建模块。 所有具有大体相同的内存容量和处理能力的设备都要实现定义在配置中的所有特征:描 述的实现者也必须遵循配置定义的特征。因此,通过配置的定义就在描述和设备之间实 现了可移植性。为了避免混乱,目前只定义了两种标准的j 2 m e 配置,即连接设备配置 ( 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 ) 和有限连接设备配置( 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 ) ,这两者之间的比较如表1 1 所示。这两类配置的划分 主要依据于设备的内存容量、带宽、功耗以及物理尺寸等方面的考虑,而不是根据其特 南京邮电学院碗l 研究生学位论文第一章j 2 m e 甲台舟绍 定的功能或者网络连接的类型来划分的。 _ 连接设备配置定位于高端消费类设备。这类设备具有处理大量用户接口的能力, 内存总量大约为2 兆到4 兆及以上,具有高带宽的网络连接,通常使用t c p i p 协议族。 - 有限连接设备配置定位于低端消费类设备。这类设备通常具有较简单的用户界 面,较小的内存容量( 大约1 2 8 k 字节) ,低带宽且非连续的网络连接。在这类产品中, 网络通信一般不是基于t c p i p 协议的,并且这类设各大多数依靠电池供电。 比较项目c d cc l d c j s r 序号j s r 一3 65 s r 一3 0 :c l d cv 1 0 j s r1 3 9 :c l d cv 1 1 r 心容量 2 5 6 e b加上r a m 、r o m 及f l a s h r o m 需耍 r o m 容量5 1 2 k b 在1 2 8 5 1 2 k b 之间 电源供应通常没有限制电力有限,通常是电池供电 网络连接必须具有网络连接能力通过有限的方式连接网络 虚拟机类型c v m k v m 表1 1c d c 与c l d c 的比较 图1 4 描述了c l d c ,c d c 和j 2 s e 之间的关系。如图所示,c l d c 和c d c 的大部分功 能派生自j 2 s e ,这些派生的类必须完全与j 2 s e 中对应的类相符合或者是其子集。另外, c l d c 和c d c 也可以引入一些非j 2 s e 具有的特征,这些特征是专门为小型设备设计的。 图1 4j 2 m e 配置和j a v a 标准版之州的关系 在j 2 m e 环境中实现配置层的最主要的原因是跨不同j a v a 平台实现的j a v a 核心库总 是与j a v a 虚拟机的实现紧密结合在一起。在j a v a 核心库中一个很小的差别就需要对相 1 2 塑室些坠学疃塑上研究生学位论文第一章j 2 m e 甲台介绍 应的j a v a 虚拟机的内部设计进行较大的改动。维护这样的改动是非常昂贵和耗时的。因 此,通过在j 2 m e 体系结构中引入配置层可以减少虚拟机类型的数量,有很少数量的配置 意味着很少数量的j a v a 虚拟机实现就可以满足大量的描述和不同硬件设备类型的需求。 这对j 2 m e 技术在消费类和嵌入式设备市场中获得成功并带来效益是非常重要的。 1 3 2 描述( p r o f il e ) j 2 m e 平台提出描述的概念是为特定的纵向市场类别或者设备类别,定义一个j a v a 平台。简单地说,描述是处于特定配置之上的一组类库的集合,同时为特定市场类别中 的设备提供附加的面向特定领域的功能。描述可以服务于两种截然不同的需求: 针对特定类型设备的描述( 面向设备的描述) ,为针对这一类设备开发的应用程 序提供完整的工具集。 _ 针对几种不同类型设备的描述( 面向应用的描述) :一种描述支持一组应用,这 些应用可能会用在几种不同设备类别上。比方说,虽然机顶盒、传呼机、手机和洗衣机 之间有相当大的差别以至于需要为每一种设备都创建一个单独的描述,但是对于特定类 型的个人信息管理来说,在这些设备之间实现可移植性是很有好处的。这一点可以通过 为这些类型的应用创建一个共同的描述来实现,同时还要确保每个目标设备连同它们本 身的针对特定设备的描述( 即面向设备的描述) 能够一起很好地支持这个新的描述。 个设备有可能支持若干个描述,这些描述中的一些是面向设备的而另一些则是面 向应用的。一个为特定描述编写的应用程序只能使用该描述所定义的特征。设备制造商 可以选择他们的产品要支持哪个或哪几个描述,但是必须实现所选择的描述的所有特征。 对消费者来说这种要求的价值就是为一种特定的描述所写的应用程序可以在任何支持这 种描述的设备上运行。 描述就是应用和纵向市场类别之日j 的“合同”。由于在相同市场类别中的所有设备都 要统一仅仅使用在描述中定义的特征,因此,通过描述就实现了在应用和设各之间的可 移植性。目前j 2 m e 对于配罱和描述所组成的结构大致如图l 一5 所示: 南京邮电学院倾 聊f 究生学位论文第一市j 2 m e ,f 台介绍 图1 5j 2 m e 配置及描述的构成结构 1 4j 2 舡平台上的虚拟机_ k 虚拟机 k 虚拟机 7 属于有限连接配置c l d c 的一部分,是j 2 m e 体系结构中c l d c 配置的核心, 也是目前市场中使用最广泛的针对j 2 m e 平台开发的虚拟机。这种虚拟机最大的特点是其 尺寸是以干字节衡量的也就是它的名字的由来大约只有普通j a v a 虚拟机尺寸 的i i 0 ,这也是为了满足移动终端和嵌入式设备中有限的存储资源( 不超过几百k b ) 和 较弱的处理器能力( 1 6 3 2 位微处理器,主频不超过i o o m h z ) 。k 虚拟机典型的应用在手 机、传呼机、p d a 、便携式音频视频播放器和小型的零售付款终端等设备上。在2 2 节 中将对k 虚拟机的特点和结构进行深入的介绍。 1 5 j 2 m e 平台上的应用程序 1 5 1m i d i e t 及其各状态之间的转换 8 在j 2 m e 应用程序中,基本的执行单元称为m i d l e t ,它是继承自j 2 m e 扩展类 j a v a x m ic r o e d i t i o n m i d l e t 的类。在m i d l e t 的生命周期中,它可能处于以下三种状念 之一,如图1 6 所示: _ 暂停念( p a u s e d ) :当一个m i d l e t 刚好被启动但是还没有进入它的s t a r t a p p 方 法的时候就处于暂停念,调用p a u s e a p p 或n o t i f y p a u s e d 方法也会使得m i d l e t 进入暂停念。当处于暂停态时,m i d l e t 只是占用尽可能少的资源,而处于暂停 态的m i d l e t 同样能够接受异步消息的通知。 活动态( a c t i v e ) :当m i d l e t 进入它的s t a r t a p p 方法时就会处于活动态。另外, 调用r e s u m e r e q u e s t 方法的结果会使m i d l e t 从暂停态转换到活动态。当处于活 动态时,m i d l e t 为达到最佳执行效率需要分配和保持一定的资源。 14 南京邮电学院硕士研究生学位论文第一章j 2 w e 平台介绍 一销毁态( d e s t r o y e d ) :当m i d l e t 从d e s t r o y a p p 或n o t i f y d e s t r o y 方法返回之后, 它就处于销毁态并且不能再重新进入任何状态。 n e w ( ) 图1 6m i d l e r 可能处于的状态和状态间的转换 m i d l e t 状态间的转换可以由m i d p 系统自身触发或者由应用程序触发,以下总结了 m i d p 系统如何触发这样的状态转换。因为在m i d l e t 程序的方法返回调用者之前,m i d l e t 的状态转换不会完成,因此以下所有的方法调用都是同步执行的。 _ s t a r t a p p 方法:m i d p 系统调用这个方法使得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 占用的临时资源。 最常见的例子就是当设备空闲内存量减少,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 处于暂停态时,系统并不真正强迫其执行任何特定的行为,因 此有可能有个别行为不良的m i d l e t 并不会真正的释放尽可能多的资源。在这种 情况下,系统可能会强行终止这些m i d l e t ,甚至终止虚拟机本身。 一d e s t r o y a p p 方法:这是m i d p 系统终止m i d l e t 运行的一般方法。该方法由一个 布尔型参数来指明这个请求是否是无条件的。如果请求不是无条件的,并且该条 件得不到满足,那么该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 ti o n 来要求保持在可执行状态。 虽然m i d p 系统是m i d l e t 状态转换最主要的触发者,但是程序员也可以通过以下的 方法调用来请求m i d l e t 的状态转换: 堕至型里堂堕塑主堡窒生堂垡鲨塞第一章j 2 w e 平台介绍 r e 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 给m i d p 系统一个信号表明它 已经进入暂停态。 n o t i f y d e s t r o y e d 方法:m i d l e t 可以调用这个方法通知m i d p 系统,它已经执行 完毕,并且已经释放掉所有的资源,以及将所有需要保留的数据保存到存储介质 中。 1 5 2m l d l e t 墨萋件一一m i d i e ts u i t e m i d p 应用模型的一个重要目标就是支持多个同时运行的m i d l e t ,以及它们之间的数 据共享和资源共享。为了达到这样的目标,m i d p 规范 9 要求所有同时运行的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 ts u i t 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 p 系统中,安装、更新和移除的基本单元都是m i d l e t 套件。m i d l e t 套件包括以下组成部分: 运行时执行环境 m i d l e t 套件的包装内容 应用程序描述符 应用程序生命周期 后面的几节内容将分别对这四个组成部分作较为详细的说明和阐述。 1 5 3 d i e t 套件运行时执行环境 m i d p 规范 9 定义了在一个套件中的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 提供其运行所需的各类数据和资源, 包括: 实现c l d c ( 包括k v m ) 功能的类和本地代码 1 6 南京邮电学院硕t 研究生学位论文第一章j 2 m e 平台介绍 实现m i d p 运行时功能的类和本地代码 j a r 文件中执行所需的所有类文件和非类文件资源文件,如图标文件或映象 文件,它们可以通过方法j a v a 1 a n g c l a s s g e t r e s o u r c e a s s t r e a m ( ) 来访问。 应用程序描述符文件的内容,其可以通过方法 j a v a x m i c r o e d i t i o n m i d l e t m i d l e t g e t a p p p r o p e r t y ( ) 来访问。 目标设备上任何可用的a p i ,如其他辅助j s r 、许可开放类以及可选包的实现等。 比如r m s ( r e c o r dm a n a g e m e n ts y s t e m ,记录管理系统) 就占用单独的一个名字 空间。 运行时执行环境在逻辑上由图l 一7 所示的名字空间组成,这个名字空间决定了一 个m i d l e t 如何访问名字空间中的实体。 图1 7m i d l e t 运行环境 套件中各个m i d l e t 需要的所有类都必须存在于c l d c 和m i d p 库,或者j a r 文件中。 m i d l e t 可以装载存在于j a r 文件、m i d p 库或者c l i ) c 库中的任何类并调用其中的方法。 在这三个范畴中的所有类,连同包含m i d l e t 对象的单独的堆、m i d p 库和c l d c 库在执行 南京邮电学院硕士研究生学位论文第一章j 2 旺平台介绍 环境里都是共享的。在必要的时候。可以使用j a v a 语言中的互斥锁和同步机制来处理并 发问题和冲突问题的发生。 1 5 4 d i e t 套件的包装内容 在m i d l e t 套件j a r 文件中包含以下的部分: _ 各个m i d l e t 使用的类文件以及各m i d l e t 之间共享的类文件。 m i d l e t 所需的类使用标准的结构存放在j a r 文件中,基于将完整的类的名字映射为 目录和文件名,即每个号被转换成一个前向的斜线,并且在最后面添加 上c l a s s 的扩展名。比如,一个名为c o m s u n m i c r o e d i t i o n t e s t 的类就会以 c o m s u n m i c r o e d i t i o n t e s t c l a s s 的名字存放在j a r 文件中。 - m i d l e t 使用的所有资源文件,例如图标或映像文件。 m i d l e t 套件的开发人员有责任为套件创建和发布不同的以上类别的组件,以使 m i d l e t 套件能适合于不同的目标用户、设备、网络、区域和权限。比方说,对于某一特 定的区域,资源文件中应当包含为该区域定制的字符串和图像。 _ 一个名为m a n i f e s t m f 的文件,用于描述各个m i d l e t 的属性。 至于m a n i f e s t ,m f 文件,其中保存了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 a n i f e s t m f 文件中都只能出现一次,如果重复出现则效果是无法预期的。当m i d l e t 运行时可以调用m i d l e t g e t a p p p r o p e r t y ( ) 方法将属性的值传入m i d l e t 。m i d p 规范中预 先定义了一些属性,它们是: m i d i e t - n a m em i d l e t d a t a s i z e m i d l e t v e r s i o n m i c r o e d i t i o n p r o f i l e m i d l e t v e n d o r m i c r o e d i t i o n c o n f i g u r a t i o n m i d l e t i c o n m l d l e t p e r m i s s i o n s m i d l e t d e s c r i p t i o n m i d l e t p e r m i s s i o n s o p t m i d l e t i n f o - u r l m i d l e t p u s h 一 m i d l e t 一 m i d l e t i n s t a l l 一n o t i f y m i d l e t j a r u r lm i d l e t d e l e t e n o t i f y m i d l e t j a r s i z e m i d l e t d e l e t e c o n f i r m 1 8 南京邮电学院硕士研究生学位论文第一章j 2 9 e 平台介绍 其中有下列几项属性在m a n i f e s t m f 文件中是必需的,而其他的属性是可以选择的。 另外还可以包含一些针对特定应用程序设置的、不以“m i d l e t - ”或“m i c r o e d i t i o n 一”开 头的特殊属性。 m i d l e t n a m e m i c r o e d i t i o n p r o f i l e m i d l e t v e r s i o n m i c r o e d i t i o n c o n f i g u r a t 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 - 1 5 5 d i e t 套件的应用程序描述符 m i d l e t 套件( j a r 文件) 通常还伴随有一个称为应用程序描述符( j a v aa p p l i c a t i o n d e s c r i p t o r ) 的单独文件,这个文件与m i d l e t 套件中的m a n i f e s t m f 文件一起来配置m i d l e t 的一些特定属性。该描述符文件允许在系统装载m i d l e t 套件的整个j a r 文件之前,验证其 中的m i d l e t 是否适合于目标设备。而且,它还允许在不改变j a r 文件的情况下为m i d l e t 设 置特定的属性。这种特殊的描述符文件的扩展名是j a d 。它的m i m e 类型是: t e x t v n d s u n j 2 m e a p p d e s c r i p t o r 。应用程序描述符必须包含以下一些预定义的属性, 其他可包含的属性以及对所包含属性的一些限制都

温馨提示

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

评论

0/150

提交评论