基于J2ME的手机公交车路线查询系统的实现_第1页
基于J2ME的手机公交车路线查询系统的实现_第2页
基于J2ME的手机公交车路线查询系统的实现_第3页
基于J2ME的手机公交车路线查询系统的实现_第4页
基于J2ME的手机公交车路线查询系统的实现_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、本 科 生 毕 业 论 文题 目:基于j2me的手机公交车路线查询系统的实现院 系: 信息科学与技术学院 专 业: 计算机科学与技术 摘 要在现代社会中,手机已渐成为不可或缺的日常用品。随着手机性能的高速发展和使用范围的不断扩大,基于手机平台的应用软件的需求越来越大,其商业价值也在高速增长,而j2me技术也广泛应用在基于手机平台的软件开发上,这大大促进了手机应用软件开发行业的壮大。目前,广州市交通日益繁忙,其公交车系统十分的复杂庞大,且有继续发展的趋势,这对人们的出行造成很大的不便。基于手机特有的可携性和便捷性,在出门时用手机来查询公交车的搭乘路线和方法,会给人们带来极大地方便和快捷,因此,基

2、于手机平台的出门公交车路线查询系统具有较大的实用性和便民性,拥有潜在的商业市场,具有较大的开发价值。本文侧重于手机的便携性,重点研究分析j2me技术在手机上的应用,并应用该技术为手机打造一款便携的公交车路线查询系统,同时手机是一款功能受限的平台,因此该系统要求在尽可能少的资源消耗下实现最好的效果,这对路线的搜索算法提出了较高的要求,而公交车路线其实是一个有线路依赖(固定线路)的连通图,所以本文的另一个侧重点是在资源受限下对连通图的最短路径搜索算法的研究。作者通过学习和研究j2me技术和其它相关技术,以及各种连通图的最短路径搜索算法,比较它们在手机上应用的优缺点,合理实现了一个手机上的公交车路线

3、查询系统。本文的工作集中在:1.根据作者的学习研究和开发经验,对手机的基本开发技术,硬件特点和具体开发环境进行介绍,同时对连通图的各种最短路径搜索算法进行介绍和分析。2.结合本次作者开发系统的过程,用软件工程的角度和方法详细阐述开发基于j2me平台的手机公交车路线查询系统的基本步骤和关键要素,以及其平台设计和开发。本文组织如下:第一章简单的介绍了本论文。第二章阐述了j2me技术的系统结构。第三章是对连通图的最短路径算法的分析和设计。第四章是本文的重点,从软件工程的方法上全面阐述了本系统的设计和开发。第五章对本文做出总结,并对j2me平台进行展望。关键词:j2me;手机应用程序;公交车;路线查询

4、;最短路径;资源受限abstractin modern society, cell phones start to become an indispensable daily necessity. with the rapid development of mobile performance and use of the continuous expansion of mobile phone platform based on the growing demand for application software, and also the commercial value of its

5、rapid growth, and the j2me technology is also widely used in mobile phone platform based on software development, this has greatly facilitated the development of mobile application software industry grow. at present, guangzhou city, the ever increasing traffic flow, the bus system is a huge complex

6、and there is the continued development of the trend, which caused people great inconvenience to travel. unique mobile phone based on the portability and convenience in using mobile phones when they leave the house to look up bus routes and methods of travel, will bring great convenience and fast, th

7、erefore, the home-based mobile phone platform inquiry system bus route have greater utility and convenience, and have the potential commercial market, the development of greater value.this article focuses on portable phones, and the focus of research and analysis technology in the mobile j2me applic

8、ation, and apply the technology to build a portable cell phone bus line query system, at the same time is a function of mobile phone platform is limited, so the system requires less consumption of resources as much as possible to achieve the best results, this line search algorithm has a higher requ

9、est, and bus routes is dependent on a line (fixed line) of the connected graph, so in this article the other a focus on the resource-constrained shortest path connected graph search algorithm.author of the study and research through the j2me technology and other related technologies, as well as a va

10、riety of connected graph of the shortest path search algorithm to compare their advantages and disadvantages of mobile phone applications, to achieve a reasonable cell phone on the bus line inquiry system. this article focused on:1. according to the authors study and research and development experie

11、nce, the basic development of mobile phone technology, hardware characteristics and the specific development environment is introduced, while a variety of connected graphs the shortest path search algorithm is introduced and analyzed.2. the author combines the process of system development, software

