基于android系统的手机地图app大学论文.docx
《基于android系统的手机地图app大学论文.docx》由会员分享,可在线阅读,更多相关《基于android系统的手机地图app大学论文.docx(48页珍藏版)》请在冰豆网上搜索。
基于android系统的手机地图app大学论文
本科生毕业设计
题目:
基于Android系统的手机地图APP
目录
摘要I
AbstractII
第1章绪论1
1.1课题研究的背景和目的1
1.2国内外研究现状1
1.3研究内容和设计结构3
第2章课题设计相关技术概述4
2.1开发语言4
2.2Android的架构4
2.3AndroidSDK5
第3章软件需求性分析6
3.1可行性6
3.2需求分析7
3.3业务流程7
第4章XXKey(密钥)申请9
4.1申请XX密钥9
4.2将Key添加到manifests文件application当中12
第5章系统设计13
5.1系统功能结构13
5.2声明软件应用权限13
5.3基本配置14
第6章系统实现16
6.1系统运行环境和开发平台16
6.2系统开机闪屏页面17
6.3地图主界面18
6.4实时路况界面22
6.5视图界面23
6.6搜索界面25
6.7导航界面29
第7章地图上线36
7.1预期测试结果36
7.2实际测试结果36
结束语38
参考文献39
致谢40
基于Android系统的手机地图APP
摘要
本设计是一款适用于Android系统移动地图应用,其中调用的是XX地图AndroidSDK是一套基于Android2.1及以上版本的移动设备应用接口。
在手机地图领域做得最好的就当数谷歌地图和XX地图了,并且这两种地图都提供了丰富的API[1],使得任何开发者都可以轻松地将地图功能引入到自己的应用程序当中。
通过调用地图SDK接口可以轻松访问在手机上访问XX地图服务和数据,可以构建功能丰富、并且交互性强的手机移动地图应用程序。
UI设计方面借鉴了XX简约的设计风格,简单明了又不失独特。
Java开发语言和最新的AndroidStudio开发软件为本应用提供了稳定的开发环境及开发平台,通过设计本应用可以提供地图展示(城市热力图、卫星地图、城市实时路况信息图)地图定位和地图操作功能,支持城市内POI检索并进行Place详情列表展示,根据POI检索结果和长按地图设置目的地的操作会进行覆盖物标注从而展示更加丰富的地图。
目前还可以支持XX地图的调启功能包括(驾车导航和骑行导航),根据导航又可以分成模拟导航和实时导航两部分。
其中模拟导航作为创新点则间接具备了提前查看实时行驶交通,查看线路规划的功能从而提高导航效率。
关键词:
地图导航;XX地图;Java;AndroidSDK
MobilephonemapbasedonAndroidsystem
Abstract
Thisdesign is a mobile map application for Android system,which callsthe Baidu map Android SDK,it is a set of Android2.1 and above versions of mobile 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 service and data on your phone ,also can build feature-rich and interactive mobile map application. And UI design borrowed from Baidu simple design style, it's concise and unique.
The Java development language and the latest development software for Android Studio provide a stable development environment and 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 the destination operation will be covered to 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 two parts----simulation navigation and real-time navigation.The simulation navigation as a innovative,it has a view look over real-time traffic and route planning function in advance ,so it improve navigation efficiency.
Keywords:
map navigation; Baidu map; Java; Android SDK
第1章绪论
1.1课题研究的背景和目的
移动互联时代早就已经来临了,说明新的时代新的技术已经越来越成熟。
当移动通信和互联网结合在一起之后就形成了我们常说的移动互联网,我们的手机和笔记本电脑以及其他的移动设备可以随时随地的访问互联网的任何资源以及需要查找的手机应用软件,本毕业设计我已经上传到了XX开发者平台通过扫描本论文末尾的二维码即可下载。
我们的智能手机是互联网背景下非常具有标志性的一个移动终端以及客户端的工具,其实就相当于一台“小型的电脑”,比如android系统就相当于它独立的操作系统,可以安装和卸载软件,也可以通过开启无线网络端口自由的接入断开通信网络,可以通过SD卡获得很大的存储空间和强大的计算数据功能,这就和传统的手机有了很大的区别。
在这个网络技术日新月异的促进下,我国在通信技术领域早已经进入了第四代,即4G时代的出现,让我们可以享受到更加快速的网络传输速度和更智能的手机移动设备。
现如今手机成为了我们日常生活中必不可少的一道甜点。
随着现在科技的进步人们的生活水平在不断提升,人们已经不用思考柴米油盐和温饱问题而开始热衷于如何提升生活的质量,所以普通只可以打电话发短信的手机已经无法满足人们的需要了。
于是产生了智能手机。
通过相关调查研究表明人们对于智能手机的使用率已经达到了90%以上,智能手机也被开发者设计得越来越人性化,人们可以通过手机将完成越来越人性化的功能,可以说智能手机已经成为了人们生活的一部分。
随着越来越多的人通过android来解决问题,现在和地图相关的APP在手机上的应用已经可以算是非常广泛了,和传统电脑PC端的地图软件相比之下手机地图APP可以具备随时随地查看并且可以非常轻松的规划出出行路线并且还能够进行导航,方便度有了明显的差距。
所以我们可以开发出一款手机移动端地图来方便人们的生活。
1.2国内外研究现状
手机以及一些其他的移动设备为人们带来了越来越多越来越方便的生活,不断出现的手机地图系统的相关软件为在外出行的人提供了途径,节约了时间也极大地提高了效率。
所以和手机地图相关的研究在学术研究中开始慢慢显现出来了,其中就包括了市场数据研究和应用数据研究。
根据报告,2015年中国IT研究中心的相关研究对目前市场上份额排名前几位的地图软件展开了调查,通过调查对前几位的软件进行了排名,根据结果显示,目前XX手机地图排名第一,市场份额65.5%,由此可见更多人愿意使用XX地图来,高德地图排名第二,市场份额20.1%,搜狗地图排名第三,市场份额8.4%。
15年手机地图市场份额如图1-1所示:
图1-12015年手机地图累计市场份额
手机地图作为移动互联网的重要入口之一,各互联网巨头纷纷加大资源投入力度,展开对手机地图市场的争夺。
2014年高德地图经历了换帅,宣布发力LBS,专注位置解决方案,打出“你敢用就敢赔”的活动;XX地图则展开国际化战略,新提供境外地图数据,与相关地图合作开放全球定位能力;搜狗地图成为苹果官方AppleWatch首批邀请入驻的应用。
在此背景下,从2015年第1季度中国手机地图主要APP的累积用户数、活跃用户数、用户关注度、用户日均定位请求数等相关指标说明现在的中国手机地图的市场情况。
CNIT分析认为,手机地图市场集中度高。
XX地图、高德地图和搜狗地图位列三甲,份额超90%,这和手机地图产品特性有关,需相应的资质才能运营,且还需实时更新相关数据,构成一定的技术门槛。
15年中国活跃用户市场份额如图1-2所示:
图1-22015年中国活跃用户市场份额
比达(BigData)数据显示,在2015年Q1中国手机地图活跃用户市场份额中,XX地图67.9%最高,高德地图19.7%居第二,搜狗地图8.5%位第三,另外,腾讯地图、谷歌地图2.4%。
因此以XX地图SDK作为载体根据XXAPI提供的文档来进行开发不仅和获得更加全面的数据而且性能无疑是最佳的。
1.3研究内容和设计结构
1.地图的定位和我的位置功能
在本地图APP软件的设计中,用户通过安装打开软件之后立刻会定位到当前位置并同时报出当前位置名称。
并通过添置按钮设置相应的单击事件从而在用户滑动地图到其他位置后可以通过此按钮迅速回到当前位置。
2.方向传感器和自定义图标
我们都知道智能手机里面内置了很多传感器,例如:
方向传感器、距离传感器、陀螺仪传感器以及重力传感器等。
本应用通过调用手机的方向传感器从而判断用户当前机头所处方向,通过自定义图标来指示当前方向并通过方向的不同实时更新图标的方向位置。
另外导航部分还将调用距离传感器来进行算路处理。
3.基于城市的地点搜索功能
采用下拉列表输入的方式来设置城市和搜索类型,从而获取到周边地点,首先会通过弹窗来显示出周边的位置信息,然后通过添加覆盖物的形式来标注出来。
4.GPS导航功能
本设计地图软件还提供智能导航功能,当前位置是设置自动默认为起点,通过长按地图上面的地点来设置目的地。
同时会在目的地上面添加覆盖物来标注,设置完目的地之后点击“模拟导航或者实时导航”,将立刻进入导航模式。
5.开启实时路况和城市热力图以及可以打开卫星地图
通过设置相关按钮和相应的单击事件方法,用户可以通过点击相应的按钮来获取到相应风格的地图,查看卫星地图要考虑当地的环境和缩放比例。
如果发现当前区域无地图可以将缩放比例缩小一点。
第2章课题设计相关技术概述
2.1开发语言
Java语言作为目前使用排行第一的编程语言不仅具有C++面向对象的特点,还根据“低耦合,高内聚”[2]的手机应用程序设计特点摒弃了C++里面难以理解的指针和多继承的特点。
因此Java语言就同时具有了功能强大和简单易用的特点,所以被很多开发人员采用。
Java语言又是一种动态的编程语言,安全性高、分布式使用非常广泛而且可跨平台移植,现在的很多软件都是用Java语言来进行开发编写的,手机、个人笔记本、平板电脑等终端设备上面的很多软件都是通过Java语言的可移植跨平台的特性才能使用的只需要安Java开发环境[3]即可。
Java程序具有与体系结构无关的特性,可以方便地移植到网络上的不同计算机当中。
编程语言排行榜如图2-1所示:
图2-1编程语言排行榜
2.2Android的架构
Android操作系统应用程序框架[4]支持组件的重用与替换。
这在之前的手机操作系统中是难以想象的。
这意味着我们可以吧系统中不喜欢的应用程序替换掉,安装我们自己喜欢的应用程序。
因为系统架构主观上可分为四层架构,由下而上依次为应用层、应用框架层、系统运行库层、Linux内核层。
1.Linux内核层
Android系统的核心服务是基于Linux2.6内核的,这一层主要功能是让开发者编写底层程序从而为Android手机以及基于Android的设备的各种硬件设施提供底层驱动,比如为蓝牙相机、无线网络(WIFI)、电源设备、音频、显示器等进行驱动。
2.系统运行库层
这一层主要是为Android系统提供各种特性支持,比如数据库可以直接通过SQLite库来提供(也可以使用外部数据库如:
MySQL),3D绘图支持可以通过OpenGL/ES库提供,浏览器内核可以通过Webkit库来提供等。
同样还有一个运行时库,它包含一个核心库,可以让开发者运用Java语言来编写Android应用。
另外Android的运行都是可以通过Dalvik虚拟机来进行,且都是独立运行进程。
另外也可以通过真机来运行。
总的来说相对于Java虚拟机来说,Dalvik针对于移动设备并且完全模拟手机还能够针对手机内存以及CPU来进行优化处理。
3.应用框架层
这一层可以理解为提供Android应用构建时可能用到的应用程序接口和组件也就是API。
需要用来开发Android应用程序的工具都具备之后,Google为了大力推广Android,也希望所有应用程序开发者可以顺利地转移到Android平台,因此创建了一系列的应用程序架构[5]。
应用程序的架构主要是为了简化程序组件的重用,从而在遵循框架安全性的前提下快速的的开发应用程。
可以进行视图(views)扩展、优化、添加列表(lists)、按钮(buttons)、文本框(textboxes),甚至可以嵌入web浏览器。
另外还包括四大组件分别是活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供器(ContentProvider)。
4.应用层
这一层顾名思义就是手机上面的应用程序所在的这一层,比如系统自带的通讯录、短信、联系人等,自己网上下载或者进行自己开发的应用程序的真机测试应用。
Android平台包括一些系统资源,所有的资源都可以直接从你的应用程序代码和使用。
也可以从内部引用的其他资源。
例如,一个维度中[6]引用资源可能布局的定义。
2.3AndroidSDK
SDK:
软件开发工具包。
比如XX地图SDK、ShareSDK等是在特定软件开发过程中,开发者用相应的软件开发工具包来进行特定的开发工作。
AndroidSDK[7]以Java语言为基础,用户可以使用Java来开发来开发Android平台的应用软件。
也是软件开发工具包,用于提供Android系统的不同版本的开发所需要的环境以及工具。
在搭建硬件平台以及软件开发的框架时都需要通过引入该工具包,才能使用Android开发相关的API。
第3章软件可行性及需求分析
3.1可行性
软件开发过程中,不仅仅是考虑能不能用技术实现出来而是要全面性的来根据可行性考虑,软件能否成功开发不仅仅需要足够的技术还得要有经济和法律方面的考虑。
下面就从技术、经济、法律三个方面来分析。
1.技术是否可行?
本课题的这款手机定位APP的设计实现最主要还是与程序设计相关,因此程序开发语言尤其重要,并且这种语言开发的应用必须能够在Android手机上面安装运行。
所以目前来说现阶段的开发语言当中,Java语言和C语言等已经面世并且相对来说比较成熟和稳定的开发语言,像GO语言虽然是属于最新出来编程语言但本身还不够稳定优点和缺点一样明显所以还得选择技术相对成熟的语言。
还有在导航和定位的过程中需要不断的访问网络数据来获取当前位置和加载地图,所以随着我国第四代网络的出现已经完全能够满足手机定位APP的开发实现。
(1)开发平台
操作系统:
win7;
开发工具:
AndroidStudio、phtoshopcs6;
开发包:
XX地图SDK、jdk1.8.0;
2.经济是否可行?
Android开发者和工程师开发软件最终都是需要获得收益,所以在真正开发过程中也需要投入相应的资金才能保证效果,但是从XX地图开发的情况下来看SDK工具包可以直接到XX地图API网址上面在免费下载,开发人员也不需要很多。
实际上在美工、UI布局、上线都是本人完成的。
而且我也不需要盈利,因此从这两方面来说经济上面完全没有问题。
3.法律可行?
本课题设计的基于XX地图的手机定位APP,仅仅用于学习和做毕业设计。
不做任何盈利用途,因此在法律上面没有任何问题,完全可行。
3.2需求分析
软件工程创建之前首先必须先进行需求分析,这样毕竟能够明确开发目的和方向还能够进行更加人性化科学的设计出来,有时候还能减小内存空间提升软件运行效率。
否则,不仅开发的时候不太明确实际开发意图和方向。
而且无法从使用者角度去考虑问题,不实用的功能只会给开发造成很大的负担和资源浪费。
因此,在开发的过程中一定要充分考虑使用者的需求,不仅是在这次基于XX地图定位的APP开发所有的在Android系统上开发的app都要遵循和体现使用者基本的需求。
通过分析用户的大致需求如下:
Ø可以根据当前城市名查询周边的地点,美食、酒店、学校、医院等;
Ø可以能够查看实时路况地图、城市热力地图、卫星地图等三种不同的使用模式;
Ø可以在滑动地图查找地点的之后点击当前按钮迅速回到当前位置;
Ø可以根据方向传感器的数据实时辨别当前方向,开启罗盘模式之后更加直观;
Ø可以通过长按设置目的地并且添加标识;
Ø可以进行模拟导航用来快速实时查看当前路况;
Ø可以开启实时导航地图会自动规划出最优线路,在驾车过程中计算车速和距离以及预计到达时间,最后完成导航。
3.3地图系统运行的功能架构
在实际工作过程中,经常需要介绍业务运行流程。
而业务运行流程则由特定的图形和符号来表示地图系统运行的功能架构,不仅可以用来分析软件整理和接受结果的过程,还可以更加直观的发现其中不合理的流程。
业务流程图标及功能架构如图3-1、图3-2所示:
图3-1业务流程图标
图3-2地图系统的功能架构图
第4章XXKey(密钥)申请
4.1申请XX密钥
XX地图SDK是一套基于Android2.1及以上版本的应用程序设备接口。
通过该接口开发者才能使用XX地图SDK的各项功能,并且使用无次数限制。
在使用XX地图SDK的各项LBS功能之前,必须先获得XX地图的密钥。
非营利项目可以直接使用。
首先注册并登录XX账号,搜索并进入“XX地图API”官网。
可以先选择“Android开发”了解一下也可以直接点击“申请密钥”。
XXAPI如图4-1所示:
图4-1XXAPI
点击“创建应用”,并将“应用类型”改为“AndroidSDK”。
然后获取SHA1值和包名。
获取包名及SHA1值如图4-2、图4-3所示:
图4-2获取包名
图4-3获得SHA1值
包名和SHA1值的具体获取步骤:
包名直接在工程文件下面的“build.gradle”文件里面获取。
第1步:
运行进入控制台
第2步:
定位到.android文件夹下,输入cd.android
第3步:
输入keytool-list-v-keystoredebug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:
其中keytool为jdk自带工具;keystorefile为Android签名证书文件
配置完成后点击“提交”,即可获得key(密钥)。
获得密钥key如图4-4所示:
图4-4获得密钥key
4.2配置XX地图SDK工程环境
在“project”目录下的libs目录下面放入下载好的baidumapapi_vX_X_X.jar包。
在main文件夹下面新建“jniLibs”目录放入下载好的armeabi文件夹。
添加jar包和so文件如图4-5所示:
图4-5放入jar包和so文件
然后更新正式将所有的baidumapap_vX_X_X.jar包。
导入进工程,右键baidumapapi_vX_X_X.jar包。
点击“AddAsLibrary”更新项目jar包如图4-6所示:
图4-6导包更新工程
最后需要查看jar包入工程的关系,并将需要的jar包加入工程,或者删除暂不需要的jar包。
因为功能不同jar包也不同。
4.2将Key添加到manifests文件application当中
Android定位SDK4.2及之后版本需要在Mainfest.xml正确设置Accesskey(AK),如果设置错误将会导致定位和地理围栏服务无法正常使用。
设置AK就是在Application标签中加入开发者申请的Key:
--在application中添加开发密钥-->
android:
name="com.baidu.lbsapi.API_KEY"
android:
value="cckSXBHIsdQGVMwZ4m6ISFRdPuPZkn2p"/>
第5章系统设计
5.1系统功能结构
根据XX地图的应用,是有开机闪屏页之后才正式跳转到地图页面(首次启动还会有开机引导页,由于图片太多容易造成内存泄漏并且也为了减少软件大小就舍弃了)。
而地图页面作为前台让用户根据自己的需求来使用地图,能够进行周边查询。
选择喜欢的使用模式、查看当前方向以及一些导航操作。
为了充分考虑简洁性和方便性本人参考了下XX地图的页面设计,尽量看起来赏心悦目。
地图根据功能在前台一一添加按钮,主要功能包括根据城市名和搜索类型来搜索周边地点;用户可以选择自己喜欢的使用模式:
卫星地图、实况交通、城市热力图;用户可以在滑动地图查找地点之后通过定位按钮重新回到当前地图中心位置;启动方向罗盘来辨别方向;还调用了方向传感器来动态实时更新箭头位置方向十分灵敏;该系统还能够设置目的地来进行模拟导航和实时导航。
系统功能架构如图5-1所示:
图5-1系统功能结构图
5.2申明软件应用权限
Android定义了一种权限方案来保护设备上的资源和功能。
例如,在默认情况下,应用程序无法访问联系人列表、拨打电话、发送短信等。
下面就是本应用中需要用到和可能需要用到的权限。
当我们不确定是否需要这个权限的时候尽量还是选择添加,毕竟不会影响软件的使用而且还能提高软件的兼容性。
权限代码如下:
--添加ShareSDK(分享)权限-->
name=