毕业设计论文智能手机gps功能的实现管理资料.docx
- 文档编号:28567265
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:28
- 大小:926.73KB
毕业设计论文智能手机gps功能的实现管理资料.docx
《毕业设计论文智能手机gps功能的实现管理资料.docx》由会员分享,可在线阅读,更多相关《毕业设计论文智能手机gps功能的实现管理资料.docx(28页珍藏版)》请在冰豆网上搜索。
毕业设计论文智能手机gps功能的实现管理资料
智能手机GPS功能的实现
摘要所谓的GPS是指利用GPS定位卫星,在全球范围内实时进行定位、导航的系统,其全称为全球卫星定位系统。
在空间技术和通信技术的推动下,GPS自诞生40余年以来,得到了迅猛的发展。
同时随着智能移动终端的不断发展,GPS技术从过去的单一设备逐步渗入到智能手机设备的开发上。
智能手机GPS功能的实现作为GPS技术与智能手机技术的结合,从手机导航具有便携性好、价格较低、永远在线等方面来说,所以说在全球最流行的安卓智能手机上研制GPS导航系统是非常有意义的。
论文首先概要介绍了GPS技术的发展现状和前景,研究了基于基于Android平台的移动终端GPS系统开发的可信性及需求分析;然后详细阐述了Android系统的由来与安装;接着在分析用户需求的基础上,对系统的功能模块进行了划分;最后进行了具体的程序编写以及测试工作,测试结果表明,该系统已能完成GPS手持终端的基本功能,在目前安卓智能手机普及的情况下,野外无需再专门购置设备,使用成本大大降低,且携带方便,可随时进行野外作业。
因此,本系统有着广阔的应用前景。
关键词:
GPSAndroid全球定位系统卫星定位安卓智能手机
第一章绪论
引言
GPS是英文GlobalPositioningSystem(全球定位系统)的简称,最早它是20世纪70年代由美国陆海空三军联合研制的空间卫星导航定位系统。
其主要目的是为陆、海、空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的,经过40余年的研究实验,GPS技术的运用已去向平民化,且日益成熟。
由于GPS系统所具有的全天候,高精度,和自动测量的特点,作为先进的测量手段和新的生产力,已经融入到了国民经济建设,国防建设和社会发展的各个应用领域。
其运用提高了生产力,作业效率,科学水平以及人们生活质量,因此可以说GPS技术在经济全球化的今天起着举足轻重的作用,而且可以预见的是全球定位技术对于人们的生活也将越来越凸显它的重要性,人们的生活也将越来越离不开它的存在。
目前,全球共有四种全球定位系统,包括美国的GPS,俄罗斯的格洛纳斯,欧洲的伽利略和中国的北斗,相比较而言,美国的GPS全球定位系统组建的最早,技术也最为成熟,但由我国自主研发的北斗定位系统也毫不逊色。
北斗卫星导航系统是中国自行研制开发的区域性有源三维卫星定位,可在全球范围内全天候、全天时为各类用户提供高精度、高可靠的定位、导航、授时服务[1]。
可以说,上至航空航天,下至工业、渔业、农业生产和日常生活,全球卫星导航定位技术无所不在。
正如人们所说的:
“全球卫星导航系统的应用,仅受人类想象力的制约。
”
研究内容
为了实现智能手机GPS功能,我事先做了大量的准备。
包括前期对智能手机实现GPS功能这个课题的研究意义及需求进行了分析,也制定出了相应的研究目标及所实现的GPS的性能指标。
然后,我查找了大量书籍,深入了解了安卓操作系统,明白了Android操作系统的由来系统构架以及开发Android应用程序所必须具备的计算机运行环境。
我根据书上的性息,在自己的计算机上搭建了Android开发环境平台。
在论文的中期,我研究了安卓的定位方式,其相对来说还是比较简单的,目前我们可以使用位置管理器和位置提供者进行getLocation的调用。
这个方法返回本机的当前位置的一个快照,这个快照将以Location对象形式提供。
在手持设备中,我们可以获得当前位置的经度和纬度。
这样就完成了自己位置的确定,如果需要查看自己所在的位置的话还需要调用一个地图的API比如GoogleMap[2]。
调用之后就可以在地图显示自己的位置了。
在本次的项目中主要用到的就是当前的经度和纬度,并通过GoogleMap调用当前的地理位置信息,还可以通过视图切换按钮,从手机的视图框中观察到当前位置的卫星视图。
有以上研究结果,我编写出了程序的初步代码。
论文后期,已经完成了基于安卓GPS定位工程的代码编写工作,并对此工程进行运行测试,,运行此工程,所得到的结果还是比较让人满意的。
论文结构安排
论文将按照下面的描述进行内容的安排。
第一章引言,简要介绍了GPS技术的发展,指出了课题研究的背景、意义和主要内容。
第二章Android系统下的软件开发,对安卓系统的由来及系统构架做了分析和探讨,然后详细介绍了安卓的开发环境且在自己的计算机上完成了运行环境的搭建。
第三章系统分析与设计,明确了系统研究的目标,描述了系统的功能结构,对系统需求进行了分析。
第四章系统实现,对程序进行了操作界面的设计,以及具体的编写和模块搭建工作。
第五章系统测试,描述了对安卓智能手机实体机运行软件的测试。
说明了程序运行及安装的方法,进行了现实中的GPS定位。
结论与致谢,总结了本课题的研究工作,提出了今后进一步工作的方向,并向我帮助和关心我的老师、同学和朋友们表示了衷心的感谢。
第二章Android系统下的软件开发
Android系统简介
Android的由来
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。
目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,最初主要支持手机[3]。
2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
Android的主要竞争对手是苹果公司的iOS以及RIM的AndroidOS。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年2月数据,%的份额,%。
Android的系统架构
Android的系统架构和其它操作系统一样,采用了分层的架构。
从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层[4]。
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程,还有其他诸如:
Qt(qtforandroid)、Mono(monoforandroid)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。
另外,谷歌还在2009年特别发布了针对初学者的AndroidSimple语言,类似Basic语言。
而在网页编程语言方面,JavaScript,,HTML5,dojo、mobl、PhoneGap等等都已经支持Android平台。
而在Android系统底层方面,Android使用C/C++作为开发语言[5]。
Android的应用程序开发
早期的Android应用程序开发,通常通过AndroidSDK(Android软件开发包)下使用Java作为编程语言来开发应用程序,但通过不同的软件开发包,则使用的编程语言也不同。
例如开发者可以通过AndroidNDK(AndroidNative开发包)使用C语言或者C++语言来作为编程语言开发应用程序。
同时谷歌还推出了适合初学者编程使用的Simple语言,该语言类似微软公司的VisualBasic语言[6]。
此外,谷歌公司还推出了GoogleAppInventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。
Android开发环境的构建
Android系统开发环境基本组成
Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。
只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:
JavaRuntimeEnvironment)。
此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。
同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。
简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发[7]。
(1)JavaJDK
(2)Eclipse
(3)ADT
(4)AndroidSDK
JAVAJDK的安装
首先登陆JAVAJDK官网,,我由于是32位系统所以下载的时候选择32位的,我下载的是jdk-7u3-windows-x32然后安装JavaJDK。
安装完成后,还需要设置环境变量,打开我的电脑->属性->高级系统设置->环境变量->系统变量中添加以下环境变量,。
添加系统环境变量
(1)JAVA_HOME
指明JDK安装路径,就是刚才安装时的路径C:
\ProgramFiles\Java\,此路径下包括lib,bin,jre等文件夹
(2)PATH
Path使得系统可以在任何路径下识别java命令,设为:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
(3)CLASSPATH
CLASSPATH为java加载类(classorlib)路径,只有类在classpath中,java命令才能识别,设为:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\(,%JAVA_HOME%就是引用前面指定的JAVA_HOME。
)
上述环境变量设置好了后,从开始菜单栏中运行cmd,在命令窗口里面运行“java–version”命令,,即为安装成功。
环境变量成功提示
Eclipse的安装
登陆Eclipse的官网,下载完成后,,选择Eclipse菜单中的Help->InstallNewSoftware->选项卡上的AvailableSoftware,点击右侧的“Add”输入,然后在“Workwith”下拉菜单中选择刚才输入的网址。
过一会就会出现一个DeveloperTools选项,勾上以后点击Next以后Eclipse会自动网上查找Android开发工具插件,然后找到AndroidDDMS和AndroidDevelopmentTools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse[8]。
ADT的安装
重启后打开Eclipse菜单Help--->installnewsoftware选择ADT,输入Name:
ADT;Location:
按OK,然后全部全部打勾,安装。
一直按Next,接受其中的协议,最后会自动安装。
AndroidSDK的安装
登陆AndroidSDK下载页面下载AndroidSDK,下载完成后解压。
然后选择Eclipse菜单中的Windows->Preferences在左侧的Android项目中SDKLocation中填入AndroidSDK解压后的目录,然后点击Apply,。
SDK安装成功界面
按“确定”后,重新启动计算机。
重启计算机以后,进入cmd命令窗口运行android-h如果有类似以下的输出,,表明SDK安装成功:
验证AndroidSDK是否安装成功
至此Android的开发环境搭建成功[15]。
第三章系统分析与设计
研究目标
使用组件技术在Android平台实现手机GPS软件的开发。
具体目标包括:
(1)界面友好,简单实用,可操作性强,适合各年龄阶层使用
(2)程序运行速度快,占用系统内存小
(3)软件大小要小,便于用户用手机直接下载使用
需求分析
本设计实现了基于Android平台手机开发的GPS接收机系统设计的运行。
GPS应用越来越广泛,我们的设计只是应用的基础和开端。
在实际应用中我们要结合各个领域的特殊情况和特定的技术需求,进行有针对性的处理和设计。
GPS提供的定位信息包括了经度、纬度、海拔、速度、航向、磁场、时间、卫星个数及其编号等卫星信息其接收数据方法类似,故本设计只是提取了其中的部分价值性较高的数据信息,主要就是显示用户当前所在位置的经纬度坐标,并可以对视图框中的地图进行放大和缩小操作,如果用户看不懂地图,还可以调用此区域的卫星视图。
系统功能设计
系统的主要功能包括:
(1)定位当前位置信息,通过智能手机内置的GPS硬件,对用户的地理位置进行卫星定位,将所得到的经纬度显示在操作界面上,并将此坐标上传至GoogleMap,以便获得当前位置的地图信息,然后将得到的信息以图片的形式显示在手机终端上。
(2)地图信息的放大和缩小,用户如果所在位置比较空旷,难以从地图上辨认位置,便可放大或缩小地图,通过观察附近的道路或村庄来推断自己的实际位置。
(3)卫星视图切换,如果用户的地图意识不强,还可以进行视图切换,看到此区域的卫星视图,这样以来就可以通过观看地图上的房屋排列或者是标志性建筑来进行定位。
第四章系统实现
Elipse文件的结构及功能
首先,要在Eclipse里面创建一个新工程,命名为MapView,。
工程的源代码文件
下面介绍下Android的工程目录结构。
res:
放置应用程序用到的资源文件。
其包含(Drawable,layout,values等目录)。
当这个目录下的文件发生变化时,。
assets:
主要放置多媒体等数据文件。
res/drawable:
放置应用到的图片资源。
res/layout:
放置一些与UI相应的布局文件,都是xml文件。
res/values:
放置字符串,颜色,数组等常量数据。
:
相当于应用的配置文件。
在此文件里必须声明应用的名称,应用所用到的Activity,Service,Reveiver等[10]。
界面设计
根据需求分析可以知道,应用程序包含一个界面就可以了,但是这个界面虽然简单,但是要包含一个视图框、三个按钮和一个状态栏。
根据对用户界面显示内容的分析,绘制出用户界面的草图,。
用户界面草图
程序模块以及功能设计
程序模块介绍
该程序的模块设计非常简单,总共分为五个模块:
一个视图框、一个坐标显示区域和三个按钮。
视图框负责对当前位置进行图像进行显示。
坐标显示区域负责对显示当前坐标。
三个按钮分别为:
放大,缩小,卫星视图。
程序模块的功能
(1)坐标显示区域
视图框将从GPS获取最近的定位信息。
,获取纬度信息。
,获取经度信息[14]。
(2)视图框
根据GPS的定位信息,把地图显示在视图框中。
(3)放大、缩小钮
分别调用zoomIn和zoomOut来放大或缩小地图
(4)卫星视图
。
到这里该程序所要实现的功能就基本可以实现了。
主要功能的实现
为了实现系统功能,我对此进行了深入的研究。
要知道每一种移动开发环境都有自己的基类。
如J2ME应用程序的基类是midlets,而Android程序的基类是Activity。
这个Activity为我们提供了对移动操作系统的基本功能和事件的访问。
这个类包含了基本的构造方法,键盘处理,挂起来恢复功能,以及其他底层的手持设备的访问。
实质上,我们的应用程序将是一个Activity类的扩展。
在本论文中我将使用Activity类来编写Android程序。
View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。
但它们之间有一些不同。
每一个view都有一个用于绘画的画布。
这个画布可以用来进行任意扩展。
本文为了方便起见,只涉及到了两个主要的View类型:
定义View和Android的XML内容View。
在上面的代码中,使用的是“HelloWorld”XMLView,它是以非常自然的方式开始的。
如果我们查看一下新的Android工程,。
在这个文件中,通过一个简单的XML文件,描述了一个屏幕的布局。
由于本文主要应用就是GoogleMapAPI,所以其中涉及到大量方法以及相关参数,简单介绍如下[12]:
(1)GBrowserIsCompatible()-- 是否支持GoogleMapAPI
(2)()– 目标位置的纬度坐标;
(3)()– 目标位置的经度坐标
(4)newGLatLng(myLat,myLng)-- 设置经纬度
(5)(newGLatLng(myLat,myLng),14)-- 设置地图默认的中心点经纬度
(6)newGLatLng(myLat,myLng)-- 设置中心点的经纬度
(7)14-- 地图的默认缩放比例大小值,范围为1-18
(8)newGMap2(("GoogleMap"))-- 获取显示的地图容器
(9)(G_NORMAL_MAP);-- 设置显示地图的类型可选值:
a.G_NORMAL_MAP-- 默认地图样式
b.G_SATELLITE_MAP--GoogleEarth卫星地图
c.G_HYBRID_MAP-- 混合模式地图
(10)newGIcon(G_DEFAULT_ICON)-- 设置标记样式
(11)addControl()-- 给地图添加控件
常用的可选控件有:
a.newGLargeMapControl()-- 大的地图缩放级别控件
b.newGOverviewMapControl()-- 地图缩略图控件
c.newGScaleControl()-- 比例尺控件
d.newGMapTypeControl()-- 地图类形选择控件
(12)enableContinuousZoom()-- 允许连贯改变地图比例
(13)createMarker(latlng)-- 自定义方法
(14)newGMarker(latlng)-- 在地图中设置标签,参数latlng-- 标签的坐标
(15)(marker,event,function)-- 给标签设置事件
marker-- 标签对象,
event-- 事件名称
function-- 时间的处理函数
(16)openInfoWindowHtml(latlng,myHtml)-- 将信息框添加到标签上
latlng-- 标签坐标,
myHtml-- 提示信息的HTML字符串
MapAPIKey
使用GoogleMapAPI前,必须先生成GoogleMapAPI:
第一步:
生成GoogleMapAPIKey要使用androiddebug模式下的keystore密钥库[14]。
其位于C:
\users\dongliang\.android\(dongliang是电脑用户名)。
输入命令生成MDK5Key,
生成MDK5Key
第二步:
到GoogleMapAPI的主页去申请GoogleMapAPIKEY。
登录地址
页面,在其中的MD5fingerprint一栏中输入刚才生成的MD5密纹,
生成GoogleMapAPIKEY
如果你是第一次使用GoogleMapAPI你要按照提示申请一个账号。
然后就可以得到唯一密钥,本机的密钥为android:
apiKey="0_kiK_qH-JI4hNZxaSZ50LaDmeX7_pxeSggjlhQ"/>
布局及按钮的设置
这部分模块代码在res/layout/:
xmlversion=""encoding="utf-8"?
>
android="" android: orientation="vertical" android: layout_width="fill_parent" android: layout_height="fill_parent">//定义一个宽高都满屏的垂直排列窗口 android: id="@+id/myLocationText" android: layout_width="fill_parent" android: layout_height="wrap_content"/>//定义一个宽满屏高随内容自动拉伸的文本框 android: orientation="horizontal" android: layout_width="fill_parent" android: layout_height="wrap_content">//定义一个水平的流输出口 id="@+id/in" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_weight="1" android: text="放大"/>//定义一个名称为in的按钮,其上显示放大,级别为1 id="@+id/out" android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_weight="1" android: text="缩小"/>//定义一个名称为out的按钮,其上显示缩小,级别为1 android: id="@+id/switchMap" android: layout_width="wrap_content" android: layout_height="wrap_content" android: textOff="卫星视图(关)" android: textOn="卫星视图(开)"/>//定义一个双位开关,默认显示卫星视图(关),点击后显示卫星视图(开),高宽都为自动拉伸类型 < android: id="@+id/myMapView" android: layout_width="fill_parent" android: layout_height="fill_parent" android: clickable="true" android: apiKey="0_kiK_qH-JI4hNZxaSZ50LaDmeX7_pxeSggjlhQ"/> //此为与谷歌地图连接的必要代码 其中倒数第二行中就使用到了上一章节所得的密钥。 配置窗体部件字符串文件 将字符串显示分别放入res/values/。 代码如下: xmlversion=""encoding="utf-8"? >
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 智能手机 gps 功能 实现 管理 资料