12、 engineering point of view and methods in detail the development of mobile phones based on j2me platform bus route query system and key elements of the basic steps, as well as its design and development platform.in this paper, as follows: first a brief account of the thesis. chapter ii described the

13、 system architecture j2me technology. chapter iii is a connected graph of the shortest path algorithm analysis and design. chapter iv is the focus of this article, software engineering from a comprehensive exposition of the methods of the system design and development. chapter v is the conclusion of

14、 this article, and outlook j2me platform.keywords: j2me;mobile application;bus;line of inquiry;the shortest path;resource-constrained目录摘 要2abstract3第一章 前 言71.1 手机的发展状况71.2 手机应用程序的发展状况81.3 本文的研究重点91.3.1 以软件工程的方法开发本系统91.3.2 在资源受限下实现连通图的最短路径搜索9第二章 手机应用程序开发平台j2me概述92.1 j2me的优缺点102.2 j2me的体系结构112.2.1 jav

15、a的版本体系112.2.2 j2me的3层结构34122.2.3 j2me的配置(configuration)3142.2.4 j2me的简表(profile)4152.2.5 j2me的k虚拟机(kvm)5162.3 有限连接设备配置表(cldc)162.3.1 cldc概览36172.3.2 cldc的特征172.4 移动设备信息简表(midp)182.4.1 midp的宏观体系结构39182.4.2 midp应用程序192.4.3 midp应用程序的生命周期1119第三章 公交车路线搜索算法的选择和实现203.1 公交车路线搜索问题的抽象213.2 公交车路线搜索问题求解模型的选择213

16、.2.1 简单穷举法213.2.2 智能算法223.2.3 最优路径算法223.2.4 dijkstra(迪杰斯特拉)算法简述223.2.5 在本系统中使用dijkstra(迪杰斯特拉)算法23第四章 手机公交车路线查询系统的设计与实现1617284.1 需求分析284.2 可行性分析294.3 系统总体设计304.3.1 系统运行环境304.3.2 系统界面设计304.3.3 系统界面间流图314.3.4 系统处理流程图324.3.5 系统的主要类324.3.6 系统的用例图344.3.7 系统中城市公交车路线资料的存储344.4 系统详细设计354.5 编码实现374.6 系统测试41第五

17、章 全文总结42致谢43参考文献44第一章 前 言在现代社会中,手机已经逐渐成为了不可或缺的日常用品,手机已逐渐由普通的通信工具,演变成为一种具有多功能的电子设备平台,除了最基本的通话功能外,手机已具备了众多办公、娱乐功能。目前,各大手机生产商都推出了支持java应用程序扩展的手机,实现了手机功能的定制和扩展,于是,开发手机应用程序已经成为了it业界的一大热点,而在sun,nokia和motorola等公司推出的新技术的支持下,该点更是发展迅速,使得基于j2me平台的手机应用程序开发项目不断出现,成品更是涉及了办公,娱乐等的方方面面。1.1 手机的发展状况在现代社会中,手机已经逐渐成为了不可或

18、缺的日常用品。手机的用户数量每天都以一个极快的速度不断增长,而手机的用户群体也在不断地扩大,下至小学儿童,上至耄耋老年,无论男女老少,还是何种职业,都拥有或者曾经拥有过手机。手机的业务也在不断地增多,从最开始的基本通话业务,到后来的短信业务,彩信业务,上网业务,以及即将上市的各种3g业务等,手机已经渗透进了我们生活的方方面面,为我们带来了极大的便利。相对应的,现在的手机不仅在外表款式上推陈出新,花样繁多,其性能也在不断增强提升,具备的功能越来越多,从最初仅拥有单频线路的通话功能,到后来具有多频线路自动切换、拍照、摄影、mp3音乐播放,上网和java程序扩展等众多功能。特别是现在的智能手机,其c

19、pu的工作频率已经普遍在200mhz以上,且具有100mb以上的运行内存,而即将推广使用的3g网络的手机,其性能更是有很大的提升。因此手机已经不仅仅是最初的通信工具,手机已经成为了与人们生活息息相关的多功能移动电子办公平台和娱乐平台,为人们的生活带来了更大的便利和更多的色彩,扩展了人们的生活空间和办公空间。各大手机生产商,nokia,motorola,sony-ericsson,samsung,lenovo等世界各大手机生产商正不断创新,继续推动手机行业的发展,和提升手机的性能,相信手机还有更大的提升空间。1.2 手机应用程序的发展状况基于手机市场的快速发展,且该市场具有广阔的前景和潜在利润,

