基于百度地图的导航设计v10.docx
- 文档编号:22867374
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:28
- 大小:1.49MB
基于百度地图的导航设计v10.docx
《基于百度地图的导航设计v10.docx》由会员分享,可在线阅读,更多相关《基于百度地图的导航设计v10.docx(28页珍藏版)》请在冰豆网上搜索。
基于XX地图的导航设计v10
摘要
计算机网络通信技术和Internet的飞速发展,基于因特网的手机移动应用已经开始成为一种全新的功能需求,并且越来越受到人们的关注。
由于移动应用具有简单性,随时随地性等诸多特点,因此它有着传统计算机所无法比拟的优点。
这样一来,手机移动应用的开发工作就显得尤为重要,开发出一个导航软件就更有必要了。
本文依据设计实现出的以SQLite数据库为例的导航,做了全面系统的介绍。
全文共五章,按照前期的开发顺序,从系统分析与研究开始,逐一对开发过程做了全面的介绍。
关键字:
移动;安卓;导航;XX地图
Abstract
TherapiddevelopmentofcomputernetworkcommunicationtechnologyandInternet,mobileapplicationbasedonInternethasstartedtobecomeanewfunctionalrequirements,andmoreandmoregettheattentionofpeople.Becausethemobileapplicationshassimplicity,sexanytimeandanywhere,andmanyotherfeatures,soithastheadvantagesoftraditionalcomputer.Asaresult,thedevelopmentofthemobileapplicationisparticularlyimportant,developanavigationsoftwareismorenecessary.Inthispaper,accordingtothedesigntorealizethenavigationinSQLitedatabase,forexample,doacomprehensivesystemisintroduced.Fulltextaltogetherfivechapters,accordingtotheprophasedevelopmentorder,startingfromthesystemanalysisandresearch,onebyone,madeacomprehensiveintroductionofthedevelopmentprocess
Keyword:
Mobile;Android;Navigation;Baidumap
1绪论
随着人们生活水平的提高,各种社会上的压力也在不断地增加,因此闲暇时光自驾车旅游就成为人们放松自己和缓解压力的好方式,可往往出行之前没有好的计划使自己在出行的过程中常常浪费很多时间,所以开发一款关于自驾游导航的软件便迫在眉睫,使之在自驾游旅行的过程中不但享受美景、陶冶情操。
更能方便快捷使之充分的更好的享受工作之余的闲暇时光。
1.1国内外开发背景
当前全球智能手机市场正在以惊人的速度发展,中国无疑已经成为了最大的市场,与此同时,中国企业也开始在国际舞台“大展身手”。
中国智能手机市场正在经历“你死我活”的激烈竞争,格局已经悄然生变,大牌纷纷推陈出新抢占市场,跨界企业摇摇欲试准备进军智能手机市场,业内认为,智能手机市场将迎来一个黄金发展期。
功能描述市场增长率2012年,中国智能手机销售量为1.89亿部,同比增长137%。
中国智能手机近两年增长速度快。
进入壁垒较高中国智能手机目前市场主流品牌已经基本形成,新的市场进入者要打破现有的竞争格局有一定难度。
当前,全球智能手机市场正在以惊人的速度发展。
国际市场调研机构eMarketer公布的最新数据显示,到2016年全球使用智能手机的人数将超过20亿人,占世界人口四分之一以上,发展中国家的使用率快速提升是主要的驱动力。
到2018年,智能手机使用人数有望进一步提高到超过25.6亿人,约占世界人口的三分之一,到时候,智能手机的使用人数将正式超过功能机。
由此来看,全球智能手机市场潜力巨大,eMarketer数据显示,2014年智能手机用户人数最多的前三个国家分别是中国,用户人数5.197亿;美国,1.653亿;印度1.233亿。
据估计,2018年,中国的智能手机用户人数仍将统领全球,达到7.041亿,印度将升至第二,用户人数2.792亿,美国第三,用户人数约2.20亿。
截至2014年6月,我国网民上网设备中,手机使用率达83.4%,首次超越传统PC整体使用率(80.9%),手机作为第一大上网终端设备的地位更加巩固。
同时网民在手机电子商务类、休闲娱乐类、信息获取类、交通沟流类等应用的使用率都在快速增长,移动互联网带动整体互联网各类应用发展。
1.2项目开发目的和意义
当今的移动应用端的系统很多。
主要的操作平台有:
android(androidOS)、Android、NokiaSymbian、BlackBerry、JavaME、WindowsPhone、Flash/FlashLite、mobileweb(WAP/XHTML/CSS/Javascript).Android以其开放性,多任务,大功能,画面流畅,硬件设备优良多样等各种优点,占国内智能机一大部分;然而它也存在着很明显的不足,如:
兼容性差,各种机型的配置不一样,以至于开发的时候出现各种版本。
其次在应用运行过程中并不是十分的稳定,和android相比,安卓的不少设计都显得不够直观,造成了操作困难的问题;菜单键可用性不可见、按钮手势太过隐蔽、安全问题依然突出、维护成本偏高等问题使其用户体验很差。
Symbian主要基于C语言的应用开发,支持多线程运行模式,但是开发代码量过大给开发人员造成很大的不便,另外塞班版本之间兼容性差使之逐步退出移动设备应用操作平台。
还有新逐步发展起来的WindowsPhone铃声和媒体音量不能分开调节、来电振动只在铃声开始时、删除首账户必须重置手机、多任务管理不完善、NFC文件传输形同虚设。
1.Androidmarket的支付模式成熟。
不仅仅是商业模式的创新,更重要的是无法模仿,经过长时间的运营,Androidmarket已经形成完备的支付模式,被大部分用户接受。
2.android是用Objective-C开发。
从全球的编程语言排行榜来看,虽然,Objective-C只有苹果公司一家使用,但是已经排名第4,可见android开发的普及性和受欢迎程度,另外,基于C语言,运行效率更高。
3.苹果android以及所有苹果的硬件软件策略和控制让苹果在用户体验和控制产品质量方面占尽先机,大部分android用户能够同时对他们手中的设备进行更新,这会吸引更多用户。
4.android在中国极受欢迎。
中国的各大移动运营商都积极地与苹果公司合作,各自推出适合中国人使用的手机套餐和应用,比如中国联通,中国电信等等,社会各界也对android有很好的评价。
android在各国开发者中有很好的学习氛围,如facebook的three20android开源代码库,都是良好的学习资源。
智能手机的稳定快速发展,带动APP移动应用行业的迅速崛起,苹果Androidmarket应用总数达65万。
就目前而已,我们可以看到整个App市场大体的分类已经形成并趋向稳定,App的确一派热火朝天的发展之势,但除了游戏和广告之外,众多App都还没有找到合适的盈利模式。
很多手机游戏年收入都高达千万上亿,“钱”景动人。
而其他类型的App应用,从去年来数量暴增,同质化严重,抄袭成风,几十万款App中,只能有几百个可以生存。
这显然无法吸引风投再为之疯狂。
而且即便是手机游戏App,到如今已经有了极高的门槛,首先要付出相当多的精力去开发有创新的精品游戏,其次要有好的平台投放以及运营能力。
随着人们的生活水平的提高,旅游出行已经在越来越多人的年中计划里。
据相关数据统计,2014年国民旅游意愿强烈,有超过99%的人计划出游,51%的人选择出游3次或以上;95%的消费者会增加旅游预算或保持不变,1/3的人出游计划支出在1万元以上。
另外,根据最新发布的《2014-2015年中国旅游发展分析与预测》显示,2014年,在全球经济不景气的大背景下,旅游业成为推动社会经济增长的领跑者。
如今的旅游类APP各有侧重:
有些是平台类的,即通过一个App聚集了多个App产品;有些是特定功能类的,如查询信息,办理票务、旅游攻略等。
但不管侧重如何,旅游出行类APP已经成为用户装机的必备应用,旅游App拼的不是谁的更快,更全面,谁的技术更领先,旅游的核心是服务和体验,就算你的功能再强没有体验,也终将被淘汰。
携程、去哪儿、同程、艺龙、途牛这几家国内在线旅游的老牌公司大家都耳熟能详,在移动互联网爆发之际相继向移动客户端发力,是目前较为有影响力的旅游APP客户端。
虽然同为旅游公司,但她们之间的侧重还是有所不同,其中携程核心业务是机票、酒店、度假三大产品,强项在商旅市场;去哪儿则是在线旅游产品的搜索、比价服务,现今已经开始开拓酒店资源;途牛则是跟团游市场的领先者,出境游占据绝对优势;艺龙的酒店服务是最大优势;全国连锁式的休闲旅游服务则是同程的最大优势。
如今是一个信息爆炸的时代,能在最短的时间内获得更多的信息资源是大众用户的刚性需求,移动旅游也不例外,并且对这些需求更加旺盛。
对于普通用户来说,一款好用的旅行APP第一要素就是能够拥有更多的产品提供选择,用户可以在一个APP内就找到自己所有的需求,这也就我们常说的厂商向用户推出的“一站式”服务。
本文阐述了利用android平台设计的自驾游导航,来满足用户对娱乐游戏的使用需求,给用户带来游戏上的享受,更好的释放压力缓解心情。
1.3论文的组织形式
本文分为五章:
第一章是引言部分,主要是对与该系统相关的国内外研究现状以及研究的背景进行分析从而得到本系统开发的意义与价值所在;
第二章是对于该系统相关的技术的简介,使用户对相关技术所有了解,对本系统所有了解;
第三章主要是对该系统进行需求分析,在方便用户理解其功能的同时有助于开发者对系统的设计与实现;
第四章是系统的实现问题,利用实现的界面图和重要的功能代码来展示本系统功能实现的效果以及实现的代码。
第五章是系统测试,测试表明本系统稳定符合设计要求。
1.4本章小结
本章主要描述了有关该系统的国内外研究现状以及研究的背景和意义还有本论文的组织形式。
通过对其国内外现状的的研究以及研究的背景和意义能够让研究人员以及用户更好的了解该系统目前的发展现状,对于本课题的开发的方向与本课题的开发意义有所了解,使研究者更有信心、有方向的去开发,使用户更容易接受本系统,发现其优点,更加积极主动的去使用。
2开发环境介绍
本系统的主要开发环境是基于Android平台,接下来将介绍Android的系统的主要组成部分和Android环境的搭建。
2.1Android系统的架构
Android的系统架构和其操作系统一样,采用了分层的架构。
如图2-1所示,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心库层。
2.1.1应用程序
Android会同一系列核心应用程序包一起发布,该应用程序所有的功能模块都是使用java语言编写的。
2.1.2应用程序框架
核心应用程序所使用的是API框架,开发人员是可以访问的。
该架构的设计能够简化组件的重用;并且每一个应用程序都可以发布它自己的功能块,同样其他的应用程序都可以使用该程序发布的功能块。
同样,用户也能使用应用程序的重用机制来替换其他程序组件[6]。
应用后面的是一系列的系统和服务,其中包括:
(1)内容提供商:
使该应用程序可以共享它们自己的数据或者访问另一个其他应用程序的数据.Android的系统架构也同样采用了分层的架构。
Android的构架分为四层,从高到低层分别是:
应用程序层、应用程序框架层、系统运行库层和Linux核心层[7]。
(2)丰富而又可扩展的视图:
可以构建应用程序,它包括网格、列表、按钮、文本框甚至是可嵌入的web浏览器。
(3)资源管理器:
能提供非代码资源的访问,如,图形、本地字符串和布局文件。
(4)通知管理器:
使得应用程序能显示自定义的提示信息于状态栏中。
(5)活动管理器:
用来提供常用的导航回退功能并管理应用程序的生命周期[8]。
如图2-1所示:
图2-1Android系统架构图
2.1.3系统运行库
(1)程序库
Android包含一些库,Android系统不同的组件都能够使用这些C/C++库。
开发者的服务是通过Android应用程序框架来为提供的,下面是一些核心库:
系统C库:
它是一个专门为基于embeddedlinux的设备而定制的,从BSD继承来的标准C系统函数库。
媒体库:
是基于PacketVideoOpenCORE的库;该库能支持多种比较常用的视频格式、音频格式的录制和回放,同时也能够支持静态图像文件。
其中编码格式包括MP3、MPEG4、AMR、AAC、H.264、PNG、JPG。
SurfaceManager:
,能为多个应用程序提供2D和3D图层的无缝融合,并且对显示子系统的管理
LibWebCore:
是一个最新的web浏览器引擎用,它能够支持一个可嵌入的web视图和Android浏览器
3Dlibraries:
;该库可以使用高度优化的3D软加速或者使用硬件3D加速,是基于OpenGLES1.0APIs实现的。
FreeType:
矢量和位图的字体显示。
SQLite:
是一个功能强劲且任意应用程序都可用的轻型关系型数据库引擎。
SGL:
是底层的2D图形引擎。
(2)Android运行库
Android的核心库包括一个提供大多数功能的的JAVA编程语言核心库。
所有Android应用程序都拥有一个独立的Dalvik虚拟机实例并且都运行在它自己的进程中。
Dalvik是一个可以同时高效地运行多个的虚拟系统。
其执行的是Dalvik可执行文件(.dex)。
由于虚拟机是基于寄存器的,所以所有由虚拟机来执行的类都需经由JAVA编译器编译好,然后再通过SDK中的“dx”工具转化成.dex格式[10]。
Dalvik虚拟机主要依赖于linux内核的一些底层内存管理机制和线程机制的功能。
2.1.4Linux内核
Linux2.6内核是Android的核心系统服务所依赖的,其中如安全性,内存管理,进程管理,网络协议栈和驱动模型。
同时Linux内核也作为软件和硬件栈之间的抽象层[12]。
2.2安全权限机制
在Android系统中,应用都以唯一的一个系统识别身份(Linux用户ID与群组ID)来运行,这个操作系统的权限是分立的。
系统将应用与应用,应用与系统隔离开是Linux的作用,是通过每个部分分别通过使用各自独立的识别方式来实现的。
系统的安全功能是通过权限机制来提供的。
权限可以限制某个特定进程的特定操作,同时也可以限制每个URI权限对特定数据段的访问。
2.3Android平台的搭建
2.3.1JDK的安装
双击JDK安装包,按照安装提示一步一步走。
然后配置环境变量,安装完成之后,可以在检查JDK是否安装成功。
打开cmd窗口,输入java-version查看JDK的版本信息。
出现如图2-2的信息表示安装成功了。
图2-2验证JDK安装是否成功
2.3.2Eclipse安装
EclipseIDEforJavaDevelopers(EclipseHelandroid3.6)。
http:
//www.eclipse.org/downloads下载完之后,直接解压安装即可(例如的安装路径C:
\ProgramFiles\eclipse_java)。
2.3.3AndroidSDK的安装
(1)从AndroidDevelopers下载Android-sdk_r05-windows.zip,在下载完成后,解压到任意路径。
(2)运行SDKSetup.exe,点击AvailablePackages。
若没有出现可以安装的包,需要点击Settings,然后选中Misc中的“Forcehttp:
//...”这项,再点击AvailablePackages即可。
(3)选择所希望安装的SDK及其文档或者其它包,然后点击InstallationSelected、AcceptAll、InstallAccepted,开始下载安装所选的包。
(4)在用户变量中新建PATH值为AndroidSDK中的tools绝对路径[13]。
2.3.4ADT的安装
(1)打开EclipseIDE,进入菜单中的“Help”里的“InstallNewSoftware”
点击Add…...按钮,弹出要求输入Name和Location的对话框,在Location输入http:
//dl-
图2-3ADT的安装
(2)点击OK后,展开DeveloperTools将显示AndroidDDMS和AndroidDevelopmentTool两个选项,勾选它们,然后按照提示继续下一步。
(3)完成之后,选择Window>Preferences….,在选择面板左边的Android,然后在右侧点击Browse...并选中SDK路径E:
\Android-sdk-windows,然后点击Apply、OK,配置完成。
(4)ADT离线安装法
第一步:
把ADT-xx.zip解压到ADT,之后进入ADT目录,删除web目录、site.xml和index.html,再然后将ADT文件夹copy到Myeclipse8.6/dropins目录下,重启Myeclipse8.6即可。
第二步:
你下的ADT应该有两个文件夹,plugins和features,在你的Eclipse中找到这两个文件夹,把ADT0中的plugins和features分别复制到Eclipse的plugins和features文件夹中。
2.3.5创建AVD
(1)在Eclipse中,选择Windows>AndroidSDKandAVDManager,点击左侧面板的VirtualDevices,再右侧点击New,填入名字ff、Target选择Android2.2-APILevel8、SDCard512MiB,选用HVGASkin,其余默认设置。
(2)点击CreateAVD即可完成创建AVD。
运行新建的模拟器,在列表中选中要运行的模拟器,然后单击“start...”;再单击“launch”。
当运行成功后出现如图2-4所示界面:
图2-4模拟器
2.4JAVA简介
Java是一种编程语言的网络,其基本结构非常类似于C++,但它是简单的。
它结合了一些功能和其他语言的优点,又避免了它们的缺点。
Java语言是简单的,废旧很少在C++中使用,它是复杂的,混乱的特点,不需使用指针,并提供了自动垃圾回收,因此程序员不需要担心存储器管理[12];Java语言是体系结构中立的,因为它使用的第一个聚合成中间代码(字节码),然后加载奇偶校验,然后解释给其他的机器代码来执行,只要由Java虚拟机的支持,可以运行各种Java程序的;Java语言定义,在Java平台的Java程序将被合并成字节码格式,然后就可以实现运行Java平台的任何系统,在运行时,Java平台的Java解释器,他们被授权传达字节码执行,类的性能,你需要加载运行环境的结合部;Java语言是多线程的,多线程指的是相同的应用程序中,有多个数据流同时来执行顺序较内部的多线程程序可以统称为执行多个线程一次。
可以更好地表达多线程程序和解决现实生活中的问题,是计算机应用与工艺设计发展的必然趋势。
系统为什么不选择C或C++语言和Java的主要原因,选择Android的应用层是通用的中级Java字节码,它不需要各种硬件模型的每个厂家封装的等效版本。
为了避免游戏版本,诺基亚,联想版的情况下moto的版本。
一次编写,到处运行。
其次,在竞争中Java和.NET平台是应用程序本身最适合的一个平台,有一个庞大的开发基地,节省大量的再教育[14]重新学习的成本。
JAVA实现数据交换停止使用的I/O(输入/输出,输入和输出)流,该流是指在所谓的能够输出的任何数据源或数据对象是能够接收数据的数据源对象。
用于操作Java流对象内置的JavaIO包,其包含一系列的文件和目录来运行读取文件并写入类[15]的操作的属性。
DOM(文档对象模型,所述文档对象模型)可以是一种语言的与平台无关的方式来访问和修改文档的内容和结构。
加工该XML文档或HTML(超文本标记语言,HTML)(可扩展标记语言,可扩展标记语言)的一种常见的方法。
您可以使用的设计是基于对象管理组织和DOM在任何编程语言的法规。
让您DOM技术用户能够动态地更改页面,您可以动态显示或隐藏元素,改变它们的属性,DOM的技术正在使大大提高了互动网站。
在工作状态下,对于任何一类的Java反射,了解所有的属性和这个类的方法;为别的,你可以以任何方式调用;的方式来动态地捕捉动态调用对象的信息,并调用函数反映了Java语言的机制。
Java反射机制主要提供以下功能:
识别属于任何一类在运行时的对象;在运行时,任何类对象的构造;统治阶级的成员变量和在运行时的方法;使用任何运行对象时程序;生成动态代理[17]。
3需求分析
根据第一章所定义的课题研究方向及目标,本章将对系统功能进行具体的需求分析,具体分析基于XX地图导航所要实现的功能以及欲达到的效果。
需求(Requirement)是待开发系统的特征。
需求分析(RequirementsAnalysis)就是开发人员着手分析软件系统用来解决手头问题所需要的软件特征。
需求分析由一系列活动构成,包括许多需要解决方案的问题的研究和确定系统解决方案必须具有的行为。
软件需求分析阶段的工作和任务是在对问题进行调查了解的基础上,用一定的方法和手段对问题进行分析建模。
需求分析的结果应该反映的是必须干什么,而不是怎么干。
它的主要用途是明确需求,为用户和开发人员提供一起协商讨论的依据并作为设计和实现的目标.
3.1自驾游导航的可行性分析
3.1.1软件开发的可行性
伴随着时代的进步,生活水平提升。
人们在工作之余的空闲的时候就会去旅游,并且随着人们的生活水平的提高,伴随着私家车的增多,更多的人选择出去户外自驾游。
但是当下很多人出去自驾游并不是很方便,需要准备地图、导航、以及相应的旅游宝典、并且到当地并不是很熟悉,常常浪费时间和金钱并且有时旅游并不是很愉快。
并且伴着智能手机的普及越来越多的人选择了android手机或者android系统应用的产品。
目前在Androidmarket有很多应用,而且目前来说国内对于android开发有了很大热情,但是对于自驾游导航软件并不是很多,且其开发的空间很大,市场空间很大,这就需要开发者的不懈努力,才能满足人们对当下自助游的需求
作为基于android平台的自驾游导航系统方面的应用,主要是面向人群是在工作,学习之余独自外旅游的人们,这款应用可以帮助独自户外旅游的人们提供必要的地图展示以及GPS定位导航服务,避免道路不熟引起的迷路等不必要的麻烦,提供当地的旅游景点以及名胜古迹,让自己在独自旅游中避免在目的地不知如何更好的玩耍,并且更好的来完成,目前有相应的软件主要有:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 百度 地图 导航 设计 v10
![提示](https://static.bdocx.com/images/bang_tan.gif)