安卓手机公交查询系统开发.doc
本科毕业设计题目(杏)安卓手机公交查询系统开发作 者: 专 业: 计算机科学与技术(网络工程) 指导教师: 完成日期: 2012年6月6日 原 创 性 声 明本人声明:所呈交的论文是本人在导师指导下进行的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 签 名: 日 期: 本论文使用授权说明本人完全了解南通大学有关保留、使用学位论文的规定,即:学校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容。(保密的论文在解密后应遵守此规定)学生签名: 指导教师签名: 日期: 南 通 大 学 毕 业 设 计(论文)题目: 安卓手机公交查询系统开发 姓 名:指导教师:专 业:南通大学计算机科学与技术学院 2012 年 12 月25日南通大学计算机科学与技术学院2012 年 12 月25日摘 要随着无线移动通信的高速发展及各种移动业务种类的快速增长,一切互联网上的业务都在移动通信系统中得到应用。然而,由于用户需求的原因,或者终端支持与否的因素,并非所有手机都能正确显示同一信息内容。而且随着客户端设备的类型越来越多,人们对个性化服务的要求越来越高,个性化信息服务成为将来网络信息服务发展的一个重要的方向。移动终端是一种采用先进通信协议栈的复杂系统,它需要具有与许多网络设备互操作、支持先进而丰富的多媒体的应用程序。而且,所有这些都必需在一个资源有限的嵌入式系统的约束条件下实现。Android技术提供了跨平台的能力,并支持多种器件设备。Android技术为无线设备创建了一个全新的开发平台,可以让移动通信设备发挥出最大的潜能。Android手机作为移动终端为今后移动通信发展提供了很好的解决方案。本文对Android系统的特征,系统架构及应用程序构建、开发都做了比较详细的分析。同时结合Baidu Maps、GPS定位技术、对在android上定位和导航进行了深入的研究,并设计了基于Android系统的公交路线查询应用。系统使用java语言和eclipse开发工具进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程遇到的问题和解决方法进行了讨论。本系统的主要实现的功能有换乘查询,还有线路查询和站点查询功能,不仅能显出查询的结果,而且还能够根据用户选择的线路实现电子地图的显示,使系统更加直观。关键词:android,公交路线查询, Baidu Maps南通大学毕业设计(论文)ABSTRACTWith the rapid development of wireless mobile communication and the rapid growth of the mobile business types, all business on the Internet in a mobile communication system. However, due to reasons of user needs, or whether or not the terminal supports the factors, not all phones can correctly display the same information content. And more and more with the type of client device, more and more personalized service requirements, personalized information service has become important direction of the future development of a network information service.Mobile terminal is a complex system with advanced communication protocol stack, it needs to have interoperability with many network devices, and support advanced rich multimedia applications. Moreover, all of which must be implemented in a resource-limited embedded system under restricted conditions. Android technology provides cross-platform capability, and supports a variety of devices devices. Android technology for wireless devices to create a new development platform that lets mobile communications equipment to play the greatest potential. Android phone as a mobile terminal provides a good solution for the future development of mobile communication.In this paper, the Android system characteristics, system architecture and application build, developers have done a more detailed analysis. Combination Baidu Maps, GPS positioning technology, positioning and navigation android conducted in-depth research and design of bus routes Android-based query application. The system uses the Java language and Eclipse development tools to write. At the same time gives a detailed system design process, part of the interface diagram and operation flow chart of the main function of the development process, the paper also encountered problems and solutions are discussed.The system functions of the main transfer query line query and site search function, not only can show the results of the query, but also to the electronic map display based on user-selected line, to make the system more intuitive.Key words: android, Bus routes queries, the Baidu Maps南通大学毕业设计(论文)目 录第1章 绪论11.1课题的研究意义11.2移动终端的发展现状11.3公交查询现状21.4本次课题研究内容3第2章 需求分析42.1 服务器端需求分析42.1 客户端需求分析5第3章 技术背景介绍63.1 GPS63.1.1全球定位系统简介63.1.2 GPS系统的组73.1.3 GPS的功能83.1.4 应用前景93.2 Android平台93.2.1 Android特征93.2.2 Android架构103.2.3 Android应用的构成和工作机制123.3本章小结14第4章 平台的搭建164.1 Android 开发环境的搭建164.1.1 JDK的安装164.1.2 Eclipse的安装174.1.3 Android SDK安装174.1.4 ADT安装194.1.5 创建AVD204.2 Eclipse简介20第5章 程序设计215.1系统体系结构215.2 Baidu Maps API 申请及使用215.2.1申请Baidu Map Key215.2.2获取坐标和地址225.2.3地图自动定位235.2.4百度地图地址解析服务Geocoder23第6章 系统设计与实现256.1 欢迎界面的实现256.2 主要功能的实现266.3 截图及运行说明16.4 软件可以改进之处9第7章 系统测试107.1手动测试方案107.2工具测试方案107.2.1单元测试107.2.2 系统测试117.3测试用例117.4辅助测试工具11结论13参考文献14致谢16南通大学毕业设计(论文)第1章 绪论1.1课题的研究意义出行是人们日常生活中不可或缺的一部分,而公交车是大多数人出行首选的交通工具,如何才能随时随地、方便快捷的获取公交线路的信息,合理安排自己的出行线路,是很多人非常关心的问题。建设智能公交系统,利用当代高新技术:电子、信息、通信、计算机、GPS、GIS等,将交通系统中的人、交通设施和交通工具有机的联系起来,建立智能公交系统,如公交优先系统、公交查询系统、智能化行车系统等,为乘客提供实时的更多更全面的出行信息,更好的为乘客服务。在智能公交系统中,公交查询系统的服务是目前最贴近乘客日常生活的,也是最能让乘客亲身体会公交服务水平高低的方面。因此,如何给乘客提供一个良好的平台,让乘客选择或是推荐合适的乘车方案出行,以节约乘车时间,缩短到达目的的乘坐距离,减少乘坐的票款成本,才是提高公交服务水平最值得关注的问题之一。越来越多的人倾向通过上网获得和共享信息,随着网络应用的普及而不断的发展,Internet的应用成了世人关注的焦点。公交路线查询系统既提供全面的公交信息,更具有实用性、便利性、多样性。因此我们提出开发并设计了一个基于Android平台的公交路线查询系统。用户可以在任意一款Android手机中安装此工具。通过此查询工具可以查看线路,查找任意两地的乘车方案等,更方便用户出行,节约时间,减缓交通压力。1.2移动终端的发展现状当今在全球信息与通信领域中,无线移动通信的发展之快最引人注目。在中国,仅蜂窝移动通信用户早已跨过3亿大关,而在全球15亿的移动用户已成事实。中国在全球范围内不仅用户数增长最快,而且移动用户与固定电话用户之比的增长率也是全球第一。按照无线移动终端的发展历程大致将其分为三类:第一类是以语音通信为主的手机,也就是我们传统意义上的手机,目前主要面向低端市场,这类手机的硬件都是围绕一个单一的基带处理器搭建的,该处理器执行电信和其它简单的应用任务。第二类是增值业务手机,也叫多功能手机,这是目前需求量最大的手机。这些手机一般面向特定应用,一个功能强大的基带处理器芯片实现移动终端的主要功能,如果基带处理器不能满足诸如视频处理等功能,可以配套使用一个应用协处理器,它面向特定应用。第三类是智能手机,即高端手机,曾被定义为“拥有操作系统并支持第三方应用的手机”。这类手机中应用处理器成为系统的核心,而GSMGPPS等通信MODEM则成为实现连接功能的外设之一,此外还有其它通信外设,如WLAN、蓝牙、USB等,并且可能提供统一的扩展接口。智能手机通常要采用复杂的嵌入式操作系统为上层应用提供统一的应用接口。并且,智能手机多备有较大显示屏,具有计算和文字处理方面的功能。从移动业务的角度看,目前现有的业务种类已经是琳琅满目,一切互联网上的业务都在移动通信系统中得到应用,当然,由于现有网络质量和带宽的限制,它还远不能给用户以有线网络的体验,而且有些业务在目前条件下也只是概念上的炒作。然而,并非所有的业务都能顺利推出,其中有用户需求的原因,也有终端支持与否的因素,并非所有终端都能对统一网站的内容正确显示,并非所有手机都能正确显示同一信息内容而且随着客户端设备的类型越来越多,人们对个性化服务的要求越来越高,个性化信息服务成为将来网络信息服务发展的一个重要的方向。1.3公交查询现状国外许多国家都十分重视公交查询的研究和应用。其目的在于通过提供及时准确的信息和服务,吸引更多的出行者使用公共交通,促进公交的大力发展,减缓城市的交通压力。尤其是美国,他们的研究取得了较好的效果。他们发展公交查询系统的特点是能够提供快捷、方便的电话咨询服务;与定位技术相结合,提供实时信息服务;触摸屏在公共场所的广泛使用以及查询与网络的结合。欧洲一些国家,如芬兰、意大利等,他们在研究公交查询方面也取得了不小的成果。近年来,我国的公交查询系统也在迅速地发展,不少城市也都有拥有公交线路查询系统,网络上也可以下载到许多不同的版本。不过公交查询系统在发展的同时也存在一些问题,需要不断地改进和完善。比如早期的公交查询系统脱离了网络,只是一种供人下载后方可查询的程序,是一种单机程序。这样的信息不够准确,也不够及时。有一部分公交查询系统,它们只是简单地将各个线路和站点的信息一一罗列出来,让用户自己去一条条查找。而真正意义上的公交查询系统应该是用户输入想要查询的内容,系统能够自动查询出结果,而不是靠用户人工进行查询。还有一部分网上的公交查询系统,它们的系统功能比较完善,实现站点、线路查询以及换乘查询,更加完善一点的系统还有电子地图查询等功能,但是对城市有代表性的地点介绍和查询的功能,做得好的比较少。还有就是手机上的公交查询系统,可以采用短消息的形式进行查询,但也有一定的局限性。硬件方面,比如遇到服务器、网络繁忙时或者信号盲区,导致用户请求长时间得不到回应。软件方面,运营商不一定提供此类的查询服务。现行的公交车系统或多或少都还是存在一些缺陷的。但是随着技术的更新以及不断的改进,相信可以做出更人性化、更完善的公交查询工具。1.4本次课题研究内容本次毕业设计要研究的内容是学会界面的设计,进行数据库的设计并学会使用SQLite数据库,学会在Baidu Map的基础上进行地图开发。论文第一部分介绍了目前公交路线查询的现状,第二部分为关键技术介绍,主要介绍本系统中所涉及到的主要关键技术,第三部分是关于系统总体结构设计,主要介绍系统的功能模块和数据库的设计与实现。第四和第五部分就是系统详细的设计与实现及测试结果等,然后对整个毕业设计进行了总结,最后部分为致谢。第2章 需求分析手机公交线路查询软件最基本的功能是能够有效的为用户提供查询服务,在最短的时间内给用户一条或多条到达目标地的路径。整个查询过程中,只有数据信息是依靠服务器同步获取,其余功能均在手机端完成。在此分别对手机公交线路查询软件的服务器端和客户端做需求分析。2.1 服务器端需求分析服务器作为后台,需要专业人员对服务器操作和维护,一般情况可由非专业人员借助管理软件对服务器进行常规维护。服务器可以通过数据库同步,为客户端数据库提供数据。通过仔细分析服务器需求之后,服务器端要完成以下功能:1、服务器后台管理功能服务器后台管理是针对数据库进行操作,具有增、删、改、查功能。2、数据同步功能。采用REST协议,响应客户端请求,返回给客户端一端数据流,该数据流按照JSON格式,返回给客户端,由客户端进行解析。服务器端功能模块划分如图2-1所示。图2-1 服务器端功能模块2.1 客户端需求分析客户端主要是手机,用户无法通过手机对本地数据库进行操作,也无法对服务器数据库操作,管理员可以通过手机浏览器登录到服务器管理员页面对数据库进行操作,可以使用一些功能。该软件应满足若干要求,比如能够随时掌握公交信息,动态更新最新数据等。也要考虑作为手机软件可能会出现查询速度慢,数据流量过大,过度依赖服务器等问题。通过仔细分析用户需求之后,该软件要完成以下功能:1、查询线路功能获得线路经过的每个站点信息以及线路的票价信息和发车时间信息。2、地图查询功能借助BaiduMap,完成公交查询并显示地图线路。3、数据更新功能服务器响应客户端请求返回一段数据流,客户端接收此数据流后,按照JSON格式规范对数据流进行解析,解析后将数据存入客户端数据库。南通大学毕业设计(论文)第3章 技术背景介绍3.1 GPS3.1.1全球定位系统简介全球定位系统(英语:Global Positioning System,通常简称GPS),又称全球卫星定位系统,是一个中距离圆型轨道卫星导航系统。它可以为地球表面绝大部分地区(98%)提供准确的定位、测速和高精度的时间标准。系统由美国国防部研制和维护,可满足位于全球任何地方或近地空间的军事用户连续精确的确定三维位置、三维运动和时间的需要。该系统包括太空中的24颗GPS卫星;地面上的1个主控站、3个数据注入站和5个监测站及作为用户端的GPS接收机。最少只需其中3颗卫星,就能迅速确定用户端在地球上所处的位置及海拔高度;所能收联接到的卫星数越多,解码出来的位置就越精确。该系统由美国政府于1970年代开始进行研制并于1994年全面建成。使用者只需拥有GPS接收机即可使用该服务,无需另外付费。GPS信号分为民用的标准定位服务(SPS,Standard Positioning Service)和军规的精确定位服务(PPS,Precise Positioning Service)两类。由于SPS无须任何授权即可任意使用,原本美国因为担心敌对国家或组织会利用SPS对美国发动攻击,故在民用讯号中人为地加入选择性误差(即SA政策,Selective Availability)以降低其精确度,使其最终定位精确度大概在100米左右;军规的精度在十米以下。2000年以后,克林顿政府决定取消对民用讯号的干扰。因此,现在民用GPS也可以达到十米左右的定位精度。GPS系统拥有如下多种优点:使用低频讯号,纵使天候不佳仍能保持相当的讯号穿透性;全球覆盖(高达98%);三维定速定时高精度;快速、省时、高效率;应用广泛、多功能;可移动定位;不同于双星定位系统,使用过程中接收机不需要发出任何信号增加了隐蔽性,提高了其军事应用效能。3.1.2 GPS系统的组GPS系统主要由空间星座部分、地面监控部分和用户设备部分组成。空间星座部分GPS卫星星座由24颗卫星组成,其中21颗为工作卫星,3颗为备用卫星。24颗卫星均匀分布在6个轨道平面上,即每个轨道面上有4颗卫星。卫星轨道面相对于地球赤道面的轨道倾角为55°,各轨道平面的升交点的赤经相差60° ,一个轨道平面上的卫星比西边相邻轨道平面上的相应卫星升交角距超前30°。这种布局的目的是保证在全球任何地点、任何时刻至少可以观测到4颗卫星。GPS卫星是由洛克菲尔国际公司空间部研制的,卫星重774kg,使用寿命为7年。卫星采用蜂窝结构,主体呈柱形,直径为1.5m。卫星两侧装有两块双叶对日定向太阳能电池帆板(BLOCK I),全长5.33m接受日光面积为7.2。对日定向系统控制两翼电池帆板旋转,使板面始终对准太阳,为卫星不断提供电力,并给三组15Ah镍镉电池充电,以保证卫星在地球阴影部分能正常工作。在星体底部装有12个单元的多波束定向天线,能发射张角大约为30度的两个L波段(19cm和24cm波)的信号。在星体的两端面上装有全向遥测遥控天线,用于与地面监控网的通信。此外卫星还装有姿态控制系统和轨道控制系统,以便使卫星保持在适当的高度和角度,准确对准卫星的可见地面。由GPS系统的工作原理可知,星载时钟的精确度越高,其定位精度也越高。早期试验型卫星采用由霍普金斯大学研制的石英振荡器,相对频率稳定度为/秒。误差为14m。1974年以后,GPS卫星采用铷原子钟,相对频率稳定度达到/秒,误差8m。1977年,BOKCK II型采用了马斯频率和时间系统公司研制的铯原子钟后相对稳定频率达到/秒,误差则降为2.9m。1981年,休斯公司研制的相对稳定频率为/秒的氢原子钟使BLOCK IIR型卫星误差仅为1m。地面监控部分地面监控部分主要由1个主控站(Master Control Station ,简称MCS)、4个地面天线站(Ground Antenna)和6个监测站(Monitor Station)组成。主控站位于美国科罗拉多州的谢里佛尔空军基地,是整个地面监控系统的管理中心和技术中心。另外还有一个位于马里兰州盖茨堡的备用主控站,在发生紧急情况时启用。注入站目前有4个,分别位于南太平洋马绍尔群岛的瓜加林环礁,大西洋上英国属地阿森松岛,英属印度洋领地的迪戈加西亚岛和位于美国本土科罗拉多州的科罗拉多斯普林斯。注入站的作用是把主控站计算得到的卫星星历、导航电文等信息注入到相应的卫星。注入站同时也是监测站,另外还有位于夏威夷和卡纳维拉尔角2处监测站,故监测站目前有6个。监测站的主要作用是采集GPS卫星数据和当地的环境数据,然后发送给主控站。用户设备部分用户设备主要是GPS接收机,主要作用是从GPS卫星收到信号并利用传来的信息计算用户的三维位置及时间。3.1.3 GPS的功能精确定时:广泛应用在天文台、通信系统基站、电视台中工程施工:道路、桥梁、隧道的施工中大量采用GPS设备进行工程测量勘探测绘:野外勘探及城区规划中都有用到导航:武器导航:精确制导导弹、巡航导弹车辆导航:车辆调度、监控系统船舶导航:远洋导航、港口/内河引水飞机导航:航线导航、进场着陆控制星际导航:卫星轨道定位个人导航:个人旅游及野外探险定位:车辆防盗系统手机,PDA,PPC等通信移动设备防盗,电子地图,定位系统儿童及特殊人群的防走失系统精准农业:农机具导航、自动驾驶,土地高精度平整授时:用于给电信基站、电视发射站等提供精确同步时钟源3.1.4 应用前景随着中国国民经济的快速增长的西部大开发的实施,我省的高等级公路建设迎来前所末有的发展机遇,这就对勘测设计提出了更高的要求,随着公路设计行业软件技术和硬件设备的发展,公路设计已实现CAD化,有些软件本身还要求提供地面数字化测绘产品的支持;建立勘测、设计、施工、后期管理一体化的数据链,减少数据转抄、输入等中间环节,是公路勘测设计“内外业一体化”的要求,也是影响高等级公路设计技术发展的“瓶颈”所在。目前公路勘测中虽已采用电子全站仪等先进仪器设备,但常规测量方法受横向通视和作业条件的限制,作业强度大,且效率低,大大延长了设计周期。勘测技术的进步在于设备引进和技术改造,在目前的技术条件下引入GPS技术应当是首选。3.2 Android平台Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供包括SDK、Key Apps、Middleware、Linux Kernel四个部分在内的全套手机软件方案。它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用1。3.2.1 Android特征Dalvik虚拟:Android采用的Java虚拟机是自主开发的代号为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运行效率更高。内嵌浏览器:基于开源的浏览器网页排版引擎WebKit。优化的图形:强大的自定义二维图形库。基于OpenGL ES 1O标准的3D图形功能,在移动3D开发中有着至关重要的地位。SQLite数据库:SQLitet提供结构化的数据存储。它是一款轻型免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。多媒体支持:支持各种通用的音视频和静态图像格式,如MP3、JPG、PNG等。Open Core是Android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现的。通过Open Core,程序员可以方便快速的开发出想要的多媒体应用程序。GSM技术:(依赖硬件)Global System for Mobile Communications,全球移动通讯系统,俗称“全球通”,是第二代移动通信技术,其开发El的是让伞球各地可以共同使用一个移动电话网络标准,让用户使_一部手机就能行遍全球。蓝牙,EDGE,3G,and WiFi是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。EDGE(EnhaIlced Data Rate for GSM Evolution),是增强型数据速率GSM演进技术。Camera,GPS,compass,and accelerometer:(依赖硬件)GPS(GlobalPositioning System)ItTI驯全球定位系统。它是一个由覆盖全球的24颗1J星组成的卫星系统。Compass是个开放源代码的JAVA搜索引擎框架。强大的开发环境:包括一个设备模拟器,调试工具,内存和性能检测,以及EclipseIDE的开发插件。Eclipse是个集成开发环境2。3.2.2 Android架构Android的架构是Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,如图2-1。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在Dalvik VM上运行的。图3-1 Android架构图Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序。开发语言是Java。Android应用程序的开发基于框架和组件。Android本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。Android应用程序框架之下是一套C/C+函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括:标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以及SQLite引擎等。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。这是被优化过的最小内存依赖的格式。Java编译器(dx工具)将注册了的和运行时用到的类编译成.dex格式。Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制,和内存管理机制等。Android系统平台是基于优化了的Linux内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。3.2.3 Android应用的构成和工作机制对于一个Android应用程序来说,是由Activity、 Intent Receiver 、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfestxml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。Activity是构成应用程序中最重要的构造块, 在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。1.活动生命周期:活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈项,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。图3.2 Activity状态变换路径图从图2-2可以看出,Activity有三个关键的循环:(1)活动的整个生命期:从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。(2)活动的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。在这两个方法调用之间,可以维护活动显示给用户的资源。onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。(3)活动的后台生命期:从调用onResume()开始,到onPause()被调用为止。在这段时间内活动处于其它所有活动之前,并与用户进行交互。一个活动可以不断在resumed状态和paused状态之间变换4。2.活动之间的切换:Android使用了Intent类来实现活动之间的切换工作。Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用Intent:直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。间接Intent,没有指定comonent属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。Intent Receivert是用于对外部事件的响应,当外部事件发生时,会使用NotificationManager通知用户。当一个Intent Receiver被触发时,系统会在需要的时候启动对应的应用程序。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。各种应用还可以通过使用ContextbroadcastIntent()将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯。Service是提供连续信息的应用程序。它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运行结束。本系统客户端扩展功能的音乐播放就是采用Service来进行设计和开发的,使用户可以边聊天边听音乐。Content Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完成。使用Content Provider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。3.3本章小结本章对Android平台的特征、架构以及Android应用的构成和工作机制进行了详细的分析。对于Android应用程序来说,主要由Activity、Intent Receiver、Service和Content Provider四部分组成,但并不是对于每一个应用程序,这四部分都是必须的。Activity是应用程序中最重要的一种构造块,我们对其进行了详细的分析,包括Activity的生命周期以及Activity之间的切换。第4章 平台的搭建4.1 Android 开发环境的搭建Android平台为开发者提供了源码开放的软件开发包( SDK) ,它包含了使用Java语言开发Android平台应用的必要工具和组件(API) 。进行开发前先要建立合适的开发环境,其中基于Java的整合型可扩展平台Eclipse是我们的首选。搭建环境所需要的软件:l 操作系统:Windows XP 或 Linux;l 软件包:Android SDK,ADT;l IDE环境:Eclipse IDE + ADT Eclipse3.3以上;l JDK:Java Runtime Environmcnt,JDK;4.1.1 JDK的安装下载JDK并且一路next进行安装,这里主要讲解JDK的环境变量如何配置:1. 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:2. JAVA_HOME值为: a) D:Program FilesJavajdk1.6.0_18(安装JDK的目录)3. CLASSPATH值为:a) .;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin;4. Path: a) 在开始追加 %JAVA_HOME%bin;安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java version 查看JDK的版本信息。出现类似如图3-1的画面表示安装成功了:图3.1验证JDK安装是否成功4.1.2 Eclipse的安装下载如图3-2所示的Eclipse IDE for Java Developers(92M)的win 32bit版(选择自己适合的版本)解压之后即可使用。图3.2 Eclipse下载4.1.3 Android SDK安装在Android Developers下载android-sdk_r05-windows.zip,下载完成后