20、手机应用程序市场也相应的快速发展,而随着电信网络的不断发展,手机已经能够连接internet自由的下载各种类型的手机应用程序软件,即将普及的3g更是使得该过程更加的便捷,这大大促进了手机应用程序市场的发展。在sun公司推出的j2me平台的支持下,还有nokia,motorola和sony-ericsson等公司都相应推出了其专属的手机java应用程序开发包,从事手机应用程序开发的it技术人员越来越多,技术也越来越成熟,直接促进了手机应用程序的品质的提升。手机应用程序从最初的简单电话簿,到siemens推出的第一款手机黑白小游戏,现在已经发展到电子词典,多媒体彩色游戏,日志管理,图片处理,文档处

21、理和电子导航在内的多种类型的软件,涵括了娱乐,生活,办公等各个方面,正走向多媒体化,大型化和互联化。2007年,apple公司推出了划时代的手机产品:iphone。iphone一经推出,马上就风靡全球,其强悍的性能让人惊叹,但更要的是apple为其推出了专门的应用程序开发接口,使得第三方软件大量出现,这才是iphone流行的真正原因。iphone的推出,也造就了手机应用程序的一个黄金时代。现在,各国的通讯营运商都在积极向3g移动通讯迈进,各国的3g网络或已开通,或在架设中,3g 网络将给我们手机带来全新的感受,其网络带宽的增加使得手机应用程序还有各种多媒体资源的下载也将更加方便,为了更好的提高

22、带宽的利用率,从而增加营运商的利润,急需推出新的数据业务,和推出更多的手机应用程序资源供用户下载,这必然使得手机应用程序市场得到更快速的增长,手机应用程序的种类和性能等各方面都会有更大的提高。j2me平台因其优异的可移植性和兼容性,为广大非手机设备制造商的软件开发提供了统一的开发平台,在这波手机应用程序市场快速增长的热潮当中,j2me必将得到更广泛的应用,发挥更巨大的作用1.3 本文的研究重点1.3.1 以软件工程的方法开发本系统从2008年11月起,作者开始学习和研究j2me技术,为此查询了广泛的资料,做了多次的开发实践,成功开发出多款基于j2me的手机应用程序,为手机应用程序的开发积累了一

23、定的经验,同时也为这次开发基于j2me的公交车路线查询系统打下了基础。本文将以该公交车路线查询系统的设计、开发和实现为基础,详细介绍基于j2me平台下开发手机应用程序的过程,重点以软件工程的方法讨论该程序的设计和开发。1.3.2 在资源受限下实现连通图的最短路径搜索虽然手机的性能不断地提高,但是手机的性能依然不能和台式机等机器相比,它是一个资源受限的设备,因此,要在资源受限的情况下实现连通图的最短路径搜索是一个难点。作者为了实现该功能,查阅了大量的有关最短路径搜索的资料和论文,并对这些算法进行了比较。在此基础上,我选择了dijkstra(迪杰斯特拉)算法,并做出了一点改进,重点在于如何在手机的

24、受限资源上实现该算法。 第二章 手机应用程序开发平台j2me概述j2me,其全称是java 2 platform micro edition,也就是应用于嵌入式系统的java。j2me是sun公司于1999年6月推出的、专门为资源受限的微型电子设备的应用程序开发提供的新java版本,目前已经广泛地用于手机、pda个人数字助理、汽车导航系统以及电视机顶盒等众多小型资源受限设备中,有着非常好的发展前景。j2me的主要技术优势在于:具有良好的跨平台能力,很好的实现了write once , run anywhere;有着与j2ee无缝结合能力:保留了java语言的优良特色,如简单、安全;以及现有的j

25、ava平台上广泛的开发工具,企业、开发人员能够为j2me提供良好的物和人力支持等1。作为java 2平台的一部分,j2me与j2se,j2ee一起,为无线应用的客户端和服务器端提供了完整的开发、部署环境。随着j2me的应用,为移动互联引入了一种新的模型,即允许手机可以从互联网上下载各种应用程序,并在手机创造可执行环境离线运行这些程序,大大推进了无线电子商务等业务的发展。2.1 j2me的优缺点在pc台式机等其它应用程序开发领域中,各种各样的开发平台和开发语言竞争十分的激烈,各自都拥有大量的支持者和成熟的开发人员,如c语言与java语言之间的比拼就一直是业界中的讨论热点。如今,这样的战火已经蔓延

