




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I基于Android系统的手机地图应用软件开发摘 要随着日异月新的科技发展,人们的生活越来越丰富多彩。我们已经身处信息爆炸以及知识经济繁荣的世界。这样的潮流同时带动了移动设备的迅猛发展,其中智能手机大有作为。而安卓操作系统正是现今智能手机上最为流行,最为开放,最有可能统治智能手机市场的一种功能强大的系统。本文通过介绍安卓系统的历史渊源,体系结构以及同各大主流手机操作系统的对比,指出安卓系统能独树一帜,统领手机市场的必然性。本文还全面展示了用Eclipse开发工具开发手机应用软件的方法,介绍了例如Activity,Intent,Service以及Content Provider等基础概念,分析了安卓应用程序的目录结构,基本组件以及数据存取等。在这些基本概念的理解之上,本文还详尽介绍了手机地图开发的步骤和实现机制。通过百度公司提供的API,获取其地图密钥,结合帮助文档,实现了地图的定位,路线绘制以及标记等基本功能。文章最后全面展示了此款手机地图应用软件的系统界面,调试结果以及各大功能,从而说明前期设计理念和方法的正确性和可行性。关键词:安卓,智能手机,定位,地图The Development of Mobile Phone Map Based on Android Operating SystemABSTRACTWith the development of changeable science and technology, peoples life has become more and more colorful. We have lived in the world that information explosion and knowledge economy flourishing. At the same time, the tide put in motion on the mobile devices which has developed rapidly. In these devices, the smart phone is making itself the best one. Nowadays, Android System which is the most popular and open, has become the most dominated intelligent handset operating systems, and its powerful function will make itself the leader among the smart phone market.This article has introduced the history and structure of Android, and made a contrastive with the present main intelligent handset operating systems, through which we can acknowledge the reason and inevitability why Android can be unique and dominate the handset phone market. This article also entirely demonstrated the method of developing phone application with the Eclipse development tool, and introduced the basic conception such as “Activity”, “Intent”, “Service” and “Content Provider”, and made analysis on architecture, basic modules and data storage operation of Android application. After understood all these basic conception, this article also detailed demonstrated the procedure and realization mechanism of mobile phone map development. Through the Baidu Corporations API and obtained the map key and combined with relative help document, it can realize the basic function such as positioning, route drawing and marking. At the end of this article, the interface of the mobile phone map application as well as the debugging results and essential function has been totally demonstrated, which strongly proved that the design philosophy and method are right and feasible.KEY WORDS: Android, smart phone, positioning, mapIII目 录摘要 ABSTRACT 1 绪论 11.1 选题背景和意义 11.2 安卓发展历史 21.3 安卓与主流手机系统 31.4 本文主体结构 42 安卓系统简介 62.1 安卓SDK 62.1.1 Android SDK内容 62.1.2 Android API核心包分析 62.1.3 Android SDK提供的工具包 72.2 安卓系统的应用程序组成 82.2.1 Activity 82.2.2 Broadcast Intent Receiver 82.2.3 Service 82.2.4 Content Provider 82.3安卓系统的应用程序体系结构 93 开发工具及系统环境搭建 103.1 开发工具简介 103.2 开发环境搭建 103.3 虚拟机简介 114 安卓系统手机地图设计 134.1 开发方法及步骤 134.2 设计理念 134.3 功能需求分析 144.4 系统模块分析 144.5 程序流程图 154.5.1 应用程序流程跳转 164.5.2 应用程序流程跳转及Activity分析 165 手机地图应用软件的实现 185.1 程序主界面 195.2 程序主界面的实现 195.3 我的地图功能实现 225.4 实时定位功能实现 25 5.5 绘制图形功能实现 27 5.6 地图标记功能实现 285.7 地点搜索功能实现 295.8 公交查询功能实现 315.9 离线地图功能实现 326 结束语 346.1 总结 346.2 展望 34致谢 35参考文献 36附录 3745基于Android系统的手机地图应用软件开发1 绪论1.1 选题背景和意义莱特发明飞机的前200年,人们都说那种在天上飞翔的机械根本不可能实现,同样,人们也无法想象贝尔发明的电话最终会演变成现在的移动电话。进入3G时代的人们,早就不能满足于用手机打电话或者发短信,现在的手机已经成为我们不可缺少的娱乐工具,闲暇之余,我们用手机看电影,听音乐,看电子书,和家人视频聊天,我们甚至用手机网上购物,把手机充当支付工具。这些强大的功能是一般手机系统或是非智能手机所不能实现的。软件的实现需要硬件的支持才能完成,所以要实现以上功能,必须是以硬件同等发展为前提的。而近些年,人们就可以切身体会到硬件的变化,手机内存卡容量的不断增大,电阻屏向多点式电容屏的转变,还有各种芯片运算速率的不断加快,摄像头像素的不断细化,使得上述需求得到更有利的满足。正是在这样的背景之下,谷歌公司在2005年推出了第一代安卓智能手机操作系统。经过8年的发展,我们惊奇的发现,如今在电脑上流行的社交,娱乐等应用程序,可以同样的在安卓手机上运行,所以,当电脑上的应用软件更新的时候,也意味着你的手机应用软件需要更新了。于是,人们终于感受到“PC机最终会手机化,而手机终将会PC机化”这种预言,这并不是一种矛盾,而是信息革命前行之路上的必然,只有更满足人们使用习惯,使用快捷方便的形式和工具才能不被淘汰,继续发展,“优胜劣汰”在这里同样适用。手机地图应用软件正是一款满足人们需求的软件,通过它,人们不仅能随时随地知道自己的位置,还能方便的查询附近的餐馆,商店以及汽车站等信息,大大地改善了我们的生活质量。而在几十年前,对于个人开发者来说,要开发一款手机地图几乎不太现实,因为在当时,手机开发者要实现地图服务,大多数需要GPS传感器支持,与此同时还要支付某些地图所有者相关费用。而如今,只需要申请简单的密钥,程序员就可以轻松免费地调用谷歌或者百度等大型公司的地图服务,而在安卓系统上,开发地图也不再需要直接控制GPS,而是基于Web上的开发。这样,不仅省去了和地图开发商沟通的人力物力,而且使程序员能更有效、更集中在软件开发本身。因此,基于安卓系统的手机地图应用软件开发是十分有意义的,它不仅能让初学者更好的了解安卓系统,熟悉安卓开发的完整过程,还能培养我们面对用户需求,分析并解决问题的能力,加强我们分析市场,并根据市场导向及时有效地制定方案的洞察力,为我们不如社会,走向工作岗位提供强有力的实践基础。1.2 安卓发展历史(1)2005年Google收购了刚刚成立了22个月的Android公司。(2)2007年11月5日,以Google为首的34家公司宣布成立开放手机联盟(Open Handset Alliance,简称OHA)。(3)2008年9月22日,美国运营商T-Mobile USA在纽约正式发布第一款Google手机T-Mobile G1。下面,将用表格的形式来说明安卓不同版本的相关变化。表1-1 Android各大版本功能及相关变化Android版本号相关功能1.02.03.04.0.1Android Market;网页浏览器;照相机支持;E-mail传输;声音识别;支持Wi-Fi和蓝牙优化硬件速度;支持更多屏幕分辨率;改良用户界面;内置相机闪光灯;改进虚拟键盘;支持动态界面设计仅供平板电脑使用;Google eBooks;Google Talk视讯功能;支持多核心处理器统一了手机和平板电脑使用的系统,应用会根据设备自动选择最佳显示方式;提升硬件性能,系统优化,流畅度提升;脸部识别锁屏;内置流量监控功能相关版本的截图如图1-1,图1-2,图1-3。图1-1 搭载Android 2.2 Froyo的Google Nexus One图1-2 搭载Android 2.3 Gingerbread的Googles Nexus图1-3 Android 4.1 Home界面显示1.3 安卓与主流手机系统当今流行的手机系统中,除了Android系统之外,还有诺基亚的塞班系统,苹果公司的iOS操作系统,微软公司的Windows Phone系统以及黑莓的RIM系统。下面,就这几款软件与Android作简要的对比:(1)塞班系统:Symbian系统是塞班公司为手机而设计的操作系统,其优点是在安卓出现之前,占有了市场份额的绝大部分,但由于缺乏新技术支持,驻足不前,导致用户量骤减。塞班系统具有较完整的功能,并且简单易用,对手机的内存要求比较低,但是其反应速度较慢,且并不利于软件更新,为相关功能的扩展带来不便。因此,它被淘汰成为必然。(2)iOS操作系统:其全称是iPhone OS,其第三方软件十分丰富,屏幕支持多点式触摸,可以通过屏幕对应用进行直接的操作,这是苹果公司的一大创举,由于其界面稳定友好,受到了广大用户的喜爱。但是其缺点在于,无论从硬件还是软件方面,苹果公司对改操作系统进行了绝对的保护,完全封闭了iOS。另外一方面,苹果的产品价格不菲,影响了iOS在低端市场的推广和发展。由于Android和iOS十分相似,所以下面将用表格的形式対它们进行比较。表1-2 Android VS iOSAndroidiOS可以在PC,MAC和Linux下开发以Linux为基础Java25美元可以通过Web下载应用程序支持FlashGoogle,ARM,高通,三星超过50000个应用程序只能在MAC下开发以MAC OS为基础Objective C每年99美元只能在App Store下载应用程序不支持FlashApple超过100000个应用程序(3)Windows Phone 8系统:目前Windows Phone机型的最新版本,仅是诺基亚Lumia 610采用的Tango系统,也被称为WP7.5系统,但其定位低端,性能一般。AT&T版本的Windows Phone 8机型,将定位在高端机、中低端机两个类别,且机型代号不尽相同,代号“Prodigy”的机型极有可能定位在高端机型,而代号“AC/DC”机型则被限定在中低端行列。它的开发语言是C#,有利于初学者学习,但由于发布时间较晚,上市机型偏少等缺点,使得其较Android和iOS更缺乏竞争力。1.4 本文主体结构第一章介绍了应用系统的开发背景和开发意义,简要叙述了Android系统的发展历史,同时深入比较了安卓系统同其他主流手机操作系统的区别。第二章详细地介绍了安卓系统,其中包括SDK的介绍,系统应用程序的组成,系统应用程序的体系结构,为以后章节的开发奠定了基础。第三章首先介绍了系统应用需要的开发工具Eclipse,然后详细的说明了开发应用所需要搭建的环境,最后简要介绍了虚拟机的使用方法。第四章首先介绍了手机地图的开发方法和步骤,同时说明了开发的理念和本款软件的优势。其次,分析了功能需求,初步设定了软件所需要的基本功能。最后,把软件合理模块化,将系统的程序流程图绘制完成。第五章首先展示了手机地图的整体界面,然后逐一介绍了各大功能的实现方法,最后展现了调试结果。第六章总结了本文的相关工作,指出了应用软件的很多疏漏和需要改进的地方,对安卓系统应用以及本文软件的前景作出了展望。2 安卓系统简介2.1 安卓SDK学过Java的人都知道,Android SDK类似于JDK,它的全称是Android Software Development Kit,即安卓系统的软件开发工具包。这个开发包可以从相关网址经行下载,其中,官方版网址为/sdk/index.html。Android SDK管理器提供了3个平台的版本:Windows、Linux(i386)和Mac OS X(Intel),下载时可以根据目标平台选择相应的SDK进行下载。2.1.1 Android SDK内容打开下载并安装好的SDK,可以看到文件夹中含有如图2-1所示的一些子文件夹。图2-1 SDK包含的文件下面就这些文件作简要的介绍1:(1)docs文件夹中包含的是完整的Android SDK参考文档,包括SDK发布的历史信息(主要包括该版本的亮点和与上一版本的API差异报告)、开发引导和API参考。(2)tools文件夹中存放的是SDK附带的Android平台的公用工具,如Android模拟器、SQLite数据库工具等。(3)platform-tools文件夹中存放的是与平台有关的工具,如调试桥接工具、Dalvik字节码转换工具、Android资源打包工具等。(4)samples文件夹中存放的是相关的开发实例,初级开发者可以通过这些实例代码更好地理解安卓应用程序的实现过程。2.1.2 Android API核心包分析从安装系统平台的最底层到最高层的基本核心API包有如下2-3:(1)Android.util:包含一些底层辅助类,例如,特定的容器类、XML辅助工具类等。(2)Android.os:提供基本的操作服务,消息传递和进程间通信IPC。(3)Android.graphics:作为核心渲染包,提供图形渲染功能。(4)Android.text、Android.text.method、Android.test.style、Android.test.util:提供一套丰富的文本处理工具,支持富文本,输入模式等。(5)Android.database:包含底层API处理数据库,方便操作数据库表和数据。(6)Android.content:提供各种服务访问数据在手机设备上,程序安装到手机设备和其他的相关资源,以及内容提供展示动态数据。(7)Android.view:核心用户界面框架。(8)Android.widget:提供标准用户界面元素,list(列表),button(按钮), layoutmanagers(布局管理器)等,以上是组成我们界面的基本元素。(9)Android.app:提供高层应用程序模型,实现使用Activity。(10)Avide:提供方便调用系统提供的content providers的接口。(11)Android.telephony:提供API系统交互和手机设备的通话接口。(12)Android.webikit:包含一系列工作在基于web内容的API。除了以上面介绍的这些核心包外,Android还提供了一些可选的API,如:GPS的API-LBS定位服务(Location-Based Service),可以通过集成的GPS芯片来接收卫星信号,从而确定手机的位置;多媒体接口(Media APIs)Android平台集成了很多影音解码器及相关的多媒体API,通过这些可选的API,开发者可以让手机支持MP3、MP4、高清晰视频播放等;图形处理API,Android平台上的游戏娱乐功能,可以支持3D游戏;低级硬件访问,这个功能主要用于控制手机的底层方面操作4。2.1.3 Android SDK提供的工具包Google公司为Android开发平台提供Android模拟器和Eclipse的Android开发工具插件,Android SDK也包含了各种在模拟器用于调试、打包和安装的工具,其针对不同的使用场景,能带来很多便利5。(1)Android系统模拟器(Android Emulator):一个运行在计算机上的虚拟移动模拟器,可以使用模拟器在一个实际的Android运行环境下设计,调试和测试用户的应用程序。(2)集成开发环境插件:用于Eclipse集成开发环境的Android系统应用开发工具插件,它为Eclipse集成开发环境增加了强大的功能,使得创建和调试Android应用程序更加简单和快速。(3) 调试系统监视服务:它集成在Dalvik(Android平台的虚拟机)中,用于管理运行在模拟器或设备上的进程,并协助进行调试。可以用它来去除进程、选择一个特定程序来调试、生产跟踪数据、查看堆和线程数据、对模拟器或设备进行屏幕快照等。(4)Android系统调试桥:它用于向模拟器或手机设备安装应用程序的Apk文件和从命令行访问模拟器或手机设备。也可以用于将标准的调试器连接到运行在Android模拟器或手机设备上的应用代码。2.2 安卓系统的应用程序组成开发安卓系统应用程序之前,了解其组成是十分重要的,几乎所有的应用程序都包含如下几个方面的内容:Activity、Broadcast Intent Receive、Service、Content Provider。当然,在某些特殊情况,取上述四大部分的三大部分内容便可完成一个完整的应用程序开发。2.2.1 Activity首先,必须弄清楚Activity的具体含义。其实,Activity相当于一个应用程序的门面,也即一个屏幕就是一个Activity。每个Activity有序的组合、跳转便构成了一个应用程序。每个Activity都有相应的生命周期,分别是产生、运行和销毁。在Android系统中为了在各个Activity之间进行跳转可以使用Intent,Intent中两个最重要的部分是Intent的动作(Action)和动作对应的数据(data)6。此外还有一个Intent Filter类,它与Intent有着密切的关系,Intent Filter类是用来描述Intent请求的,如果有一个Intent的有效请求,那么Intent Filter就会被用来描述一个Activity操纵那个Intent。2.2.2 Broadcast Intent Receiver顾名思义,这是一种事件响应的机制,即对程序的某种指令做出响应,并通知其他应用程序。有些Broadcast Intent Receiver需要在AndroidManifest.xml文件中注册以后才能被系统执行,但有些在系统开启的时候会自动执行。这是一种很重要的响应机制,它使得应用程序有了动态和广播的特性。2.2.3 ServiceService是用来处理耗时比较长的操作,它不同于Activity,它是一个应用程序组件,没有图形化的界面,不是一个单独的进程。正如字面意思一样,它类似于一个后台服务者。在安卓系统中,启动一个Service的方法是调用StartService(Intent service)方法,启动之后就可以控制后台程序的运行了。2.2.4 Content ProviderContent Provider是一个强大的获取数据和存储数据的接口。如果两个应用程序需要交换数据,Content Provider是必不可少的。用Content Provider的好处在于,外界可以通过这个接口方便地对数据进行增,删,改,查操作。常用的接口有:(1)query(Uri, String, String, String):通过关键字查询数据5-8。(2)insert(Uri, ContentValues):将一组数据插入到指定的地方。(3)update(Uri, ContentValues, String, String):更新数据。(4)delete(Uri, String, String):删除数据。2.3 安卓系统的应用程序体系结构要了解安卓系统的应用程序体系结构,首先需要明白其基础框架结构。图2-2为Google官方网站提供的一张安卓的体系结构图。图2-2 安卓系统体系结构图由这张图可以知道,软件的结构从下往上依次是:(1)基于Linux内核的操作系统:它包括了一些显示器的驱动程序、照相机的驱动程序以及闪存的驱动程序等等。(2)库和运行时环境:库中包括一些程序包,大多数是用C或C+编写并封装的;安卓的运行时环境和Java的类似,包括了核心包、开发中常用的类库(如IO,Utility等类)、一个针对手机优化过的虚拟机。(3)应用程序框架:提供了一些手机开发最基本的API,程序员开发工作主要是基于这个框架之上的。(4)应用程序:程序员开发的程序便在这个层上。3 开发工具及系统环境搭建3.1 开发工具简介学过Java的人都用过Eclipse,这是一款功能强大的软件,是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。另外,Eclipse附带了一个标准的插件集,最新的版本还附带了ADT等开发工具。Eclipse官方下载网站是:/downloads/。图3-1为其界面。图3-1 Eclipse界面从这张图便可以看出,Eclipse是一款界面友好的开发软件,它强大的功能使得程序员不用花费大量时间和精力在语法上,这样有利于节约时间,提高开发效率。因此,Eclipse越来越受开发者的青睐。3.2 开发环境搭建本文的开发环境为Windows 7,为开发安装的相关软件包括Eclipse最新版、Android SDK、JDK1.6。下面简要介绍环境搭建的一般步骤:(1)JDK的下载:官方网站/technetwork/java/javase/downloads/index.html。安装好JDK后,有一个细节需要注意,那就是环境变量的更改。鼠标右击“我的电脑”,选择“属性”,在弹出的对话框中选择“高级系统设置”,再在弹出对话框选择“环境变量”,接下来你就可以设置相关路径了。(2)安装Eclipse。下载完成后,一般是以压缩包的形式呈现在用户面前,只要解压缩就可以使用了。第一次开启Eclipse最好设定一个统一的工作路径,这样有利于以后的开发工作。(3)安装Android SDK。下载网址为:/sdk/index.html。要特别注意,新版的SDK已经包括以下内容:Eclipse + ADT plugin、Android SDK Tools、Android Platform-tools、The latest Android platform、The latest Android system image for the emulator。所以本文介绍的很多工具的下载和安装方法应该合理进行参考。(4)安装ADT。ADT是Google为Android开发者提供的一个开发Android应用程序的Eclipse插件,开发者通过ADT可以方便的穿件Android项目,创建应用程序界面,在基于Android框架API的基础上添加组件,以及用SDK工具调试应用程序,甚至导出签名的APKs以便发行应用程序。ADT有两种安装形式,一种是在线安装,另一种是先下载ADT,在来安装ADT。本文选择先下载ADT后再进行安装。 3.3 虚拟机简介安卓系统虚拟设备(Android Virtual Device)简称AVD。是专门为安卓开发而构建的一个安卓模拟器,图3-2为其界面。图3-2 AVD界面由于最新版的Eclipse是自带ADT的,程序员的主要任务是设置虚拟机的相关参数。在Eclipse中点击Android Virtual Device Manager,在弹出的对话框中选择New,在弹出的对话框中输入一个AVD Name,选择Device、Target、CPU/ABT的种类,SD Card的容量选择250M便足够开发使用,单击“OK”完成创建。每个AVD模拟了一套虚拟设备来运行Android平台,这个平台至少有自己的内核,系统图像和数据分区,还可以有自己的SD卡和用户数据以及外观显示等。但是虚拟机有一些缺点,如它不能模拟手机的Wi-Fi功能,所以很多涉及Wi-Fi操作的功能开发不能顺利进行;其次,启动模拟器需要比较长的时间,而且它会占用比较多的资源。所以,要求开发者的个人电脑满足主频至少在2.5以上的CPU,2G以上的内存空间。4 安卓系统手机地图设计4.1 开发方法及步骤一个应用软件的开发初期,绝对不能盲目的进行代码编写,必须先弄清楚用户需求,计划好软件的总体架构,为后期的开发作指导。下面就具体分析安卓开发所应具备的一般步骤9:(1)应用程序功能:在应用程序编码之前,就应充分考虑到用户的需求,明确所要达到的目的,以及为了达到这些目的应用程序应具有的基本功能。本程序的基本功能为:记录用户移动线路、将轨迹显示在Map上、地图功能等。(2)应用程序所需要的界面以及界面之间跳转的流程:在这个阶段应分析应用程序为达到目的,在实现功能过程中的流程,以及所需要的界面和界面之间的跳转流程。(3)应用程序所需要的数据及其数据的来源和格式:在这个阶段应深入分析为完成应用程序的功能所必需具备的数据,数据的格式、来源、用途以及存储方式等。(4)应用程序是否需要服务端支持:在这个阶段需要考虑应用程序在使用过程中是否需要服务器端的支持,如果需要应该为其提供服务器端的支持。(5)应用程序是否需要本地数据库支持:在这个阶段需要考虑应用程序是否需要本地数据库的支持,以及数据支持的方式,如果需要应该为其提供本地数据库的支持。(6)应用程序是否需要特殊的权限:在这个阶段需要考虑应用程序在使用过程中的各种场景,是否有特殊场景需要特殊的权限,如果需要应该设计权限。(7)应用程序是否需要后台进程:在这个阶段需要考虑应用程序的应用方式,是否在使用过程中需要调用后台进程,如果需要应该为其设计合适的后台进程。4.2 设计理念在设计该应用程序之初,就应该分析设计该程序所能产生的效应,即应用软件所具备的优势。现今的主流地图软件包括Google地图、百度地图、高德地图等。这些软件功能已经十分强大,那么如果在功能上耗费时间和精力是没有成效和市场的。用过这些软件的人应该知道,这些地图在中高端手机上运行时没有问题,但是面对中低端智能手机,它们的缺点就凸显出来了,那就是运行比较缓慢甚至出现卡机的现象。所以,该款软件的优势应该在于简易灵巧且功能完善,如果后期制作允许,还应该致力于界面设计,因为一款界面友好的软件往往会得到用户的青睐。因此,本文所涉及的这款软件旨在针对中低端智能手机市场,设计理念是尽量易于运行且功能完善,界面美观。4.3 功能模块分析本文将实现一个功能比较完备的手机地图软件,该应用程序可以如下功能。(1)我的地图功能:包括截图,设置旋转角度,设置俯视等小功能。该功能主要为了方便用户对地图进行合适角度的(2)实时定位功能:这是每款软件的基础功能,也是核心功能,它能让用户时刻知道自己身处的位置绘制。(3)绘制图形功能:包括点的绘制,圆形的绘制以及矩形的绘制。这样可以方用户进行范围设定和相关几何运算。(4)地图标记功能:支持多地点的标记,用户可以根据自己的需求对相关地点进行标识。(5)地点搜索功能:该应用程序还具有地点搜索功能,如果输入某一关键字,地图将在市区内搜索带有次关键字的所有地点,这样,用户可以进行相应的选择。(6)公交查询功能:为用户提供城市部分公交路线图。(7)离线地图功能:为用户提供某些城市的地图下载,这样,可以有效的节省用户流量,能得到用户的喜欢。4.4 系统模块分析(1)我的地图功能模块:其中截图功能会把用户所截图片存放在默认的图片收藏夹里,可以方便在图库里进行查看。另外,系统默认把地图旋转45度,俯视角为45度,当然用户可以根据自己的喜好自行修改旋转角度及俯视角度。(2)实时定位功能模块:这个功能对手机的网络要求比较高,当用户点击实时更新按钮的时候,地图会自动定位用户所在的地点,并用蓝色小圆点进行标识。(3)绘制图形功能模块:内包含六个按钮,“绘制点”,“绘制线”,“绘制矩形”,“绘制圆”,“移除矩阵”以及“清除所有”。点击“绘制点”,系统将绘制一个浅蓝色的小圆点;点击“绘制线”,系统将绘制一条红色的折线;点击“绘制矩阵”,系统将绘制一个浅紫色的矩形框;点击“绘制圆”,系统将绘制一个浅绿色的圆形。重复点击这些按钮,所有种类的颜色都会加深。(4)地图标记功能模块:该模块具有三个按钮“添加标记”,“清楚一个标记”以及“清除所有”。当点击“添加标记”按钮时,地图会出现一个“A”字样的红色标识气泡,再次点击可以得到一个“B”字样的红色气泡标识,以此类推。点击“清除一个标记”,会清除刚才产生的末尾标记,持续点击,将逆序清除标识。点击“清除所有”,所有标识一次性清除。(5)地点搜索功能模块:系统默认在“西安”市内找“大学”,即当用户点击开始按钮时,系统会搜索西安市内的所有大学。(6)公交查询功能模块:系统默认查询“西安”市内的“336”公交车,用户也可以根据自己的需要输入其他城市进行查询。点击“开始”按钮,系统将绘制出“336”;路公交车的行驶路线。(7)离线地图功能模块:为用户提供某些城市的地图下载,这样,可以有效的节省用户流量,能得到用户的喜欢。程序的系统模块如图4-1。图4-1 程序系统模块4.5 程序流程图开发人员都知道,Android系统的应用程序的页面是基于Activity跳转的,当程序在不同的页面之间转换的时候,Activity也在进行着跳转,而Activity的跳转则在代码层带动程序功能的实现,因此为了顺利的完成程序,必须对程序的流程和程序的页面和Activity跳转流程有清晰的了解。程序的流程本文将用流程图来展示,而本程序的Activity的跳转相对直接明了,因此只做简要说明和分析。结合之前的设计,先用流程图来分析整个程序的运行过程,在弄清楚运行过程之后,再用例图来分析用户与程序页面的交互情况,从用例图的交互分析来得到程序页面的跳转流程以及程序的Activity跳转流程。4.5.1 应用程序流程跳转点击模拟器中的个人地图程序“晓伟地图”,程序运行后会打开一个主界面,用户在主界面进行选择后再进行各种操作。程序的大致框图如图4-2。图4-2 程序框图4.5.2 应用程序流程跳转以及Activity分析根据之前的程序流程分析再结合程序的功能和页面使用用例图分析程序的页面跳转,程序的用例图如图4-3。图4-3 程序的用例分析由上图可知,在页面的跳转过程中,会有四个Activity伴随着页面的跳转而发生变化,分别是MyMap、MyPoi、Itemized、MarkPoi、Search、Busline、Offline七个Activity,为此应在程序中设置Activity跳转算法,跳转算法如下:Intent intent = new Intent();switch (item.getItemId()case MENU_MYMAP:intent.setClass(XiaoMap.this, MyMap.class);startActivity(intent);return true;case MENU_MYPOI:intent.setClass(XiaoMap.this, MyPoi.class);startActivity(intent);return true;case MENU_ITEMIZED:intent.setClass(XiaoMap.this, Itemized.class);startActivity(intent);return true;case MENU_MARKPOI:intent.setClass(XiaoMap.this, MarkPoi.class);startActivity(intent);return true;case MENU_SEARCH:intent.setClass(XiaoMap.this, Search.class);startActivity(intent);return true;case MENU_BUSLINE:intent.setClass(XiaoMap.this, Busline.class);startActivity(intent);return true;case MENU_OFFLINE:intent.setClass(XiaoMap.this, Offline.class);startActivity(intent);return true;case MENU_EXIT:finish();break;return true;5 手机地图应用软件的实现按照之前设计好的规划,我们将应用程序的界面功能先实现,再为应用程序添加Service服务和数据的存储服务,最后将整个应用程序的功能连接起来,完成应用程序的开发。在本程序的开发过程中将依次实现下列界面以及相关的服务:主界面、我的地图界面、实时定位界面、绘制图形界面、地图标记界面、地图标记界面、地点搜索界面、公交查询界面、离线地图界面、Service和数据库服务、流程连接等。一个Android的应用是由一个或者多个Activity组成的,Activity是一个UI的容器,其本身并不在用户界面上显示的。我们在具体编程之前,先简单地了解一下,具体编程当中用到的UI基本元素以及它们之间是一种什么样的继承结构。在Android系统当中View类是最基本的一个UI类,基本上所有的高级UI组件都是继承View类而实现的,在应用程序中所需要用到的TextView(文本框)、Button(按钮)、List(列表)、EditText(编辑框)、RadioButton(多选按钮)、Checkbox(选择框)等都是View类。如图5-1,Android系统的UI组件的树形类图。在Android系统中界面的生产有三种方式:通过在xml中配置来生成系统界面、用户使用自己的界面接口来生成系统界面、在程序中直接通过代码来生成系统界面。在本程序中通过程序中编写代码来进行界面布局。程序的主界面用来显示系统的七大功能,在主界面上,布局文件只需要定义一个“TextView”即可,而在资源文件里,还需要添加几个菜单,菜单的作用分别是“退出”和“关于”。图5-1 安卓系统UI组件的树形结构(1)视图组件(View):一个视图在屏幕上占据了一块矩形区域,它负责渲染这块矩形区域(如将这块区域变成蓝色或其他颜色
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 税务筹划方案设计-洞察及研究
- 三年级心理健康学习支持计划
- 2025年加工数量结算协议书
- 2025年新政府农村拆房协议书
- 2025年电站股权转让协议书
- 商业银行信用风险复核流程
- (2025年标准)邮箱授权协议书
- (2025年标准)设备质押协议书
- 粤教版小学科学二年级上册课外活动教学计划
- 五年级上册部编道德与法治教学内容计划
- Z20+名校联盟(浙江省名校新高考研究联盟)2026届高三第一次联考英语及答案
- 2025-2030年中国黑色像素定义层材料(BPDL)市场调研分析及投资前景研究预测报告
- 2025至2030中国开环霍尔效应电流传感器行业发展趋势分析与未来投资战略咨询研究报告
- 民族宗教法规课件
- 2025年吉林省事业单位招聘考试公共基础知识考试试题库及答案详解
- 2025年农业科技学(农业技术推广)知识考试题库与答案
- 2025年陕西西安工程大学专职辅导员招聘考试笔试试题(含答案)
- 共享员工模式创新创业项目商业计划书
- 低压电动机检修培训课件
- 2025年26道医院财务科岗位面试真题及答案
- 研发样品管理办法
评论
0/150
提交评论