1、 JISHOU UNIVERSITY本 科 生 毕 业 设 计题 目: 基于 Android 系统的手机地图 APP作 者: 熊刚学 号: 201520078所属学院: 信息科学与工程学院专业年级: 电子信息工程技术,2013 级指导教师: 侯冬晴 职 称: 副教授完成时间: 2016 年 11 月 01 日吉首大学教务处制吉首大学本科生毕业设计目 录摘 要 .IAbstract .II第 1 章 绪 论 .11.1 课题研究的背景和目的 .11.2 国内外研究现状 .11.3 研究内容和设计结构 .3第 2 章 课题设计相关技术概述 .42.1 开发语 言 .42.2 Android 的架构
2、 .42.3 Android SDK .5第 3 章 软件需求性分析 .63.1 可行性 .63.2 需求分析 .73.3 业务流程 .7第 4 章 百度 Key(密钥)申请 .94.1 申请百度密钥 .94.2 将 Key 添加到 manifests 文件 application 当中 .12第 5 章 系统设计 .135.1 系统功能结构 .135.2 声明软 件应用 权限 .135.3 基本配 置 .14第 6 章 系统实现 .166.1 系统运行环境和开发平 台 .166.2 系统开机 闪屏页面 .176.3 地图主界 面 .186.4 实时路况界面 .226.5 视图界面 .236.
3、6 搜索界面 .256.7 导航 界面 .29第 7 章 地图上线 .367.1 预期测试结果 .367.2 实际测试 结果 .36吉首大学本科生毕业设计结束语 .38参考文献 .39致 谢 .40吉首大学本科生毕业设计0基于 Android 系统的手机地图 APP摘 要本设计是一款适用于 Android 系统移动地图应用,其中调用的是百度地图 Android SDK 是一套基于 Android2.1 及以上版本的移动设备应用接口。在手机地图领域做得最好的就当数谷歌地图和百度地图了,并且这两种地图都提供了丰富的 API1,使得任何开发者都可以轻松地将地图功能引入到自己的应用程序当中。通过调用地
4、图 SDK 接口可以轻松访问在手机上访问百度地图服务和数据,可以构建功能丰富、并且交互性强的手机移动地图应用程序。UI 设计方面借鉴了百度简约的设计风格,简单明了又不失独特。Java 开发语言和最新的 Android Studio 开发软件为本应用提供了稳定的开发环境及开发平台,通过设计本应用可以提供地图展示(城市热力图、卫星地图、城市实时路况信息图)地图定位和地图操作功能,支持城市内 POI 检索并进行 Place 详情列表展示,根据 POI 检索结果和长按地图设置目的地的操作会进行覆盖物标注从而展示更加丰富的地图。目前还可以支持百度地图的调启功能包括(驾车导航和骑行导航) ,根据导航又可以
5、分成模拟导航和实时导航两部分。其中模拟导航作为创新点则间接具备了提前查看实时行驶交通,查看线路规划的功能从而提高导航效率。关键词:地图导航;百度地图;Java;Android SDK吉首大学本科生毕业设计1Mobile phone map based on Android systemAbstractThis design is a mobile map application for Android system,which calls the Baidu map Android SDK,it is a set of Android2.1 and above versions of mobi
6、le device application interface.Google Maps and Baidu maps are the best in the field of mobile maps, because both maps provide a rich of API, making any developer can easily use map functions attach into their applications 1. By calling the Map SDK interface you can easily access the Baidu map servi
7、ce anddata on your phone ,also can build feature-rich and interactive mobile map application. And UIdesign borrowed from Baidu simple design style, its concise and unique.The Java development language and the latest development software for Android Studio provide a stable development environment and
8、 development platform for it.The design can provide map display (city heat map, satellite map, city real-time traffic information map) ,positioning,operation function and support to the city POI search and show the details of the list.According to the POI search results and long-press the map to set
9、 the destination operation will be coveredto show a richer map. At the present it also can support the call function from Baidu map include (driving navigation and riding navigation).According to navigation,it can be divided into twoparts-simulation navigation and real-time navigation.The simulation
10、 navigation as a innovative,it has a view look over real-time traffic and route planning function in advance ,so it improvenavigation efficiency.Keywords: map navigation; Baidu map; Java; Android SDK第 1 章 绪 论1.1 课题研究的背景和目的移动互联时代早就已经来临了,说明新的时代新的技术已经越来越成熟。当移吉首大学本科生毕业设计2动通信和互联网结合在一起之后就形成了我们常说的移动互联网,我们的
11、手机和笔记本电脑以及其他的移动设备可以随时随地的访问互联网的任何资源以及需要查找的手机应用软件,本毕业设计我已经上传到了百度开发者平台通过扫描本论文末尾的二维码即可下载。我们的智能手机是互联网背景下非常具有标志性的一个移动终端以及客户端的工具,其实就相当于一台“小型的电脑” ,比如 android 系统就相当于它独立的操作系统,可以安装和卸载软件,也可以通过开启无线网络端口自由的接入断开通信网络,可以通过 SD 卡获得很大的存储空间和强大的计算数据功能,这就和传统的手机有了很大的区别。在这个网络技术日新月异的促进下,我国在通信技术领域早已经进入了第四代,即 4G 时代的出现,让我们可以享受到更
12、加快速的网络传输速度和更智能的手机移动设备。现如今手机成为了我们日常生活中必不可少的一道甜点。随着现在科技的进步人们的生活水平在不断提升,人们已经不用思考柴米油盐和温饱问题而开始热衷于如何提升生活的质量,所以普通只可以打电话发短信的手机已经无法满足人们的需要了。于是产生了智能手机。通过相关调查研究表明人们对于智能手机的使用率已经达到了 90%以上,智能手机也被开发者设计得越来越人性化,人们可以通过手机将完成越来越人性化的功能,可以说智能手机已经成为了人们生活的一部分。随着越来越多的人通过 android 来解决问题,现在和地图相关的 APP 在手机上的应用已经可以算是非常广泛了,和传统电脑 P
13、C 端的地图软件相比之下手机地图APP 可以具备随时随地查看并且可以非常轻松的规划出出行路线并且还能够进行导航,方便度有了明显的差距。所以我们可以开发出一款手机移动端地图来方便人们的生活。1.2 国内外研究现状手机以及一些其他的移动设备为人们带来了越来越多越来越方便的生活,不断出现的手机地图系统的相关软件为在外出行的人提供了途径,节约了时间也极大地提高了效率。所以和手机地图相关的研究在学术研究中开始慢慢显现出来了,其中就包括了市场数据研究和应用数据研究。根据报告,2015 年中国 IT 研究中心的相关研究对目前市场上份额排名前几位的地图软件展开了调查,通过调查对前几位的软件进行了排名,根据结果
14、显示,目前百度手机地图排名第一,市场份额 65.5%,由此可见更多人愿意使用百度地图来,高德地图排名第二,市场份额 20.1%,搜狗地图排名第三,市场份额 8.4%。15 年手机地图市场份额如图 1-1 所示:吉首大学本科生毕业设计3图 1-1 2015 年手机地图累计市场份额手机地图作为移动互联网的重要入口之一,各互联网巨头纷纷加大资源投入力度,展开对手机地图市场的争夺。2014 年高德地图经历了换帅,宣布发力 LBS,专注位置解决方案,打出“你敢用就敢赔”的活动;百度地图则展开国际化战略,新提供境外地图数据,与相关地图合作开放全球定位能力; 搜狗地图成为苹果官方 Apple Watch 首
15、批邀请入驻的应用。在此背景下,从 2015 年第 1 季度中国手机地图主要APP 的累积用户数、活跃用户数、用户关注度、用户日均定位请求数等相关指标说明现在的中国手机地图的市场情况。CNIT 分析认为,手机地图市场集中度高。百度地图、高德地图和搜狗地图位列三甲,份额超 90%,这和手机地图产品特性有关,需相应的资质才能运营,且还需实时更新相关数据,构成一定的技术门槛。15 年中国活跃用户市场份额如图 1-2所示:图 1-2 2015 年中国活跃用户市场份额比达(BigData) 数据显示,在 2015 年 Q1 中国手机地图活跃用户市场份额中,百度地图 67.9%最高,高德地图 19.7%居第
16、二,搜狗地图 8.5%位第三,另外,腾讯地图、谷歌地图 2.4%。因此以百度地图 SDK 作为载体根据百度 API 提供的文档来进行开发不仅和获得更加全面的数据而且性能无疑是最佳的。1.3 研究内容和设计结构吉首大学本科生毕业设计41地图的定位和我的位置功能在本地图 APP 软件的设计中,用户通过安装打开软件之后立刻会定位到当前位置并同时报出当前位置名称。并通过添置按钮设置相应的单击事件从而在用户滑动地图到其他位置后可以通过此按钮迅速回到当前位置。2方向传感器和自定义图标我们都知道智能手机里面内置了很多传感器,例如:方向传感器、距离传感器、陀螺仪传感器以及重力传感器等。本应用通过调用手机的方向
17、传感器从而判断用户当前机头所处方向,通过自定义图标来指示当前方向并通过方向的不同实时更新图标的方向位置。另外导航部分还将调用距离传感器来进行算路处理。3基于城市的地点搜索功能采用下拉列表输入的方式来设置城市和搜索类型,从而获取到周边地点,首先会通过弹窗来显示出周边的位置信息,然后通过添加覆盖物的形式来标注出来。4GPS 导航功能本设计地图软件还提供智能导航功能,当前位置是设置自动默认为起点,通过长按地图上面的地点来设置目的地。同时会在目的地上面添加覆盖物来标注,设置完目的地之后点击“模拟导航或者实时导航” ,将立刻进入导航模式。5开启实时路况和城市热力图以及可以打开卫星地图通过设置相关按钮和相
18、应的单击事件方法,用户可以通过点击相应的按钮来获取到相应风格的地图,查看卫星地图要考虑当地的环境和缩放比例。如果发现当前区域无地图可以将缩放比例缩小一点。第 2 章 课题设计相关技术概述2.1 开发语言Java 语言作为目前使用排行第一的编程语言不仅具有 C+面向对象的特点,还根据“低耦合,高内聚” 2的手机应用程序设计特点摒弃了 C+里面难以理解的指吉首大学本科生毕业设计5针和多继承的特点。因此 Java 语言就同时具有了功能强大和简单易用的特点,所以被很多开发人员采用。Java 语言又是一种动态的编程语言,安全性高、分布式使用非常广泛而且可跨平台移植,现在的很多软件都是用 Java 语言来
19、进行开发编写的,手机、个人笔记本、平板电脑等终端设备上面的很多软件都是通过 Java 语言的可移植跨平台的特性才能使用的只需要安 Java 开发环境 3即可。Java 程序具有与体系结构无关的特性,可以方便地移植到网络上的不同计算机当中。编程语言排行榜如图2-1 所示:图 2-1 编程语言排行榜 2.2 Android 的架构Android 操作系统应用程序框架 4支持组件的重用与替换。这在之前的手机操作系统中是难以想象的。这意味着我们可以吧系统中不喜欢的应用程序替换掉,安装我们自己喜欢的应用程序。因为系统架构主观上可分为四层架构,由下而上依次为应用层、应用框架层、系统运行库层、Linux 内
20、核层。1Linux 内核层Android 系统的核心服务是基于 Linux2.6 内核的,这一层主要功能是让开发者编写底层程序从而为 Android 手机以及基于 Android 的设备的各种硬件设施提供底层驱动,比如为蓝牙相机、无线网络(WIFI) 、电源设备、音频、显示器等进行驱动。 2系统运行库层这一层主要是为 Android 系统提供各种特性支持,比如数据库可以直接通过SQLite 库来提供(也可以使用外部数据库如:MySQL) ,3D 绘图支持可以通过OpenGL/ES 库提供,浏览器内核可以通过 Webkit 库来提供等。 同样还有一个运行时库,它包含一个核心库,可以让开发者运用
21、Java 语言来编写 Android 应用。另外 Android 的运行都是可以通过 Dalvik 虚拟机来进行,且都是独立运行进程。另外也可以通过真机来运行。总的来说相对于 Java 虚拟机来说,Dalvik 针对于移动设备并且完全模拟手机还能够针对手机内存以及 CPU 来进行优化处理。 吉首大学本科生毕业设计63应用框架层这一层可以理解为提供 Android 应用构建时可能用到的应用程序接口和组件也就是 API。需要用来开发 Android 应用程序的工具都具备之后,Google 为了大力推广 Android,也希望所有应用程序开发者可以顺利地转移到 Android 平台,因此创建了一系列
22、的应用程序架构 5。应用程序的架构主要是为了简化程序组件的重用,从而在遵循框架安全性的前提下快速的的开发应用程。可以进行视图(views)扩展、优化、添加列表(lists ) 、按钮( buttons) 、文本框(text boxes) ,甚至可以嵌入 web浏览器。 另外还包括四大组件分别是活动(Activity) 、服务(Service) 、广播接收器(BroadcastReceiver)和内容提供器(Content Provider) 。 4应用层这一层顾名思义就是手机上面的应用程序所在的这一层,比如系统自带的通讯录、短信、联系人等,自己网上下载或者进行自己开发的应用程序的真机测试应用。
23、Android 平台包括一些系统资源,所有的资源都可以直接从你的应用程序代码和使用。也可以从内部引用的其他资源。例如,一个维度中 6引用资源可能布局的定义。2.3 Android SDK SDK:软件开发工具包。比如百度地图 SDK、Share SDK 等是在特定软件开发过程中,开发者用相应的软件开发工具包来进行特定的开发工作。Android SDK7以 Java 语言为基础,用户可以使用 Java 来开发来开发 Android 平台的应用软件。也是软件开发工具包,用于提供 Android 系统的不同版本的开发所需要的环境以及工具。在搭建硬件平台以及软件开发的框架时都需要通过引入该工具包,才能使用Android 开发相关的 API。第 3 章 软件可行性及需求分析3.1 可行性软件开发过程中,不仅仅是考虑能不能用技术实现出来而是要全面性的来根据可行性考虑,软件能否成功开发不仅仅需要足够的技术还得要有经济和法律方面的考虑。下面就从技术、经济、法律三个方面来分析。