26、至手机应用程序开发领域当中,手机应用程序开发领域当中的竞争一点不比其他领域逊色,众所周知,在手机开发中,目前较为流行的开发方式有sun公司推出的j2me,qualcomm公司推出的brew(无线二进制运行环境),symbian公司推出的基于symbian操作系统开发,microsoft公司推出的基于windows mobile操作系统开发等等。然而,在这些开发方式当中,j2me技术现在仍具有比较明显的优势,使用更为广泛和普遍。这与j2me的特点紧密相关。j2me是基于java语言的,所以它天生就具有一定的技术优势2:1. 移植性强。j2me提供标准化语言组件和库,其带来的约束使得应用和内容可以

27、在不同设备间灵活地传输,只要经过简单的修改,就能够在不同厂商的手机上运行。2. 开发速度快。j2me使用的是一种功能强大的现代面向对象的编程语言,java相对于当前其它几款开发平台所使用的编程语言和工具来说具有更加完善的抽象机制和更加高级的程序构造,和系统的关联不大,所以开发更加有效,开发周期更短。3. 无线数据下载。无论是j2me还是brew,其核心都是无线数据下载,使得手机可以从网上下载更加复杂的程序和应用,j2me的动态内容传输,使得新的应用、服务和内容可以通过不同类型的网络动态下载,更加便捷。4. 离线运行。j2me不仅允许手机从互联网上下载各种应用程序,还在手机当中创造可离线运行的执

28、行环境,使得不用激活网络连接,应用程序就能被使用。这种特点不仅降低了传输费用,同时也减轻了网络堵塞或故障等带来的潜在影响,提高了应用程序的性能和效率。5. 开发者团队数量众多。据估计,现在全球范围内有超过300万的java软件开发者,java已经成为和c语言一样被人广泛接受的流行的编程语言,并且在各类学院和大学里被用于教学课程,使得使用者规模不断增长。sun公司的java工程师认证也因此变得越来越受欢迎。j2me在具有明显的优势的同时,它也存在着难以忽略的缺点:1. 功能受限。j2me技术有很强的可移植性,具有不依赖平台系统的优点,但是,该优点同时也带来了缺陷,使得j2me难以实现一些系统的功

29、能,难以开发手机上的系统软件。2. 速度比较慢。因为java是边解释边运行,而且必须运行在其虚拟机上,所以运行速度慢,效率低,可以说是使用java语言的一个硬伤,是一个天生的缺陷。因此,j2me必须在jvm上运行,再加上手机硬件的限制,导致运行的速度会相对的较慢。但是,比较j2me的优点和缺点,你会发现,j2me的优点更为明显和突出,也更加适应于手机应用程序的开发领域。j2me的这些优点,使得第三方软件开发商可以很容易地进入手机应用程序的开发领域,并且手机应用程序的安装和使用也更为方便,同时,第三方软件生产商的开发周期大大缩短,这能为他们节省大量的成本,而且j2me支持应用程序支持动态下载和升

30、级,使得第三方软件生产商能更好更方便地提供售后服务等,同样节省了大量的成本。总的来说,j2me定义和标准化了一种可移植的无线应用开发环境,并针对第三方软件开发商开放其设备软件的开发领域,同时这个环境可以灵活地附加到设备制造商开发的已经存在的软件和硬件之上,并且不会对已经存在的系统软件造成影响,因此,j2me大受欢迎,成为了主要的手机应用程序的开发平台。2.2 j2me的体系结构2.2.1 java的版本体系经过了10多年的发展,java已经成为了一个全面而成熟的面向对象应用程序开发平台,适用于广泛的、异构的编程环境。因为应用的涉及面非常广,所以sun公司将java划分为3个版本,每个版本都针对

31、不同的用户群体和计算机产业中的一个特定领域,且每一个版本都有其自己的虚拟机,这些虚拟机都为其目标应用做了特别优化,如图2-1所示。3个版本具体为3:1. j2ee,全称为java 2 platform enterprise edition,也就是java 2平台企业版,用于满足企业向它们的客户、供应商、雇员提供服务的需求,提供了大型的、可升级的、可靠地商业服务器解决方案。2. j2se,全称为java 2 platform standard edition,也就是java 2平台标准版,用于传统且成熟的桌面系统,和为低端商务应用提供解决方案。3. j2me,全称为java 2 platform

