ANDROID毕业论文.docx
《ANDROID毕业论文.docx》由会员分享,可在线阅读,更多相关《ANDROID毕业论文.docx(16页珍藏版)》请在冰豆网上搜索。
![ANDROID毕业论文.docx](https://file1.bdocx.com/fileroot1/2022-11/26/b436f6cf-79cf-4af4-979b-1ed4ff692d5b/b436f6cf-79cf-4af4-979b-1ed4ff692d5b1.gif)
ANDROID毕业论文
基于Android平台的GoogleMap的手机导航设计
摘要
Google公司于2007年11月发布Android系统以来,短短四年时间,Android已经占据了智能手机市场的半壁江山,是目前最为炙手可热的智能手机操作系统。
Android走进了越来越多人的生活,成为他们获取信息主要设备。
随着拥有私家车的家庭越来越多,大部分司机朋友都希望能接收到导航服务,为自己的旅程提供准确便利的信息。
除了购买导航仪以外,导航软件的出现为司机朋友增加了一个选择,通过手机就能实现导航功能,不但节省了一笔导航仪的费用,还能为获得除了导航服务以外的更多信息。
目前市面上大部分导航软件都存在如占用空间大,地图数据不全面等弊端,一部分用户体验可能就不是很好。
GoogleMap作为最先推出的网上地图,各种数据信息最为全面和准确,本系统通过GoogleMapApi设计一个能够实现定位、导航和交通信息发布等等功能的在线导航软件。
在Android设备上具有良好的用户界面、响应速度和用户体验。
关键词智能手机AndroidGoogleMap导航应用
Abstract
SinceGooglereleasedAndroidsysteminNovember2007,justfouryearstime,AndroidalreadyaccountsforhalfoftheSmartphonemarket,isbyfarthehottestSmartphoneoperatingsystem.Androidwentmoreandmorepeople'slives,asthemainequipmenttheygetinformation.Withthelargesumoffamilieshaveprivatecar,mostdriverswantnavigationservices,toprovideaccurateinformationtofacilitatetheirjourney.InadditiontobuyingNavigator,navigationsoftwareisanotherchoicefordrivers,phonecanmakenavigation,savesanavigationinstrumentfee,butalsotoobtaininadditiontonavigationservicesformoreinformation.Theremostofthenavigationsoftwareonthemarkethassomedrawbackssuchasoccupyalargespace;mapdataisnotcomprehensive.Partoftheuserexperiencemaynotbeverygood.GoogleMapasthefirstonlinemap,allkindsofdatainformationisthemostcomprehensiveandaccurate,thissystemthroughtheGoogleMapApidesignonetoachieveapositioning,navigationandtrafficinformationandmorefeaturesforonlinenavigationsoftware.IntheAndroiddeviceisagooduserinterface,speedofresponse,anduserexperience.
KeywordsSmartphoneAndroidGoogleMapNavigation
1引言
在当今社会,手机已经成为人们日常生活中不可或缺的工具,以用户体验为核心诉求的智能手机,使手机由单一的通信终端发展成为互联网终端。
越来越多的互联网应用被移植到
智能手机中来,导航软件在智能手机中的应用成为了研究热点之一。
在目前大部分智能手机都提供GPS定位服务以及3G无线网络越来越普及的双重驱动下,在Google地图中实现导航服务,是具有可行性的。
本文提出并实现了一种基于GoogleMapApi的Android导航应用,能够给用户提供人性化和智能化的地图导航服务。
2绪论
2.1面向智能手机的导航地图系统的发展现状
随着无线传输技术的更新换代和无线互联技术的不断发展,在需求和技术的双重驱动下,将互联网上的海量信息和强大的应用服务功能扩展到移动终端上,为用户提供随时、随地的信息服务成为信息服务业的重要发展方向。
面向智能手机的空间信息服务系统已经成为当前移动空间信息系统的研究热点。
研究移动空间信息系统的单位主要是通信厂商、第三方服务开发商以及学校和科研单位。
当前面向智能手机的地图导航系统所提供的服务主要集中在地图的浏览、查询、定位、导航、地址匹配、交通信息查询、地理数据传输以及其它服务。
国外开展此类研究的大型公司和机构有很多,如Uwnierdplnaet、Nokia、Ericsson、Motorola、NTTDocoM。
、AT&TWieresls、Es刃、nItegrraph等公司。
国内相对开展得要晚一些,从事这方面研究与开发的机构有北京四维图新导航技术有限公司,北京灵图软件技术有限公司,上海杰狮信息技术有限公司,上海比技公司,成都华好公司,图行天下信息咨询有限公司,中科华建公司,武汉大学地图制图与地理信息系统重点实验室,测绘遥感信息国家重点实验室,北京大学遥感研究所,解放军信息工程学院等。
在开发模式上,不同的研究机构所采用的模式有所不同,目前最主流也是最成熟的模式有场叭P和i一mode。
认人PI.0是Nokia、Ericsson、Motoorla和UnwiredPlnaet这四家公司合作建立的一个开放的标准。
这些认叭P规范并非仅为一种标记语言,它们还包括了一个非常类似TCP八P和HTTP的协议集,但经过修改后它们可以更有效地在高噪声、低品质、易掉线的环境中使用,而这些都是移动通信的特点。
另外,规范中包括一个网络安全层,以及许多用于传输可编程电话应用程序的特性。
这些应用程序是使用智能电话的核心功能。
最后,认诚P规范还包括主要基于unweridPlnaetHDN压(HnahddelDeviecMkarPuLnagugae,手持设备标记语言)的wML,以及与JvaascriPt相似的称为wN压SeriPt的脚本语言。
最新发布的认叭P2.0版本用与X州压兼容的HT侧比的变体模块xHI,N几替代了wML。
或许认叭P最显著的特点是,它用全球所有主要的底层数据通信协议进行工作。
认叭P将自己描述成移动Intemet服务的实际标准,但日本的NTTDoCoM。
对此持有异议,因为从用户数量上来说该公司提供的i一mdee服务取得了巨大的成功,其用户数量明显超过认认P。
但做为一种解决方案来说在技术上i一mdoe并没有超过认叭P。
i一mdoe服务使用的是一种压缩HT州比〔ocmpactHT侧压,cHTML)的标记语言,它是万维网协会(worid铂d。
WebCnoosrtiunl,W3C)在1998年发布的规范。
CH侧ML语言重又使用了HTMLI.0版的原则并类似HTML3.2版,它是HT州L[的有效子集,因此,可以在任何HTML浏览器中显示。
哪种移动Inetmet技术是最好的,这还没有定论。
面对不断竞争的移动Inetmet接入市场,任何一种技术都不可能占据统治地位。
各种市场研究组织似乎达成了共识:
无论这些智能移动终端设备使用何种技术,智能手机不久就会取代有线个人电脑。
2.2面向智能手机导航地图系统的基本概念
什么样的手机才可以称为智能手机?
除了最早期的“手机加上PDA”外,还有什么衡量标准?
本人认为可以被称为智能手机至少有四个标准:
可以语音和数据通信,这是手机的基本功能;基本的PDA功能;通信功能与PDA功能无缝融合,而非简单的“1+l”;开放式操作系统,第三方可根据操作系统提供的API为智能手机开发各种扩展应用和提供各种扩展硬件,这是智能手机的根本特性。
现在跟智能手机有关的名词特别多也很容易混淆,下面就有几个概念需要明确:
PocketPC:
掌上型计算机,以PDA为应用方向,具有触控屏幕。
虽然可以外加GPRS卡
来接打电话和使用GPRS,但是一旦使用者将Power键按下后,GPRS和手机功能就暂停了。
换句话说,任何打来的电话都不会接通的。
PPC的操作系统是WinCE3.0和WindowsMboeli2003,对使用Windows操作系统的用户来说没有任何使用上的困难。
这个平台是开放的,如果你觉得它内置的应用程序不能满足你的需要,那么你可以安装自己各种各样的第三方软件。
PokcetPCPhnoe:
在PocketPC的架构中加入手机功能,因此与PocketPC最大的差别在于
PoeketPCPhone可以插入SIM卡后当作手机使用(CDMA系统无须插入SIM卡),按下Power
键,手机功能依然持续在运作。
此外PocketPC应用程序原则上兼容于PocketPCPhnoe。
Smartphnoe:
定位为纯手机操作的系统,没有触控屏幕的设计,中英文输入法以操作数字键输入为基本设计,在显示上也以数字键操作为考量,在程序集中即以1,…,9来设定对应的选择。
而Smartphnoe的程序必须与PocketPC(Phnoe)分开设计,也就是说是不兼容的。
简单的界定,PocketPCphone就是以数据功能为主,话音功能为副的产品;相反Smartphnoe就是以话音功能为主,辅助其他数据及上网功能。
不过世事无绝对,市面上也有很多手机已经是在这个界定两者之间。
本人认为,不论是PocketPCPhone还是Smartphone,只要符合智能手机的四条标准,就属于智能手机的范畴。
导航地图属于电子地图的范畴,是以导航应用为基础,着重表现路网的电子地图,在此基础上可以进行导航功能的开发。
移动地图是指通过基于位置的服务为顾客提供的显示在移动设备上的地图可视化产品。
面向智能手机的导航地图,由于其地图表现载体的特殊性,即移动性,因此也属于移动地图的范畴。
这类特殊电子地图的特点是:
能够随时随地按用户的需求以用户的当前位置为基点显示空间信息,具有设备可移动性、用户自适应性、信息获取灵活性、信息显示动态性等特点。
利用面向智能手机的移动空间信息技术,人们一般将空间信息数据的显示、数据查询,甚至是数据的更新等操作集中到移动终端,是对网络终端的扩展:
在服务器端主要完成空间数据的编辑、空间数据的组织、空间数据的分析、空间信息的分发等。
在移动终端(即智能智能手机),开发人员采用JAVA、BREW、.NET等软件开发平台和嵌入式开发,可以实现终端的服务功能。
在服务器端,开发人员可采用各种面向对象的开发语言开发空间信息服务,实现空间信息组织、分析、分发等功能。
3Android开发平台的搭建及开发环境特点
3.1Android开发平台的搭建
搭建android开发平台
1.1安装javajdk,最新版本为6,下载地址/downloads/widget/jdk6.jsp。
下载成功后,安装。
1.2安装eclipse
Eclipse是一款开源的集成开发环境,他能够极大的提高开发应用效率。
最重要的是,它提供了丰富的android应用。
开发人员可以访问网址/下载Eclipse软件,如图1-2所示。
图1-2
Eclipse有多个版本,开发android应用只需要下载“EclipseIDEforjava
Developers”版本即可。
下载得到一个压缩文件,只需解压到指定目录(c:
/eclipse)。
进入解压目录,双击可执行文件Eclipse.EXE,得到如图1-2-1启动界面。
图1-2-1
1.3安装ADT插件
在图1-2-1所示的Eclipse界面中选择菜单【Help】----【InstallNewSoftware】来打开【Install】对话框,如图1-3所示。
图1-3
单击右上角【add】按钮,弹出如图1-3-1【AddRepository】。
图1-3-1
在【Name】中输入‘ADT’,在【Location】文本框中输入ADT插件下载地址。
如图1-3-1。
过几秒钟后,在【Install】对话框的中间列表部分,将得到与Eclipse相匹配的ADT插件。
如图1-3-2
图1-3-2
单击单击【selectall】按钮选择上述插件,单击【next】进入下一步安装步骤,如下图1-3-3
图1-3-3
单击【Next】按钮进入下一步,如图1-3-4
图1-3-4
单击按钮【Iacceptthetremsofthelicenseagreements】接受协议。
单击【finish】,Eclipse开始从指定的网站下载ADT插件,如图1-3-5
图1-3-5
插件下载过程中会弹出如图1-3-6所示的窗口,提醒插件包含没有有效签名的类容,完全可以忽落这一提示,单击【Ok】继续。
图1-3-6
得到如图所示的运行的界面,提示需要重启Eclipse。
单击,至此Android开发环境已经搭建成功。
3.2android开发环境特点
Android作为一个开放式的平台,理论上可以在其上开发基于多种语言的应用程序(例如C+--t-、Java等等),但是Android平台将Java语言作为它的官方语言,这无不是考虑到Java语言的强大功能和极佳的平台适应性,也是基于如此考虑Android平台上绝大部分的程序都是基于Java的程序。
EcliPse作为时下最流行的Java开发工具之一,其良好的开放性、开发效率高、便于使用的特点非常符合OHA(openHandsetAllianee开放手机联盟)的主旨,非常适合作为Andrnid的开发工具来使用。
另外,为便于Andrnid应用程序的开发,OHA专门为Eclipse开发了Android插件,使得开发者可以方便的使用Eclipse开发Android应用程序。
基于以上两点本文选择Eclipse作为其开发工具。
4软件设计的主题内容
4.1UI界面设计
Android应用程序的基本功能单元就是AcTIvity类中的一个对象,Activity主要功能为界面显示和事件处理。
在Activity中使用View和ViewGroup控件配XML样式来进行界面设计,使用事件处理进行人机交互,主要的事件处理为按钮事件、触屏事件以及一些高级控件的事件监听。
通过设置控件与事件处理就形成了UI界面。
1、GPS定位信息的显示
通过textView控件显示定位信息。
在程序打开时就显示目前用户的具体位置和邮编,门牌号等相关信息,若GPS定位不成功或者出错,则显示“无法获取目前地址”。
2、用户输入导航起始地点
通过设置EditView控件,用户能在改控件中输入自己需要导航的起始地点,通过设置名为“导航”的ButtON控件对输入信息进行提交,当监听到Button按钮OnClick时则分析起始地址,若起始地址都能被解析,则载入导航地图,若又一个地址解析失败,则通过对话框控件Dialog提示用户“输入地址错误,请重新输入”。
3、导航界面设计
在导航界面中设置WebView控件,WebView控件通过与javascript互相调用,把起始地址等信息传递给服务器中的HTML导航网页。
网页获得地址等信息后进行导航并通过WebView控件显示在应用程序导航界面中。
4.2GPS定位功能实现
全球卫星定位系统(GlobalPositioningSystem,GPS)是一个中距离圆型轨道卫星导航系统,它可以为地球表面超98%的地区提供准确的定位、测速和高精度的时间标准服务,在各个领域都有广泛的应用。
Android支持GPS服务的API.该服务可以用来获取当前设备的地理位置,应用程序通过该API获得地理位置,并可以定时请求更新当前设备的地理定位信息。
该系统将用到GPSAPI中包几个重要的功能类:
LocATIonManager,用于管理Android用户定位服务;LocationProvider,提供多种定位方式供开发者选择;Criteria,是应用通过LocationProvider中设置的属性来选择合适的定位提供者。
获取用户当前位置的步骤如下:
1、在AndroidManifeST.xml中声明相应的权限:
name="“"permission>
2、获取LocationManager对象:
LocationManagerlocationManager=(LocationManager)getSystemSERvice(Context.LOCATION_SERVICE);
3、设置Criteria对象:
Criteriacriteria=newCriteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
4、设置Provider:
Stringprovider=locationManager.getBestProvider(criteria,true);
Locationlocation=locationManager.getLastKnownLocation(provider);
4.3导航功能实现
在正式版本的AndroidSDK中,移除了原有M5版本里面的DrivingDirectionpackage,所以无法透过程序来规划导航线路。
因此导航功能的实现我们是通过载入web导航网页的方式实现的。
Android提供了一个名为WebView的控件来专门浏览网页。
WebView控件是基于WebKit浏览器网页排版引擎的一个java接口,它能够完美支持html、javascript、css.有时我们可以把整个UI甚至数据处理都交给WebView,配合PHP等服务器端程序,这样的Android应用开发更为简单UI更为丰富。
因此本系统的导航功能的主要工作就集中在编写GoogleMapApijavascript版本的导航网页以及WebView与javascript的数据交互中。
1、WebView的定义及设置:
首先要在XML布局文件中定义WebView控件;然后在程序中装载这个控件,设置属性;最后通过loadUrl方法实现网页的载入。
WebView常用的类有:
WebSettings、WebViewClient、WebChromeClient.
WebSettings用来设置WebView的一些属性状态,如:
//设置可以访问文件
webSettings.setAllowFileAccess(true);
//设置支持缩放
webSettings.setBuiltInZoomControls(true);
WebViewClient专门辅助WebView处理各种通知、请求等事件类,通过WebView的setWebViewClient方法来指定一个WebViewClient对象,如下:
webView.setWebViewClient(newWebViewClient()
{
publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){
view.loadUrl(url);
returntrue;
}
})
WebChromeClient类专门用来辅助WebView对话框、网站图标、网站Title、加载进度等。
使用方法如下:
webView.setWebChromeClient(newWebChromeClient()
{
@Override
//该方法为处理javascript中的alert事件
publicbooleanonJsAlert(WebViewview,Stringurl,Stringmessage,
JsResultresult){
//TODOAuto-generatedmethodstub
returnsuper.onJsAlert(view,url,message,result);
});
设置完WebView后主要工作就是Html网页的编写。
2、编写Html网页实现线路规划:
线路规划的前提是必须要指定起始地址以及出行方式,本系统用户是通过在Activity中输入地址和选择出行方式来向系统提交信息。
WebView必须从应用中获取信息,然后发送给Html,供javascript调用并实现导航。
在android应用端,定义一个类保存用户输入的起始地址的经纬度信息:
//在javascript脚本中调用得到LatlngData对象
publicLatlngDatagetLatlngData()
{returnlatlngData;
}
/*定义一个latlngData类,保存经纬度信息,经纬度由Geocoder.getFromLocationNAME()方法按照用户输入地址解析而得到。
*/
classLatlngData
{StringstartLatlng;
StringendLatlng;
publicLatlngData()
{
this.startLatlng=“”;
this.endLatlng=“”;
}
publicStringgetStartLatlng()
{
returnstartLatlng;
}
publicStringgetEndLatlng()
{
returnendLatlng;
}
}
//通过LatlngDataInterface()方法将数据类绑定给javascript,这样javascript就能够获//得了用户的数据了。
publicclassDataJavaScriptInterface{
publicLatlngDataLatlngDataInterface(){
latlngData=getLatlngData();
returnlatlngData;
}
在Html网页中编写以下代码获得数据,并通过格式转换使数据能够为线路规划所接受,代码如下: