基于Android平台轨迹追踪的应用设计与实现毕业设计论文Word文档格式.docx
《基于Android平台轨迹追踪的应用设计与实现毕业设计论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Android平台轨迹追踪的应用设计与实现毕业设计论文Word文档格式.docx(54页珍藏版)》请在冰豆网上搜索。
ThispaperanalyzesthecurrentplatformadvantagesandarchitectureofAndroid,amainstreammobilephoneoperatingsystem,anddetaileddescriptionsofthekeyconceptsinvolvedinAndroidapplicationdevelopmentandgeneralapplicationdevelopmentprocess.Afteranalyzingthestatusofnetworkmap,choosethecombinationofBaiduMapsanditsAPIlibrarydesignedamobileInternet-basedtrackingsystem.Thesystemisrealizedonthebasisofthegeneralfeaturesofthenetworkmaps,GPSlocationinformationbasedonuserreal-timemonitoringandrecordingtheuser'
smobileline,readytobedisplayedonthephoneBaidumap,andcanrealizethehistoryoftrackreproduction.Thisarticleisdesignedatrackingsystemwhichusingtwodatabases,SQLitedatabaseandaccessdatabasetostorethetrackrecordsandregistertheuser'
spersonalinformation,throughtheoperationofthedatabasetorealizethetrackrecordandmanagepersonalinformation.
Finally,onthebasisofthedesignoftheprogressiverealizationofeachfunctionofthesystemthroughseveralrealtest,thesystemwasoriginallydesignedtoachievethegoal.Thesystemcanshowitsvalueintraveling,sportingandfindingpeople.
KeyWords:
mobilepositioning,Androidplatform,GPS,trackrecord,BaiduMaps
5.1欢迎界面实现31
5.2登录界面实现32
5.3注册界面实现34
5.4设置服务器IP界面实现35
5.5地图界面实现36
5.6轨迹保存功能实现38
5.7轨迹绘制功能实现40
5.8轨迹列表界面实现42
5.9个人资料编辑功能实现44
5.10服务器连接实现48
1绪论
1.1课题背景及目的
随着移动通讯网络在全球覆盖范围的扩大,智能手机已经成为人们现代社会生活中获取信息的主要设备。
目前全球智能手机用户为21亿人,较2014年增长了23%。
手机移动网络服务给人们日常生活带来了翻天覆地的变化,而位置则是这场变革中的关键要素之一。
调查显示,中国手机地图市场规模在2012年仅1.9亿元,到2014年这一规模增长至4.1亿元,同比增长了115.8%。
可见,手机用户对地理空间位置信息的需求更加强烈。
基于位置信息提供服务的轨迹追踪应用系统满足了手机用户们这方面的需求,在物流管理、旅游、客运公交和寻找走丢的家人等众多领域,这类软件都能够产生积极的影响。
2007年11月,Google推出了一个专为移动设备设计的软件平台——Android,由于该平台提供给第三方开发商一个十分宽泛、自由的环境,使得以往开发内嵌式地图应用所面临的严峻挑战不复存在。
随着Android平台的不断成熟,各式各样新颖的Android应用如雨后春笋般出现在手机应用市场上,在欧美,AndroidMarket上的应用程序已经超过了20万款。
而相比之下在中国,Android手机应用程序的本地化发展速度却没有那么快,目前AndroidMarket上的中文版应用程序只占2%左右。
所以,研究Android应用程序开发,创新出符合中国人使用习惯的Android手机应用软件意义重大。
另一方面,2010年4月23日,XX地图正式宣布开放地图API,满足了移动开发者对地图应用的开发需求。
相比较多数Android应用中采用的GoogleMaps,在手机地图中接入XX地图更符合中国人对地理信息获取和查询的要求。
因此,XX地图的免费性和Android平台的开源性,使得开发者能够在低成本高效率的情况下开发基于位置信息服务的Android手机软件。
本应用设计在这样的技术背景下,旨在实现一款Android平台手机软件,它通过获取GPS定位数据,在XX地图上显示并记录用户的户外移动轨迹。
该软件可陪伴用户跑步、骑车、散步,完整记录锻炼历程和所用的时间既能作为美好的回忆也可根据以往路线的对比来优化行程。
1.2国内外研究现状
1.2.1Android手机平台现状分析
搭载Android操作系统的智能手机目前已经成为市场上最炙手可热的智能产品。
来自美国市场研究机构Gartner的数据显示,Android操作系统所占的市场份额从2008年的0.5%急剧增长到2010年的22.7%,先后超过微软的WindowsMobile及苹果的iOS[8]。
近几年增长势头持续,特别在北美地区,其手机销售同比增长高达707%。
如此迅猛的发展得益于Android平台自身独特优势:
它不仅仅是一款手机操作系统,更像是一个对任何开发人员开放的移动终端开发平台。
所以一经推出便引起世界各地开源爱好者的关注。
目前的Android系统,具有成本低廉、良好的用户体验、较强的开放性等特点,成本低廉使得Android手机在更注重性价比的中国市场中迅速占据一席之地,而开源性吸引了更多的开发商在Android平台不断推出各式各样的应用程序。
另外,Android智能手机有Android
Market和众多第三方应用商店做后盾,其应用方面的资源非常丰富。
同时,简单易懂的操作界面也使Android手机更受消费者的欢迎。
1.2.2位置信息服务系统研究现状
LBS(LocationBasedService,基于位置的服务)最初只是移动运营商招徕顾客的一种手段,如今越来越多的消费者却希望能随时随地使用这项服务。
LBS结合空间信息技术和无线通讯技术,实时获取移动终端用户的地理位置信息,能够在电子地图平台支持下为用户提供这种增值业务来辅助解决其他问题[2]。
比如信息查询、地图服务、手持终端的导航、弱势群体的跟踪和区域告警等。
目前市场中此类手机软件所依赖的网络地图服务不尽相同,下面对常见的几种国内外地图服务进行简要比较分析:
1.GoogleMaps
Google在2005年2月8日推出了在线地图服务,随着GoogleMapsAPI的发布,GoogleMaps受到了全世界更多软件开发商的关注。
到2009年,GoogleMaps迅速成长为最受欢迎的在线地图服务。
它界面直观、内容丰富,通过API被整合在许多Web应用之中。
Google为了满足用户的心理需求,不断的升级外观以及改善使用体验,比如最近推出了餐馆预定服务和“Uber”功能。
GoogleMaps的创新性和开放性使其在互联网上取得了很大成功。
2.BingMaps
BingMaps是微软公司推出的Bing服务中线上地图服务,它的亮点是能够提供45°
鸟瞰视角。
使用鸟瞰模式,用户眼前的视角和站在5、6层楼房窗前看外面差不多。
所以BingMaps一问世便吸引了大众的注意。
最近微软又对BingMaps进行了多项改进,最新支持的12种室内地图总数升至900多个,同时新增3D建筑显示,对用户来说显示方式更加友好。
不过BingMaps在国内市场并未普及,因为其地图服务仅限于北美地区,其他地区的地图不是很详尽甚至是错误的。
3.高德地图
近年来,高德在移动互联网领域可谓是风生水起。
易观国际统计数据显示,2013年第一季度,高德地图占据中国手机客户端市场29.8%的份额,位居第一。
高德地图的优势在于它精确和人性化的导航功能,并拥有自己的地图数据资源,这使得众多车载软件使用高德地图。
4.XX地图
XX地图在中国有着庞大的用户群,相比GoogleMaps,在中国地区使用XX地图能够得到更详细精确的地理位置信息。
XX地图容纳了超过500万生活服务类数据,与它进行深度合作的数据合作伙伴有60余家,日均定位请求数超过35亿次。
现在,XX地图已经从定位软件向生活工具演进,为用户提供了大量实用的功能,如路径规划、导航、公交查询、查找周边生活服务、通过地理围栏技术帮助用户知道停车场的实时空位状态等。
1.3主要研究内容
本文在深入分析Android平台相关概念和技术的基础上,结合XX地图API库设计并实现了一个Android平台轨迹追踪系统,该系统能够实现自我定位、实时轨迹追踪、历史轨迹管理等核心功能。
不同身份用户使用该系统时系统的不同数据处理方式,是研究的重点之一,也是本文的创新点。
1.4论文结构安排
本文共分六章,结构安排如下:
第1章绪论。
主要介绍研究背景和目的,分析目前Android系统发展和国内外手机位置信息服务系统的研究现状,给出本文研究内容。
第2章Android平台概述。
主要介绍Android技术的发展,深入研究和分析Android平台体系架构和应用组成,并阐述了开发环境的搭建过程。
第3章定位技术及XX地图API。
重点介绍XX地图API接口的使用方法和相关的环境配置,同时简单介绍了手机定位技术。
第4章轨迹追踪应用系统设计。
从总体设计的角度分析了系统需求、功能模块划分、界面设计和数据存储方式,并对系统状态进行建模。
第5章轨迹追踪应用系统实现。
实现了系统各界面和模块,并给出了相应代码。
第6章总结。
对本文内容进行了总结,以及对未来工作作出展望。
2安卓Android平台概述
2.1Android简介及发展历史
Android的意思是“机器人”,是Google于2007年11月5日基于Linux开发的一个开源操作系统,主要应用于便携设备。
Android操作系统由底层的Linux操作系统、中间件和核心的应用程序组成,其中应用程序是由Java语言开发的[3]。
同时,Google宣布组建一个全球性的开发联盟,这一联盟包括手机生产商、手机芯片生产商及网络运营商,他们将共同支持Google发布新的系统及应用程序,共同开发Android系统的开放源代码。
Android手机操作系统推出后,版本更新非常快,几乎每隔半年就推出一个新版本。
从2008年9月23日发布的最早的版本Android1.0到2014年10月15日的全新操作系统Android5.0,每个版本都对以前的版本功能加以完善,同时增强了界面的美化。
下面对Android版本的发展历程作简单介绍:
1.Android1.0版本
2008年9月发布的Android1.0如今看起来略微简陋,主要功能有:
能够实现多任务处理、WiFi、蓝牙和即时通讯,支持完整的HTML网络浏览和浏览器多页面浏览,在内置的AndroidMarket软件市场完成APP下载和升级。
2.Android1.5版本
Android
1.5版本相比之前的1.1版本增加了插件和对屏幕虚拟键盘的支持,同时增加了视频录制功能,用户可直接从手机上传视频和照片到特定网站。
1.5还改进了GPS功能,定位库使用了A-GPS技术,搜星速度大幅提高,结果更加精确。
3.Android2.0/2.1版本
在Android1.6支持CDMA网络的基础上,优化了硬件速度,屏幕分辨率更高,对GoogleMaps3.1.2进行改进,同时支持蓝牙2.1标准。
4.Android4.0版本
Android4.0目前是最为普及、市场份额最大的Android版本,改进后的Android4.0的UI界面给用户更多的新鲜感和流畅性,为使用双核乃至多核处理器的手机进行专门的优化,Android4.0系统内部集成了数据追踪系统,可以追踪、分析移动数据流量,设置移动数据使用上限,功能非常齐全。
5.Android5.0版本
Android5.0是自Android4.0以来Android系统又一次重大升级,最大的变化在于UI用户界面的设计,新系统采用全新的“MaterialDesign”设计规范,界面更加简洁、色彩更加丰富。
Android5.0对支持的64位应用和架构进行了优化,在安全性方面,新增了访客模式,优化了面部解锁等。
可以说,Android5.0带来了更加直观的通知、性能和续航的提升、更聪明的安全功能、以及更出色的开发者工具。
2.2Android平台特征
Android平台具有以下特性[4]:
1.系统中的应用程序和组件可替换和重用:
可以把不喜欢的程序都替换掉,安装自己满意的程序,如系统的打电话功能,文件管理功能等。
2.用Dalvik虚拟机来优化移动设备:
Android所有应用程序都是用强大的Java语言编写,Java语言编译过的类文件通过DX工具转换成.dex文件可在虚拟机中运行;
另外Dalvik采用的寄存器模式大大加快了程序的运行速度。
3.优化的图形图像库:
Android系统包含了2D、3D图形库,这些有利于游戏的开发。
4.强大的数据存储功能:
Android平台提供了多种数据存储方式,如文件存储、网络存储等,最主要的是集成了SQLite数据库,它采用机构化的存储方式,给手机数据的存储带来了极大便利。
5.基于WebKit引擎开发的内部浏览器:
这意味着手机相当于电脑,基本上结束了WAP时代,用户使用手机就可以像使用电脑一样在互联网中遨游。
6.多媒体支持:
Android平台支持常见的音频、视频和静态图像格式(如H.264、MPEG4、AAC、MP3、AMR、PNG、JGP、GIF)
7.依赖硬件的技术:
GMS电话技术、蓝牙、WiFi、3G、GPS导航、照相机、指南针和加速计等。
2.3Android平台体系架构
Android平台采用了分层的架构,从架构图看分为四层,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,架构图如图2.1所示。
图2.1Android平台架构
1.应用程序层
Android应用层由运行在Android设备上的所有应用共同构成,它不仅包括随Android系统一起预装在移动设备上的通话、短信、联系人等系统应用,还包括其他后续安装到设备中的第三方应用。
Android的应用都是基于Java语言开发的,但在部分应用中需要使用开源C/C++类库,或者进行图形处理和运算。
通过Java来实现会存在执行效率低和移植成本高等问题。
因此,在Android开发中可使用C/C++来实现底层模块,并添加相应接口与上层Java交互,最后利用Android提供的交叉编译工具生成类库并添加到应用中[3]。
2.应用程序框架层
框架层是由多个系统服务共同组成的,包括窗口管理服务、组件管理服务、电源管理服务、地理信息服务、通话管理服务等[8]。
所有服务都寄宿在系统的核心进程中,运行时每个服务占据独立的线程,彼此通过进程间的通信机制发送消息和传输数据[8]。
从系统设计的角度来看,框架层是Android系统中最核心的部分,它进行着全局统筹,参与到应用层的每一次操作中。
每一次构造窗口、处理用户交互事件、绘制界面、获得当前地理信息、了解设备信息等操作,都是在各个系统服务的支持下实现的。
而对于开发者而言,框架层最直观的体现就是SDK,它通过一系列的Java功能模块,来实现应用所需的功能。
SDK的设计决定了上层应用的开发模式、开发效率及能够实现的功能范畴。
3.系统运行库层
系统运行库包括核心类库和Android运行库。
核心类库由一系列的二进制动态库共同构成,通常使用C/C++进行开发,核心类库不能够独立运行于线程中,需要系统服务加载其到进程空间,再通过类库提供的JNI接口进行调用[3]。
核心类库的来源主要有两种,一种是系统原生类库,以便Android使用C/C++来实现一些性能关键模块来提高框架层的执行效率,如:
资源文件管理模块、基础算法库等[4]。
而另一种则是第三方类库,大部分是移植优秀开源项目,它们保障了Android能够提供丰富功能,如:
Android的多媒体处理,依赖于开源项目OpenCORE的支持;
浏览器控件的核心实现,是从Webkit移植而来;
而数据库功能,则是得益于SQLite[4]。
Android运行库由Java核心类库和Java虚拟机Dalvik共同构成,来实现Java程序在运行阶段的二次编译。
Java核心类库涵盖了Android框架层和应用层所要用到的基础Java库,包括Java对象库、文件管理库、网络通信库等。
Dalvik是为Android量身打造的Java虚拟机,采取了基于寄存器的虚拟机架构设计,负责动态解析执行应用、分配空间、管理对象生命周期等工作,Dalvik执行效率很高,更能够发挥高端硬件的能力。
4.Linux内核层
Linux内核的优势在于进程管理、大内存管理、共享库支持、基于权限的安全模型、代码开源、统一的驱动模型等。
Linux具有强大的可移植性,Linux可以运行在各式各样的芯片架构和硬件环境下,而依托于它的Android系统,也便有了强大的可移植性。
同时,Linux内核也作为硬件和软件栈之间的抽象层,像一座桥梁将Android的上层实现与底层硬件连接起来,使它们可以不必直接耦合,因此降低了移植的难度。
2.4Android应用程序组成
Android应用程序一般主要由以下四个部分组成:
Activity、BroadcastReceiver、Service和ContentProvider[4]。
每个android应用程序都包含一个必不可少的文件AndroidManifest.xml,每个Activity、service、ContentProvider都需要在AndroidManifest文件中进行配置,而BroadcastReceive的注册分静态注册(在AndroidManifest文件中进行配置)和通过代码动态创建方式注册至系统。
这四大组件之间的关系如图2.2所示。
图2.2Android组件关系
下面对每个组件作简要介绍:
1.Activity组件
Activity是Android应用程序最基础的组件,它代表手机屏幕的一屏,是用户与应用程序的交互接口。
Activity相当于一个UI容器,开发者可以在Activity中添加一些View,并对这些View做一些事件处理,比如通过对某些控件如TextView,Button的操作,实现Activity之间的跳转。
一个应用程序中的多个Activity是通过栈来管理的,多个Activity遵循着后进先出的原则通过压栈和弹栈来实现界面的跳转,栈顶的activity是当前屏幕显示的、集中处理用户动作的Activity。
当一个新的activity启动时,这个新的activity将压入栈中,成为正在运行中的activity,前一个activity保留在栈中;
当用户使用后退按钮时,当前的activity将从栈中弹出,而前面的那个activity恢复成运行中状态。
在栈管理中,Activity有四种状态,这四种状态共同构成了Activity的生命周期,如图2.3所示。
图2.3Activity生命周期
在Activity的整个生命周期中,当一个Activity被启动时,首先是调用onCreate()方法设置初始化界面全部信息,如界面的views、buttons和分配的引用变量等;
初始化完成后会调用onStart()方法,此时用户可看到界面;
当用户与界面进行交互时就会调用onResume()方法;
而调用onPause()方法时,此Activity是可见但不可交互的,即这个Activity依然保持着所有的连接状态,但系统会停止部分消耗CPU的事情。
当被其他Activity覆盖时调用onStop()方法,该Activity不可见。
在后面的这两种情况下都会调用onSaveInstan