32、 micro edition,也就是java 2平台微型版,主要面向消费电子产品和嵌入式产品。java的三个版本,涉及面从企业级的服务器应用到传统的桌面应用以及各式各样的面向小型设备的嵌入式应用,为各个计算机产业领域的开发人员提供了一个全面成熟的开发平台,因其具有众多的优点,受到了众多开发人员的欢迎,同时,三个版本的无缝结合,也促使这几个领域间的联系更加密切,加速了各个领域间的发展。java 2 micro edition(j2me)java virtual machinejava 2enterpriseedition(j2ee)java 2standardedition(j2se)optio

33、nalpackagesoptionalpackagescvmcdcfoundation profilekvmcldcmid profilepersonalprofile图2-1 java的版本体系结构3 2.2.2 j2me的3层结构34在j2me设计的计算机产业领域当中,信息家电市场是应用j2me的主要领域,j2me为其提供了各式各样的应用服务。在这个领域里,作为应用程序的载体,信息家电的设备种类复杂繁多,包括了移动电话,pda,电视机顶盒等等,以及其他的消费电子终端,这些信息家电设备具有一定的共性,然而具有更多其独有的特性,每一款信息家电设备都提出了其自己的需求,而j2me则必须一一满足。

34、为了满足消费者和嵌入式市场不断发展和多样化的需求,还有支持其要求的灵活性和定制性,j2me体系结构采用了模块化、可扩展的设计,具有一定的伸缩性。这种设计是基于设备的类别的,一个类别定义了一个特别种类的设备,并且通过一个3层的软件模型来实现该体系结构,该模型是构建于本地操作系统(也就是设备的操作系统)之上的。j2me的3层体系结构依照各种设备的资源特性,将j2me技术架构分为简表(profile),配置(configuration)和虚拟机java virtual machine(jvm)3层,然后进一步细分,这使j2me能够在每一类设备的限制下工作,而同时提供最低限度的java语言功能特性3,

35、如图2-2所示。j2me applicationhost operating systemjvmkvmcdc coreclassescldc coreclassesother cdc profilescar profilestv profilesother cldc profileswireless profileshandheld profiles连接设备配置有限连接设备配置简表层profile配置层configuration本地操作系统虚拟机virtual machine图2-2 j2me的分层结构3 java虚拟机层(jvm):这一层是java虚拟机的一个定制的实现,针对于所面向的设备的

36、本地操作系统,支持特定的j2me配置,j2me的核心就在于这一层中。 配置层(configuration):配置层定义了在特定类别设备上java虚拟机的功能和java类库的最小集。配置,是j2me对大量各种不同的小型嵌入式设备进行分类,将它们的共性提取出来,形成适合于某个范畴中设备使用的规范,可以理解成为对硬件的描述。通过定义配置的方法可以清楚地描述硬件功能。配置层是对开发人员和用户透明的,是用于一组通用设备上的最小的java平台。 简表层(profile):简表层定义了在特定系列设备上可用的应用程序编程接口(api)的最小集。简表在一个特定的配置上面实现。应用程序是针对特定的简表编写的,因此

37、可以移植到支持同一简表的任何设备上。此外,一个设备可以同时支持多个简表。开发人员和用户看到最多的就是这一层,简表为具体的设备家族或特别的应用程序提供了更为具体的功能。java虚拟机是j2me技术的核心,但是配置和简表提供了特殊环境的类应用接口。配置是用于一组通用设备的最小的java平台,常常归为一种横向的设备分组,而简表为一种给定的垂直分组设备提供用户界面、输入法、持久存储机制。java虚拟机层、配置层和简表层形成一个整体,为j2me应用程序提供了一个标准的运行时环境,这个环境允许新的应用程序和服务动态地被安装到各种终端用户设备上。在手机这种设备中,kvm,cldc,midp分别实现了j2me

38、体系结构中的java虚拟机层,配置层和简表层。2.2.3 j2me的配置(configuration)3配置在j2me的3层体系结构中起到了承上启下的作用,针对在总存储空间、电源、网络连接等硬件功能有类似需求的某个水平范畴或者一组设备,它定义了专门的java平台,为其提供专门的服务。配置的内容包括,规定了所支持的java编程语言特征,规定了所支持的java虚拟机特征,还有规定了所支持的基本java类库及其api。理论上说,有多少类的设备,就应该有多少种特定的相对应的配置,然而,为了避免过于杂乱,到目前为止,java规范定义的只有两种配置,一个是connected limited device

