届本科生毕业论文.doc_第1页
届本科生毕业论文.doc_第2页
届本科生毕业论文.doc_第3页
届本科生毕业论文.doc_第4页
届本科生毕业论文.doc_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

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

文档简介

届本科生毕业论文(设计)摘要:本文在介绍Java的基础上,详细论述J2ME体系结构,通过设计和开发基于J2ME的日程. 本篇论文的工作是在我的导师王文伟副教授的悉心指导和关怀下完成的,王老师的.关键词:论文,设计类别:论文报告来源:牛档搜索(Niudown.COM)本文系牛档搜索(Niudown.COM)根据用户的指令自动搜索的结果,文中内涉及到的资料均来自互联网,用于学习交流经验,作品其著作权归原作者所有。不代表牛档搜索(Niudown.COM)赞成本文的内容或立场,牛档搜索(Niudown.COM)不对其付相应的法律责任!2001 届本科生毕业论文(设计) 存档编号: 武 汉 大 学毕 业 论 文( 设 计 )题目:基于Java平台的移动设备应用系统设计 学院:电子信息学院 专业:通信工程 学号:200131490049 姓名:龙涛 指导老师:王文伟 副教授 2005 年 6 月 8 号 Bachelors Thesis of Wuhan UniversityApplication Development of Mobile Devices Based on JAVA TechnologyLONG TAO June 2005武汉大学学士论文 摘要 摘 要当今世界的信息以不可思议的速度增长,信息的改变速度如此之快,以至于 “及时的知识才是力量”。人们需要时时刻刻和Internet保持联系,只有这样才能及时获得想要的信息。在移动通信业的飞速发展下,PDA、手机等嵌入式设备已经具备了网络连接能力,但是这些设备由于本身的接口特性和特殊的构造限制了基于这些设备的程序设计。Java微型版(J2ME)的出现在一定程度上解决了这些问题。J2ME是一种把Java语言应用于嵌入式系统的软件开发模式,它定义了配置和简表两个核心概念,它们共同构成了J2ME的体系结构,这些结构特性使J2ME非常适合移动设备的程序设计。本文首先介绍J2ME体系结构和各模块的特点。接着以一个 “个人日程管理”应用系统为例,着重讨论设计开发过程中的问题。关键字:J2ME ;MIDP ;CLDC;个人日程管理AbstractThe rate at which information is produced in todays world is mind-boggling. The information is changing by every minute and todays corporate mantra is not knowledge is power but Timely knowledge is power. People want information on the go and want to be connected all the time to the Internet. The rapid advancement of Technology in the field of miniaturization and that of communications has introduced a lot of roaming devices for people to connect through to the network like, PDA, mobile phones and many embedded devices. Programming for these devices were cumbersome and limited since each device supported their own standard I/O ports, screen resolution and had specific configurations. The introduction of Java 2 Micro Edition (J2ME) has solved this problem to some extent. J2ME is a kind of software development mode, which uses Java language in the embedded systems. It is divided into configuration and profiles, which provide specific information to a group of related devices. Mobile devices can be programmed using J2ME. This paper introduces the architecture of J2ME and features of each module firstly. Then an example applicationPersonal Canvas Management be discussed with the special concerns about the problems during the design and the development. Keywords: J2ME ;MIDP ;CLDC;Personal Canvas Management武汉大学学士论文 目录目 录摘 要III目 录IV第1章 前言51.1 无线应用51.1.1 无线应用的背景51.1.2 无线Java 技术51.2无线应用开发51.2.1 无线开发的困难51.2.2 无线应用开发平台简介51.3 无线应用的领域及发展前景51.3.1 游戏娱乐51.3.2 信息服务51.3.3电子商务51.3.4企业应用51.4 课题的研究内容及预期效果5第2章Java语言概述52.1 Java特点和目标52.2 Java虚拟机5第3章J2ME介绍53.1 J2ME的核心概念53.1.1 Configuration53.1.2 Profile53.1.3 KVM53.2 主要的J2ME Configuration和 Profile53.2.1 CLDC53.2.2 CDC53.2.3 MIDP53.2.4其它Profile简介53.2.5J2ME的整体环境53.3 J2ME平台无关性和兼容性53.3.1 平台无关性53.3.2 Profile之间的相容性53.3.3 J2ME 与J2SE的兼容性53.4移动通信设备上的J2ME平台53.5 J2ME的优点53.6 J2ME的前景5第4章MIDP的持续数据存储和网络通信功能54.1 MIDP对持续性数据存储的支持54.1.1记录文件创建54.1.2记录文件的添加54.2 MIDP网络通信功能54.2.1 MIDP中网络功能的基本结构54.2.2 MIDP通用连接类型54.2.3 MIDP的HTTP连接54.2.4通过HTTP下载PNG文件5第5章 手机应用软件开发介绍55.1 手机硬件平台特点55.2 手机操作系统介绍55.3手机MIDP应用程序开发流程55.4 J2ME无线应用开发工具55.4.1基本开发工具55.4.2 J2ME WTK 开发工具55.4.3 IDE工具55.5 J2ME开发环境实现55.7 MIDlet 程序开发的基本方法55.8 MIDP程序主要类的介绍55.8.1 MIDP程序类MIDlet55.8.2 Display类55.8.3 菜单命令类Command55.8.4 CommandListener接口与菜单命令的处理5第6章 利用WTK开发应用系统56.1创建项目56.2编写代码并运行5第七章 总结与展望5参考文献5致谢532武汉大学学士论文 前言第1章 前言1.1 无线应用1.1.1 无线应用的背景随着电子技术和无线通讯技术的发展,手机、传呼、PDA(Personal Digital Assistant,个人数字助理)等小型消费类和嵌入式设备已经在人们的生活中发挥着越来越重要的作用。与此同时,Internet的飞速发展也使人们越来越依赖Internet上可以得到的信息,而且人们也不满足手机、PDA等设备出厂时所带有的固定的有限功能,而是希望像计算机一样,能够方便的为手机、PDA等小型消费类和嵌入式设备安装各种需要的应用软件,而不是重新购买新的设备。1.1.2 无线Java 技术Java技术起源于20世纪90年代初期SUN 公司的Green Project和Oak编程语言,这种语言后来被重新命名为Java。它被开发出来是为小型消费类和嵌入式设备提供一个面向对象的、与机器无关的编程语言,可实现“编写一次,随处运行”,但后来却发展成为一种开发桌面应用和服务器应用的平台技术。到20世纪90年代末,随着小型消费类和嵌入式设备市场发展成熟,SUN公司针对小型消费类和嵌入式设备的Java应用开发、运行平台J2ME。随着Java技术的发展,为了适应不同的应用开发者和不同的运行环境,SUN 公司在1999年下半年将Java技术分为三个不同的版本: Java2 平台标准版(Java 2 Platform ,Standard Edition, J2SE)它是一组针对传统桌面应用的API和运行环境。 Java2 平台企业版 (Java 2 Platform ,Enterprise Edition, J2EE)它是J2SE的扩展集,主要用于在服务器开发可伸缩、可迁移、以数据库为核心的企业应用。 Java2 平台微型版 (Java 2 Platform, Micro Edition, J2ME)它定义了一组针对消费类和嵌入式设备的API和运行环境,这些设备包括:移动电话、PDA、TV set-top boxes(电视机顶盒)以及其它缺乏足够的资源去支持J2SE的设备。J2ME拥有Java技术本身的各种特点:平台无关性、网络安全性等等。并且,J2ME提供了HTTP高级Internet协议, 使手机等移动信息设备能以客户端/服务器的方式直接访问Internet的全部信息,不同的客户端访问不同的文件,此外还能访问本地存储区,实现交互式服务。自从J2ME推出后,得到了广大的消费类和嵌入式设备制造商,服务提供商和程序开发者的支持。1.2无线应用开发1.2.1 无线开发的困难由于小型消费类和嵌入式设备自身的特点,如:计算能力有限,内存有限,输出、输入设备的特殊性,使得无线应用开发与桌面或企业计算应用开发有很大的不同。对桌面和企业计算应用来说,开发平台通常与部署环境相同,可以通过高速有线网络与应用系统建立联系。但无线设备的情况正好与之相反,在过去很长一段时间里,无线设备都处于处理器性能低下,内存和图形用户接口资源有限、网络连接速度慢而且不可靠的状况中。目前,在针对无线设备的应用开发时,开发者面临三个主要问题:开发工具的适用性实际的无线测试环境可靠的和可伸缩的服务支持造成这些问题的部分原因是缺少针对无线设备的开发和一致性的应用开发环境,以及缺少适当的无线应用基础设施。尽管无线应用开发有诸多困难,但是无线应用开发仍然取得了飞快的发展,并且随着J2ME开发平台的发布,使很多问题得到了较好的解决。1.2.2 无线应用开发平台简介BREW(Binary Runtime Environment For Wireless)平台是美国高通公司为无线设备提供的开放式标准平台,是无线应用程序开发、设备配置、应用程序发布以及记费和支付的完整的端到端的解决方案的一部分。利用该系统,可以轻松的将开发者开发的应用程序投入市场并协调记费和支付过程。该平台的缺点是,主要是用C语言来开发,而且,全球34家运营商采用了Java ,而只有8家运营商采用BREW,它的应用范围相对较小。Java平台是SUN公司发布的用于消费类和嵌入式设备应用程序开发的J2ME,是一组规范和标准的集合。它定义了一组Java虚拟机,每种用于不同的小型设备,满足不同的需求;还定义了一组可以运行在各种虚拟机上的库和API;同时还提供了部署设备配置需要的各种工具。J2ME为创建小型设备上使用新近的网络应用程序提供了完整的解决方案,它允许设备制造商、服务提供商和应用程序开发者为自己的客户部署新的应用和服务。目前,针对手机、PDA等移动信息设备的J2ME技术由KVM(K Virtual Machine )和一组API 组成,这组API 适合于为手机、PDA等一定信息设备提供经过剪裁的运行环境。KVM本身仅仅需要40-80KB内存、20-40动态内存,能够运行在16位25MHZ处理器上。J2ME为移动互联引入了一种新的模型,即允许手机、PDA等便携设备可以从Internet上下载各种应用程序,这将使设备的功能可以无限扩展,并且可以离线运行应用程序。1.3 无线应用的领域及发展前景现在绝大多数的手机已经能够支持Java技术,并且广泛地采用了J2ME平台。分析当今主流的应用成果,大致可归纳为娱乐游戏、信息服务、电子商务、企业应用等几大类。1.3.1 游戏娱乐游戏娱乐是当前应用比较普遍、应用种类也比较繁多的一种应用。通过GRPS网络,可以让支持Java的手机用户下载各种小游戏、视频、图片、音乐、电子小说等。电子消费类的J2ME应用,已经成为电信运营商推动增值服务的核心业务。1.3.2 信息服务信息服务是通过HTTP连接服务,以J2ME应用实现新闻、证券信息、天气预报、生活、公共设施等信息资讯的点播服务,这一类服务也成为运营商大力推广的业务模式之一。还可以使全球定位系统与Java手机相结合,利用J2ME的图形处理能力绘制地图,反馈设置信息,从而为特殊用户提供可视位置信息服务。1.3.3电子商务无线电子商务通过J2ME提供的信息安全、传输技术,实现手机银行、无线交易、股票查询等应用系统,当前由于消费市场信用度,同时涉及到银行和通信两个领域的合作还有很多问题没有解决,因而没有得到大力的发展。1.3.4企业应用企业无线应用是结合企业内部业务管理系统实现无线办公环境,这类系统主要针对企业拥护,应用需求比较分散,常见的有接入到企业内部办公系统数据库的无线办公自动化系统、业务信息处理系统。1.4 课题的研究内容及预期效果自SUN公司发布J2ME无线开发平台以来,基于J2ME的无线应用得到了很大的发展。作为Java 2 平台的一部分,J2ME 与J2SE、 J2EE一起,为无线应用客户端和服务器建立了完整的开发和部署环境。但是由于受到无限移动设备内存、CPU、输出/输入设备等资源的限制,使得无线应用开发与桌面或企业应用开发有很大的不同。本文在介绍Java的基础上,详细论述J2ME体系结构,通过设计和开发基于J2ME的日程管理应用系统实现了日期的分类显示以及日程的编辑添加和下载等内容,讲述了MIDP应用开发的相关技术。主要有:MIDP应用模型MIDlet, Eclipse开发环境以及利用WTK开发包开发的过程等详细内容。武汉大学学士论文 Java语言概述第2章Java语言概述2.1 Java特点和目标在Sun公司的白皮书中,是把Java定义成为“简单的、面向对象的、分布式的、解释性的、可靠的、安全的、体系结构中立的、可移植的、高性能的、多线程的动态语言”。Java语言的众多特点使得它有着广泛的用途,它与Web 和Internet紧密的结合,并且在移动设备中被广泛使用,具体说来它有以下主要特点:简单性Java是一种简单的语言。语言的设计者尽量把语言的构造规模变小,通过提供最基本的方法完成指定的任务,Java取消了许多语言中十分繁琐和难以理解的内容,例如C+的指针、运算符重载、类的多继承等,并且通过实现自动垃圾收集,大大简化了程序设计者的内存管理工作。面向对象Java是一种面向对象的语言。这里的对象是指应用程序的数据及其操作方法。Java的程序设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型,实现了模块化和信息封装。所有面向对象的编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。封装是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据不受外部干扰且不被误用。Java封装的基本单元是类。一个类定义了将被某个对象集体共享的结构和行为(数据和代码)。一个给定类的每个对象都包含这个类定义的行为和结构,好像他们是从同一个类的模子中锻造出来的,所以类是一种逻辑结构,而对象是真正存在的物理实体。继承是一个对象获得另一个对象的属性的构成。继承支持了按层分类的概念。如果不使用层级的概念,我们就不得不定义每个对象的所有属性,但是使用了继承,一个对象就只需要定义是它在所属类中独一无二的属性即可,因为它可以从它的父类那里继承所有的通用属性。继承性和封装性相互作用,如果一个给定的类封装了某个类一些属性,那么它的任何子类将具有同样的属性,并且还添加了子类自己特有的属性。多态性是允许一个接口被多个同类动作使用的特性,具体使用哪个动作与应用场合有关。多态性的概念通常被说成是“一个对外接口,多个内在实现方法”。这意味着可以为一组相关的动作设计一个通用的接口,多态性允许同一个接口被不是同一类的多个动作使用,这样就降低了程序的复杂性。平台无关性Java有句名言:“编写一次,随处运行”( Write Once, Run Anywhere),这句话反映了Java的平台无关性。Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。可靠性Java最初设计的目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C+,但它消除了许多C+不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等由动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。安全性由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。上述几种机制结合起来,使得Java成为安全的编程语言。多线程线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。C和C+采用单线程体系结构,而Java却提供了多线程支持。Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收以及系统维护等系统级的操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动、运行、终止线程,并可检查线程状态。2.2 Java虚拟机Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。因为Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。它主要支持byte、short、int、long、float、double、char等Java语言的基本数据类型。Java虚拟机由五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap)、一个方法区域。这五部分是Java虚拟机的逻辑成份,不依赖任何实现技术或组织方式,但它们的功能必须在真实机器上以某种方式实现。武汉大学学士论文 J2ME介绍第3章J2ME介绍3.1 J2ME的核心概念J2ME是SUN 公司专门为消费类和嵌入式设备提供的Java应用程序开发平台和运行环境。它整合了以下三个方面的需求:消费者和设备制造商都希望生产多样性的信息设备。服务提供商希望通过这些设备将内容传递到他们的用户。在消费和嵌入式设备领域中,各种设备的硬件存在相当大的差异。例如:内存从几百K到几十M,CPU从低功耗的嵌入式处理器到206MHz的RISC处理器。面对上面的需求,这就使得J2ME需要有不同的层次和类别来适应这个复杂的领域。为了在消费类和嵌入式设备上应用Java技术,同时不失去Java技术的特性,即跨平台兼容性和网络安全性,J2ME定义了两个核心概念:Configuration(配置) 和Profile(简表),他们共同构成了J2ME的体系结构,如图3-1所示。图3-1 J2ME高层体系结构3.1.1 ConfigurationConfiguration是个规范,它定义了基本的J2ME运行环境,包括虚拟机和一组来自J2SE的核心类子集。它主要的目的是针对消费性电子产品的网络连接能力、处理器速度、内存等特性为之分类。每一个Configuration都对应于一组具有相同或类似计算能力的设备。目前J2ME定义了两种Configuration,它们分别是:CDC(Connected Devise Configuration连接设备配置)和CLDC(Connected Limited Device configuration有限连接设备配置)。CDC被定义为针对内存比较富裕,而且有间歇性连接到网络的强大嵌入式设备,例如:数字电视、机顶盒、网络电话、车载计算设备等。它定义的虚拟机是一个完整的Java虚拟机,其API为J2SE中的API的子集和针对CDC设备特定的API。CLDC被定义为针对内存教少且只有简单网络连接的设备,例如:PDA、移动电话、双相传呼机等设备。它定义的虚拟机是Java虚拟机的一个子集,称为KVM,其API为J2SE中API的一个最小子集,再加上其它针对CLDC设备特定的API,并且 CLDC是CDC的一个子集。Configuration定义了设备制造商和内容提供商应该在相同类别的所有设备中都需要实现的最小Java平台Java虚拟机和核心库。以此来保证相同类别的不同设备间的平台相容性。3.1.2 ProfileProfile是建立在Configuration上的特定的API集合。Configuration只定义了虚拟机和基本的API集合,不定义建立应用程序的细节,这样虽然保证了相同类别的不同设备间的平台相容性,但是舍弃了设备的特殊性。然而,各种消费类和嵌入式设备的特殊性是不容忽视的。Profile正是对Configuration的扩展和补充,提供了Configuration所缺少的功能,包括应用程序的生命周期、用户界面、网络连接、本地数据存储、安全等。一个Profile既可以建立在Configuration上也可以直接建立在另外一个Profile上。由于各种消费类和嵌入式设备功能的多样性,导致了Profile的多样性。目前SUN公司已经提出的Profile有构建于CDC基础上的Foundation Profile及建立在Foundation之上的RMI Profile和Personal Profile。还有构建于CLDC基础上的MIDP(Mobile Information Device Profile 移动信息设备间表)和PDA Profile。其中由CLDC和MIDP组成的J2ME平台得到了各大手机厂商的支持,是目前流行的J2ME平台。3.1.3 KVMKVM是一个专门为小型的、资源受限设备所设计的紧凑的、便携的Java虚拟机。Java虚拟机是Java程序语言的核心,是实际Java程序的引擎,也是Java语言具有这么多优良特性的关键所在。当你执行Java程序的时候,程序内的指令其实并不是由硬件直接执行的,而是由一个特别的软件来读取这些指令来执行,也就是我们说的“虚拟CPU”来执行的。虚拟机的优点很多,例如:移植方便,只需要移植虚拟机和相关的程序库到新的硬件构架上,所有的上层的应用程序都不需要更新就完成移植;另外在计算机硬件间加了一层抽象分离和保护,从而具有良好的网络安全性。KVM设计的高级目标是生成尽可能小的完整的Java虚拟机,它具有以下特征:小型的,虚拟机核心所占有的静态存储空间在40KB-80KB之间,内存占用为几十K,在具有16位和32位处理器的设备上,有相当好的性能。高度可移植和可扩展的,特定于机器或平台的代码总量很少 。多线程和垃圾回收是独立于系统的。KVM的实现所需要的最小内存大约为128KB,包括虚拟机,最小的库和运行Java应用程序所需的堆空间。这也是KVM中“K”的来源。由于受到内存容量的限制,KVM因此缺乏一些完整JVM所提供的特性,因此在编程方面和Java编程有所不同,并且使用CLDC的开发者在编译程序之后必须预先用J2ME开发工具包所提供的一些检查工具对它们的源代码进行预校验。3.2 主要的J2ME Configuration和 Profile由于消费类和嵌入式设备领域的复杂性和多样性,J2ME的设计者针对该领域的设备进行了不同层次的划分,于是就产生了许多针对不同类别的,不同设备的Configuration和Profile。下面将对主要的Configuration和Profile做一下简要的介绍。3.2.1 CLDCCLDC针对内存教少、只有简单网络连接的设备,例如:PDA、移动电话、双相传呼机等设备。这些设备具有以下特点:160到512KB的可用内存供Java平台使用16位或32位处理器有限能源供应(通常用电池)有限或非持续性网络连接,通常是无线的、间断性连接以及有限带宽(9600bps或更小)的网络在如此苛刻的硬件条件下,CLDC去掉了许多J2SE中重要的类和特征,只保留了最核心的一些基本类。CLDC中只包含四个包,其中java.io、java.lang、java.util三个包来自J2SE并且做了缩减,例如:由于硬件本身不支持浮点运算,所以CLDC也不支持浮点运算;许多设备没有或不提供访问一个文件系统的功能或权限。另一个包javax.microedition.io是专门针对CLDC通用连接框架(Generic Connection Framework,GCF)增加的。通用连接框架把J2SE中的文件,sockets,HTTP请求和其他输入/输出机制的概念抽象为更简单的一套接口,它提供了J2SE中java.io和J的同样功能,用于实现网络通信。虚拟机是Configuration的一部分,并且是J2ME的核心。由于CLDC对虚拟机也有着非常高的要求,所以SUN提供的参考实现是KVM(K Virtual Machine)。CLDC为手机、PDA等设备提供了最小的Java应用平台。3.2.2 CDCCDC主要针对内存比较富裕而且有间歇性连接到网络的强大嵌入式设备,这种设备资源需求如下:32位处理器。2MB 以上的内存供Java使用,包括RAM和ROM或闪存。连接到网络,通常使用无线间歇连接和有限带宽。CDC是CLDC的完整超集,包含了所有CLDC规范。由于CDC是CLDC的完整超集,所以基于CLDC的程序在CDC内是完全兼容的。不过这里的CLDC程序只用到了CDC的部分,一旦采用了某一个Profile的API,显然也就不能在CDC内兼容了。另外,在相对充裕的条件下,它支持J2SE的标准Java虚拟机和一部分核心类库。所以CDC支持标准的J2SE虚拟机,这只是Java平台的基础,并不包括建筑于平台基础之上的各种类库,特定设备需要的特定类库由响应的Profile来定义。因此标准的Java虚拟机显然无法适应有限的资源环境,为此需要一个专门的虚拟机,称为CVM(“C”在这里不代表任何含义)。CVM除了支持标准的J2SE虚拟机的所有特性外,还支持许多嵌入系统需要的特性,更适合于在资源限制条件下运行,移植性很强。目前SUN提供了Linux和VxWorks之上的CVM参考实现。3.2.3 MIDPMIDP是简表的一种,它定义了移动信息设备的类型和提供相关的API(Application Programming Interface 应用程序编程接口)集合,MIDP所定义的功能更面向用户,它建立在CLDC之上,并且提供一个标准的运行环境,允许在终端用户设备上动态地部署新的应用程序和服务。MIDP对硬件的要求如下:内存:128K 非易失性内存用于MIDP组件;8K非易失性内存用于应用创建的固定数据;32K非易失性内存用于运行虚拟机。显示屏:9654大小,1位深度;输入:单手、双手或触摸屏。网络:双向、无线、间断的、具有有限带宽。对于具有以上所提硬件特征的设备,它们的软件能力也有很大的范围。和消费者的桌面计算机模型不同,桌面计算机模型具有大型的、垄断性的软件结构,而MID范围内有众多的系统软件,例如一些MID有功能完全的操作系统,支持多进程和层级文件系统;而另一些可能只有很小的、基于单线程的操作系统,没有文件系统的概念。面对这种多样性,MIDP对移动信息设备的系统软件需求做了最小假设,其规定如下 :管理底层硬件的最小内核(即处理中断、异常和小型调度等)。内核必须提供至少一个可调度实体来运行Java虚拟机,内核不必支持单独的寻址空间或进程,也不必保证实时调度或者延迟行为。具有从稳定存储中读写的机智,以支持持久存储操作。提供对设备无线网络的访问,以支持连网操作。提供写点阵图象显示屏的最小能力提供至少一种输入方式和一个管理设备上应用程序生存周期的机制。3.2.4其它Profile简介PDA Profile基于CLDC,提供了PDA的用户界面,数据存储等扩展API。用户界面部分是J2SE AWT的一个子集,适用于有限大小和彩色的显示器。Foundation Profile基于CDC,提供除了用户界面以外CDC所缺少的几乎所有J2SE核心类库,它是其它一些Profile的基础。Personal Profile扩展了Foundation Profile,为那些资源相对有限,但是需要高度的Internet和Web连接支持的设备,提供网络特性以及支持Java Applet的GUI,例如Web-TV,汽车娱乐/导航系统等。RMI Profile也扩展了Foundation Profile,以便为设备提供RMI(Remote Method Invoke,远程方法调用)支持。这将使设备非常容易的与其它应用程序进行互相操作。目前还没有可用的参考实现。3.2.5J2ME的整体环境上面简要介绍了主要的J2ME Configuration和Profile,它们的关系如图3-2所示。在一个设备上只有一个符合其Configuration规范的Java虚拟机和核心类库,但 Configuration上可以有多个Profile,这要视宿主机的功能而定。在众多的规范中,由CLDC和MIDP组成的J2ME平台得到 图3-2 主要的Configuration和Profile及其关广大移动信息设备生产厂商的支持,几乎所有支持Java的手机都实现了CLDC和MIDP。本文讨论的移动设备应用系统也是基于MIDP的。3.3 J2ME平台无关性和兼容性3.3.1 平台无关性“编写一次,随处运行”(Write Once,Run Anywhere)的平台无关性是Java技术的最大目标和特点。J2ME的平台无关主要是指设备的主机操作系统平台无关性。由于Java平台建筑于虚拟机上,只要不同的操作系统上的虚拟机满足同样的Configuration和Profile,对于虚拟机以上层次是平台无关的。这使得针对某一Configuration和Profile的应用程序可以运行于所有实现这个Configuration和Profile操作系统的平台。例如,目前基于MIDP的应用程序MIDlet,可以运行于各种支持MIDP的设备中。这也是目前在各种支持Java的手机中普遍实现的规范,也是本文研究的主要对象。3.3.2 Profile之间的相容性对于Profile而言,不同的Profile之间一般是不相容的。事实上,由于Profile是针对设备功能的,不同的Profile针对的设备,往往功能上存在着较大的差别,程序的相容性既不可能也无太大意义。3.3.3 J2ME 与J2SE的兼容性J2ME既包括了J2SE的子集,同时为了支持设备的特殊性而增加了很多内容,如果程序只用到了这些平台间共同的部分,那么程序就是兼容的,否则不能兼容。而一般来说,共同的部分是相当有限的。3.4移动通信设备上的J2ME平台CLDC和MIDP的高级目标是建立一个具有高可移植性的、安全的、资源占用少的Java应用开发平台和程序运行环境,可以灵活地附加到小型设备中已经存在的系统软件栈上,使第三方可以为这些资源受限的互联设备进行开发。CLDC作为一个底层通用的标准平台定位于所有类型资源受限设备,而MIDP是建立在CLDC之上特定于无线双向通信设备,例如:双向传呼,移动电话等移动设备。图3-3展示了移动信息设备上的高层体系结构视图,从图中可以看出MIDP建立在CLDC功能的基础之上,而且J2ME规范允许设备制造商提供与自己设备相对应的API供程序调用,一般来说,设备厂商都会提供一些自己的API供开发人员使用,这些功能都是有针对性的,因此在不同的设备之间可能无法移植。此外从图中可以看出有两类API:图3-3高层体系结构视图MIDP API:这些API正是在MIDP中针对设备功能的API集合。OEM 特定类:由于在MIDP无线设备范围内存在广泛的相异性,MIDP标准不可能完全满足所有设备的需要。因此这一类的API是由OEM厂商提供的,以便访问特定设备的特定功能。使用这些API的应用通常不能移植到其他厂商的设备中。最上层代表了在一个移动信息设备中可能的应用类型,每个类型的简要概述如下:MIDP应用:MIDP应用或MIDlet,是仅仅使用MIDP和CLDC所定的API的应用,这种类型的应用集中于MIDP,是最常见的Java应用类型。OEM特定应用:OEM特定应用基于MIDP和OEM特定类。通常,使用OEM特定类编写的程序在不同的制造商的设备之间是不可移植的。3.5 J2ME的优点J2ME无线开发平台具有众多的JAVA的优点,例如:面向对象的编程语言,平台无关性,网络安全性,多线程等等。从用户的角度看,采用J2ME技术的手机,用户可根据他们的需要下载程序,而不是购买由设备制造商预装了应用程序的设备,这就保护了用户在无线设备上的投资 ,并使运营商强化和扩展了他们的服务;从无线网络运营商的角度来看,J2ME可通过网络特性为传统的语音通信网络(如GSM CDMA等)提供了一个更丰富的无线数据增值业务平台;从厂商的角度看,J2ME具有JAVA的高度可移植性从而使第三方软件商、应用服务提供商能参于到移动信息设备的应用服务中,摆脱了原来由硬件厂商封闭开发全部设备及应用方案的制约。3.6 J2ME的前景目前J2ME在PDA方面的竞争对手主要来源于Paml OS和Pocket PC两大阵营。其中Paml OS来自Paml公司,是一个开放的系统。Paml OS曾经在PDA市场上占有绝对主导的地位,已经有非常多的第三方厂商和一大批用户。而Pocket PC是微软及其合作伙伴Casio、Compaq、Hewlett Packard和Symbol等联合推出的,基于WinCE 3.0,也是一个可以自行扩充设备和开发应用软件。而J2ME在智能手机方面的竞争主要来源与Symbian的EPOC。EPOC最早由Psion开发,主要面向智能手机,也具备PDA的特性。此外微软推出的Pocket PC 2002电话版和SmartPhone 2002提供了对智能手机的支持。而嵌入式Linux方面今年来也取得了长足的发展,到目前为止已经可以看到以Linux为内核的手机推向市场。随着硬件的发展和标准的完善,J2ME必将能够提供更强大的功能。截止到2003年,已经有21个生产厂家推出了100多种支持JAVA的手持设备。JAVA手机的数量也会有很大的增加,据美国高科技研究公司Strategies Unlimited 2002年12月发表的2.5G和3G手机性能:2002-2006全球分析与市场预测,报告宣称:到2006年将增长到5.53亿部,JAVA手机将占全球手机出货量的83%。报告同时指出,在手机硬件中加快集成JAVA,将进一部促进JAVA在手机市场的普及,J2ME将成为事实上的标准。 武汉大学学士论文 MIDP的持续性存储和网络通信功能第4章MIDP的持续数据存储和网络通信功能4.1 MIDP对持续性数据存储的支持在MIDP中管理持续性数据的系统被称为:RMS(Record Management System,记录管理系统).在MIDP中RMS可以作为一个小型而简单的数据库使用。他的数据是存储在非易失性存储器上的,因此不会因为程序的退出以及手机的关机而丢失,从而为J2ME平台提供了持久性存储。RMS的设计异常的小巧,他主要负责存储数据和标记数据,数据存储是面向字节的,RMS规范并没有说明什么数据能被存储,只要数据可以转换为字节,都可以被存储。在RMS中数据是以记录文件的形式存储的,一个MIDlet程序也可以创建多个记录文件,不同的记录文件之间通过文件名称做为区别。同时一个记录文件中可以包含多条记录,不同的记录之间通过记录号分辨;而一条记录是由字节数组构成。同时记录文件是MIDlet Suite相关联的,当一个MIDlet Suite被删除时,它所创建的所以记录文件也将会被删除。由于大多数小型设备的存储空间都是比较有限,所以使用数据存储功能前,必须了解设备的存储能力。4.1.1记录文件创建要使用持续数据存储,首先要做的就是通过记录类创建文件。每个记录文件都有一个名称,在MIDP中规定一个记录文件名称的最大可以由32个字符组成。在同一个MIDlet Suite类,记录文件名称必须是唯一的,不同的记录文件就是通过记录文件名称来区别的。在RMS中没有单独创建记录文件的方法,而是通过打开记录文件来完成记录文件的创建。当打开现存的记录文件或创建新的记录文件时,会创建一个RecordStore对象,这个对象用于执行对此记录文件的操作。当记录文件打开后,可以执行对记录的读取更新和删除工作。4.1.2记录文件的添加在记录文件中可以包含多条记录,每条记录只能由字节构成,长度是可变的。每条记录使用唯一的记录号进行标识,记录号可以作为记录的主键。记录号是递增的,但是并不保证连续,所以在编写程序读取记录时不能简单地通过递增记录号得到所有的记录。在MIDP中,可以在增加记录前预先知道要增加记录的记录号;在成功的增加一条记录后,也会返回这个记录的记录号,这个记录号对应刚才增加的数据。例如当同时使用两个记录文件,记录文件A和记录文件B,其中记录文件B中记录的某个字段就对应记录文件A中的一个记录号。此时,在记录文件B中增加记录前就可以利用此功能先得到记录号,然后修改记录文件A的字段值,然后再向记录

温馨提示

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

评论

0/150

提交评论