39、configuration(有限连接设备配置,cldc),另一个是connected device configuration(连接设备配置,cdc)。cldc的目标设备的特点是无线连接,没有稳定的电源供应(如电池),设备资源极少,这一类设备的典型例子有手机和pda,这个配置致力于低端的消费类设备。而cdc的目标设备的特点是高带宽的网络连接,稳定的电源,设备资源比较受限,典型的设备例子如电视机机顶盒,车载计算设备和高端通信设备等,cdc主要是针对高端消费类产品。归根究底,cldc和cdc的大部分功能还是来源于j2se,它们的类与j2se中的类相符合或者是其子集,当然,cldc和cdc也专门为适

40、应小型设备而设计和引入了一些并非来自于j2se的特征。不过cdc与cldc所针对的设备的资源受限情况不同,它们所使用的虚拟机和核心类库也相应的有所区别,cdc的核心类库要比cldc的核心类库要大些。2.2.4 j2me的简表(profile)4如果说配置为应用程序提供了硬件设备的抽象基础,那么,简表则对应用程序的软件接口进行了抽象。j2me中的应用都是针对某个特定的简表所写的,简表为相同的消费电子设备提供了标准化的java类库,同时,它的实现是java应用程序接口的一个集合,用于适应被定义配置的应用程序接口提供的服务。简表是一个完整的运行环境,在此上执行的应用程序不必添加而外的支持类。简表和配

41、置是紧密相连的,简表完善了配置,配置提供了满足所有设备的最低要求,而简表这定义了具体的用户界面、输入机制和数据持久性等与独特设备有关的属性。然而,简表仅仅是完善了配置,它不能取代配置的作用,没有了配置所提供应用程序核心类接口它便无法工作。同时,由于简表运行于特定的配置之上,某种设备的配置有规定了java虚拟机特征和相对应的api规范,只要简表的实现在符合规定的条件下,便可以安全地认为,简表的实现及使用这个简表的应用都能在该设备上运行。任何的java平台开发出来的应用都必须运行在jre(java runtime environment, java运行时环境)中,j2me使用配置和简表来定制其jr

42、e,一个完整的j2me平台下的jre必须由配置和简表两部分共同组成。配置和简表联系密切,配置决定了所使用的jvm,而简表则通过定义特定的类来为应用程序提供功能上的支持,它定义了设备所提供的api集合。可以把配置理解为硬件配置,而简表就是这套硬件上的操作系统。目前,j2me领域里使用最广泛的是移动信息设备简表(midp),它主要针对手机和其它双向移动通信设备而设计的。2.2.5 j2me的k虚拟机(kvm)5配置位于j2me体系结构中的中间层,对上,简表是基于某个特定配置的扩展,对下,配置同样对其基础的java虚拟机的特性做出了规范。cdc与cldc因为针对的设备对象不同,处理能力和内存不一样,

43、所以它们都有各自相对应的优化虚拟机。cdc用的虚拟机是cvm,而cldc对应的虚拟机是kvm,两者比较,cvm包含更多的功能和支持更多的特性。kvm是一个专门为小型、资源受限设备所设计的紧凑的便携的java虚拟机,是用于j2me平台上最小的虚拟机,同时也是java平台上最小的虚拟机,对应于cldc配置。java虚拟机是所有java平台的核心,只要java程序在运行,java虚拟机也必定在执行。同样,kvm作为java虚拟机之一,它也是j2me平台的核心组成部分。kvm是脱离之前的几种java虚拟机之外,完全从头开始编写的,其名字中的k代表着kilo,因为他的内存容量是用几十kb来衡量的,而桌面

44、系统是用兆(m)甚至是千兆(g)来衡量的。kvm典型地应用于数字移动电话、传呼机、pda、pos终端、家用智能电器等等设备上面【】。kvm是针对资源受限设备的,因此其特征包括: 微型化,其实现所需的最小总内存空间大约是128kb,包括虚拟机、最小的库和运行java应用所需要的堆空间。 模块化,可以对虚拟机的组件进行配置,以适合于特定设备,从而增强了灵活性。 独立化,具有高度可移植性和可扩展性,特定于机器的代码总量少。 具有较优的性能,不影响上述特征的情况下尽量的高速。2.3 有限连接设备配置表(cldc)cldc,全称是connected limited device configuratio

45、n,也就是有线连接设备配置,一直都是致力于低端的消费类设备,如手机和pda等,它提供了一个适合小型的、资源受限、连接受限设备上使用的标准的java平台,并为这些设备在每个方面都进行了大量的优化。2.3.1 cldc概览36cldc起源可以追溯到1999年举办地javaone developers conference大会,当时在会上sun公司正式介绍了第一个袖珍版java和第一个kvm以及相关的类库。根据sun公司制定的规范,运行cldc的设备必须满足下列条件: 至少192kb的内存空间。 16或32位处理器。 一个有限的电源供给。 有限的或间断的网络连接性(9600bps或更少)。 多样化的

46、用户界面甚至没有用户界面。由此可看出,cldc是为个人化的、移动的、有限连接信息设备而设计的,如手机和pda等,因此,和j2se相比,cldc缺少了许多特征,如awt,swing及其他图形库,如rmi,如reflection,还有用户定义类装载器等。2.3.2 cldc的特征cldc包含一个很小的j2se子集,因为其他的泪对虚拟机和本地运行环境的依赖性都比较大,而且会消耗大量的资源,因此并没有引入cldc。cldc提供的api包含的方面有7:1. java语言和虚拟机特征(使用kvm作为其虚拟机);2. 核心java类库(java.lang.*,java.io.*,java.util.*);3

47、. 网络连接(通用连接框架generic connection frame);4. 安全(采用沙箱模型,不能改变类文件查找顺序,支持动态类加载);5. 国际化。cldc是一个安全,规范的配置。2.4 移动设备信息简表(midp)midp(mobile information device profile),也就是移动设备信息简表。针对移动信息处理设备,它定义了图形界面,输入和时间处理,持久性存储,无线电话网络连接之上的一些消息处理,安全等api。类似于j2se中的applet框架,midp提供了midlet应用程序框架8。2.4.1 midp的宏观体系结构39midp的结构一共分为5层,从下向

48、上依次为: mid硬件层(mid hardware layer):主要包括手机或者pda。 本地系统软件层(native system software layer):包括设备生产商提供的本地操作系统和系统库。 kvm层(kvm layer):为java无线应用提供了实时运行环境。 cldc层(cldc layer):为java无线应用提供了核心java api。 midp层(midp layer):提供gui,持续存储,网络等类库。 这些层的结构关系如表2-1:表2-1 midp宏观体系结构3midpapplicationoem-specificapplicationnativeapplic

49、ationoem-specificclassesmidpcldc虚拟机本地操作系统mid设备由表中可以看出,在cldc之上有两种类型的api: midp:midp规范中定义的api集合。 oem(original equipment manufacturer)特定类:由于midp在设备范围内的相异性,midp规范不可能完全定义所有设备制造商和其他原始设备制造商(oem)所拥有的特性,因此,这些面向特定制造商的类可以被oem定义,不过,通常这些类的应用是无法移植到其他设备的制造商当中的。因此,我们可以看出,midp是基于cldc所提供的特性和api,midp必须基于cldc,但cldc可以作为处

50、midp之外的其他简表的基础。2.4.2 midp应用程序kvm,cldc和midp组合起来为创建手机应用程序提供了完整的环境,midp还规范了一个应用程序模型,允许设备中的有限资源被多个midlet应用程序(midlet)共享。该模型定义对midlet进行了定义,还规范了midlet是如何打包的,可用的运行环境是什么,运行环境如何通过生命周期来管理midlet 程序的运行以及如何操作是设备能管理它的资源。j2me中的midlet是与j2se中的applet相对应的,它是midp应用程序的基本组成单元,如各种手机应用程序。一个midlet应用程序必须扩展javax.microedition.m

51、idlet.midlet类,才能实现程序的启动、暂停和终止。而在其下层,还存在着应用管理软件(ams, application management software),这是一个抽象的实体,有它管理手机上的应用程序的安装、升级和卸载,应用管理软件也可以称为java应用管理器(jam, java application manager),两者是等价的4。2.4.3 midp应用程序的生命周期11在一个midp应用程序的生命周期中,在定义良好的控制状态转换规则的作用下,它可能处在3个明确的状态之一:暂停状态,激活状态还有销毁状态。如图2-3所示。暂停活动销毁startapp()pauseapp()

52、destroyapp()destroyapp()图2-3 midp应用程序状态和状态间转换1. 暂停状态(pause)但midp应用程序刚启动时,就处于暂停状态,直到通过调用startapp方法才转化为活动状态。系统可以在任何时间通过调用pauseapp方法将任一个处于活动状态的应用程序转为暂停状态,在此状态下,该程序只是保持尽可能少的资源。2. 活动状态(active)顾名思义,该状态标志着应用程序正在运行当中。系统调用startapp方法后,应用程序就有暂停状态进入了活动状态,同样调用resumeresquest也可以激活暂停的应用程序,不过不保证它能立即运行。在此状态下,应用程序将为最佳

53、的执行分配和保持所有需要的资源。3. 销毁状态(destroy)销毁状态执行中止指令,同时将应用程序占有的资源回收到系统,该状态是不可逆转的。通过调用destroyapp或notifydestroy方法都会使任何其它状态下的应用程序进入销毁状态。第三章 公交车路线搜索算法的选择和实现在公交车路线查询系统中,选择最优路径算法的优劣,直接影响到路线查询的速度和结果的好坏,特别是在手机这种资源受限的设备上,内存大小和cpu处理能力都受到极大的限制,搜索算法的作用就更为明显,甚至直接影响到系统的成功与否。3.1 公交车路线搜索问题的抽象公交车路线的查询和搜索,是建立在城市的公交车的线路网络之上的,只有

54、建立了公交车的线路网络的数据库才能做到对公交车路线的查询和搜索。城市的公交车线路网络,可以抽象为一个无向连通图(undirected connected graph),站点可以抽象为图中的结点,而站点间的公交车线路可以抽象为图中连接两站点的一条无向边,而搭乘该线路的损耗(时间,金钱,路程等因素的综合考虑)则可以抽象为对应的无向边的权值。在这样的图中,如果两结点间有连接的边,也就表示存在公交车线路,可以从一个站点到达另一个站点。需要注意的是,城市的公交车线路网络还有一个不可忽略的特点,那就是在两个站点之间往往不止存在着一条线路,因此由这样的网络抽象出来的图中,两结点间存在着多条带权值的无向边。所

55、以,城市公交车线路网络就可以抽象为一个无向多重连通图(undirected multi-connected graph)。由此可见,公交车路线搜索问题就可以抽象为在一个无向多重连通图内,找出连接两个给定结点的最短路径,所以我们可以使用图论的方法来解决这个问题,并找出合适的相对应的求解数学模型。3.2 公交车路线搜索问题求解模型的选择要解决公交车路线搜索问题,也就是实现在一个无向连通图找出连接连个给定结点的最短路径,有很多可选的算法基本模型有很多,如最简单的简单穷举法,模拟退火算法,遗传算法,蚁群算法等各种著名的智能算法,还有最优路径算法等等,每一种算法都是优缺点并存,并且有各自的使用场合,具体

56、要选用那一种算法模型作为本系统的解决方案,必须做出比较分析。3.2.1 简单穷举法简单穷举法是实现难度最低的算法,整个算法结构简单易懂,包括深度优先算法(depth-first algorithm)还有广度优先算法(breadth-first algorithm),但是这类算法都是些十分低效的算法,其时间复杂度太高,绝对在n(站点的个数)的平方级之上,而且只能求解换乘次数两次以下的路线。再者,该算法对设备的性能要求很高,缺点过于明显。本系统针对的设备是资源受限的手机,无法承受这样的算法的消耗,所以不能选择该算法。3.2.2 智能算法智能算法的范围很广泛,包括了模拟退火算法(simulated

57、annealing algorithm),遗传算法(genetic algorithm),蚁群算法(ant colony algorithm)等等。智能算法具有一个先天优势,就是搜索的并行性,在大规模系统中占有很明显的优势。可是这类算法同样存在一些缺点。这一类智能算法更适合于解决组合优化的问题,适于在大规模的数据中找出最优的组合方式,如在著名的tsp问题(旅行商问题)中找出连接所有城市的最短路径,对于本系统所面对的在无向多重图中找出两结点间最短路径问题,效率不是很高,且要做出大量的改动,还有,这一类算法往往只能搜索到次优解,无法找到问题的最优路径。更重要的是,这类算法对硬件设备的性能要求同样很高,硬件设备的性能对算法的效率影响极大,像手机这样的移动通信设备是无法支撑这类算法的,所以,这类算法同样不适合作为解决本系统所面临的问题的算法模型。3.2.3 最优路径

温馨提示

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

评论

0/150

提交评论