亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android的手機(jī)導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)驗(yàn)

        2014-05-02 16:16:28任克強(qiáng)李曉亮
        關(guān)鍵詞:功能系統(tǒng)

        任克強(qiáng),李曉亮,謝 斌

        (江西理工大學(xué) 信息工程學(xué)院,江西 贛州 341000)

        隨著國(guó)民經(jīng)濟(jì)的快速發(fā)展,汽車的普及越來(lái)越高,人們對(duì)地圖導(dǎo)航提出了更高的要求。車載導(dǎo)航系統(tǒng)是智能交通系統(tǒng)最重要的組成部分之一,人們可以通過(guò)導(dǎo)航、定位等功能提高車輛行駛的速度和安全性[1]。但是,傳統(tǒng)車載導(dǎo)航不僅價(jià)格昂貴,而且便攜性也很差,且只能滿足一些有車人的導(dǎo)航需求,對(duì)于乘坐公交和其他外出人員則無(wú)法為其提供導(dǎo)航服務(wù)。因此,設(shè)計(jì)一種更加方便和廉價(jià),且易于大眾普及的手機(jī)導(dǎo)航系統(tǒng)有著現(xiàn)實(shí)的市場(chǎng)需求。

        近年來(lái),移動(dòng)手機(jī)用戶的數(shù)量增加迅速,各種智能手機(jī)逐漸普及,手機(jī)的功能已經(jīng)不再局限于通信;同時(shí),無(wú)線網(wǎng)絡(luò)和Android系統(tǒng)的廣泛應(yīng)用,為手機(jī)應(yīng)用程序的開(kāi)發(fā)提供了優(yōu)良的平臺(tái)和廣闊的發(fā)展空間[2]。本文基于開(kāi)源的Android系統(tǒng)設(shè)計(jì)了一種運(yùn)行在手機(jī)上的地圖導(dǎo)航系統(tǒng),該系統(tǒng)可以利用GPS和無(wú)線網(wǎng)絡(luò)進(jìn)行快速、準(zhǔn)確的定位,不僅具有傳統(tǒng)車載導(dǎo)航系統(tǒng)的功能,而且能夠?qū)崟r(shí)顯示城市交通路況,實(shí)時(shí)定位跟蹤多個(gè)客戶端,方便各客戶端之間的聯(lián)系,擴(kuò)展了地圖導(dǎo)航的功能,可滿足普通大眾的出行導(dǎo)航需求。

        1 開(kāi)發(fā)平臺(tái)介紹

        1.1 Android系統(tǒng)

        Android是Google開(kāi)發(fā)的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)[3]。Android于2007年11月推出后獲得了廣泛的應(yīng)用,目前,大多數(shù)智能手機(jī)采用Android系統(tǒng)[4]。Android由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成[5],是真正意義上的開(kāi)放性移動(dòng)設(shè)備綜合平臺(tái),具有豐富的移動(dòng)電話工作軟件。在Android系統(tǒng)中,應(yīng)用程序可完全在Android Dalvik上運(yùn)行,也可利用 Android NDK(android native development kit)技術(shù)來(lái)解決Java代碼運(yùn)行速度低的缺陷[6]。Android系統(tǒng)架構(gòu)采用分層的架構(gòu),從高層到低層分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層[7-8]。在應(yīng)用程序框架層,開(kāi)發(fā)人員可以像核心應(yīng)用程序一樣擁有訪問(wèn)框架API的所有權(quán)限。應(yīng)用的結(jié)構(gòu)化設(shè)計(jì)簡(jiǎn)化了各組件之間的重用,任何應(yīng)用均可以分發(fā)屬于自己的組件,而且在遵循框架的安全性約束前提下,任何應(yīng)用還可以使用這些分發(fā)的組件[9]。開(kāi)發(fā)應(yīng)用程序常用的應(yīng)用框架主要包括以下幾類[10]:

        (1)ContentProviders(內(nèi)容提供器):通過(guò) Content Providers可以在某個(gè)應(yīng)用之中訪問(wèn)其他應(yīng)用的數(shù)據(jù)(例如電話簿),也可以共享自己的數(shù)據(jù)。

        (2)ResourceManager(資源管理器):提供使用者對(duì)靜態(tài)資源的訪問(wèn)能力,比如國(guó)際化文本和布局文件。

        (3)NotificationManager(通知管理器):通過(guò)通知管理器,所有的應(yīng)用都能在狀態(tài)欄顯示自己的提醒消息。

        (4)ActivityManager(活動(dòng)管理器):用來(lái)管理應(yīng)用的生命周期,還提供了通用的向后導(dǎo)航功能。

        1.2 高德地圖

        高德是國(guó)內(nèi)領(lǐng)先的電子地圖服務(wù)公司,包括谷歌在內(nèi)的很多公司的內(nèi)地地圖數(shù)據(jù)都由其提供。截止到2012年第3季度,中國(guó)手機(jī)地圖累計(jì)賬戶在市場(chǎng)份額排名中,高德地圖以25.9%的份額位居第一。高德地圖API具有良好的穩(wěn)定性,并且與Google MAP API基本兼容,成為眾多國(guó)內(nèi)開(kāi)發(fā)者的首選。

        AutoNavi MAP API是高德公司提供的調(diào)用地圖的接口方法。用戶應(yīng)用程序可以通過(guò)AutoNavi MAP API提供的接口方法操作地圖數(shù)據(jù),實(shí)現(xiàn)位置相關(guān)或地圖相關(guān)的應(yīng)用。例如,通過(guò)調(diào)用AutoNavi MAP API,將地圖數(shù)據(jù)整合到用戶的應(yīng)用中,并可將商戶的地理位置信息在地圖上進(jìn)行標(biāo)注,以直觀的形式展現(xiàn)給用戶。

        2 系統(tǒng)設(shè)計(jì)

        2.1 系統(tǒng)總體架構(gòu)

        手機(jī)導(dǎo)航系統(tǒng)采用C/S(client/server,客戶機(jī)/服務(wù)器)模式,其總體架構(gòu)如圖1所示??蛻舳瞬捎没贏ndroid系統(tǒng)的智能手機(jī),服務(wù)器端則用開(kāi)源的tom-cat服務(wù)器實(shí)現(xiàn),兩者通過(guò)無(wú)線網(wǎng)絡(luò)進(jìn)行通信。服務(wù)器端作輕量級(jí)設(shè)計(jì),主要負(fù)責(zé)各客戶端之間的通信,并存儲(chǔ)用戶注冊(cè)方面的等數(shù)據(jù);客戶端功能包括地圖下載、顯示、路線查詢、導(dǎo)航、定位以及與服務(wù)器通信等。

        圖1 系統(tǒng)總體架構(gòu)圖

        2.2 客戶端軟件設(shè)計(jì)

        客戶端軟件主要包括系統(tǒng)界面、自我定位、地址查詢、好友定位、路線查詢以及實(shí)時(shí)路況六大功能模塊。其中,地址查詢包括地名查詢和經(jīng)緯度查詢,路線查詢包括自駕路線查詢和公交路線查詢,如圖2所示。

        圖2 客戶端軟件結(jié)構(gòu)框

        軟件設(shè)計(jì)需要調(diào)用高德公司提供的地圖服務(wù),須先在該公司網(wǎng)站進(jìn)行注冊(cè),取得一個(gè)與本程序唯一綁定的開(kāi)發(fā)密鑰(API KEY),同時(shí)在androidMainfest.xml注冊(cè)程序中所需要的權(quán)限。AutoNavi MAP API將自動(dòng)從androidMainfest.xml文件中獲取用戶的開(kāi)發(fā)密鑰,無(wú)需用戶在程序中輸入。注冊(cè)完成后,才能進(jìn)行下一步的程序開(kāi)發(fā)。

        2.2.1 客戶端 UI模塊

        系統(tǒng)界面主要包括登錄界面、功能選單(菜單)和功能按鈕。功能選單包括自我定位、地址查詢、好友定位、路線查詢、實(shí)時(shí)路況以及退出6個(gè)選單選項(xiàng);功能按鈕包括實(shí)時(shí)路況和自我定位2個(gè)常用功能,實(shí)時(shí)路況按鈕位于屏幕左下角,自我定位按鈕位于屏幕右下角。

        選單和按鈕的布局設(shè)計(jì)保存在layout文件夾的“*.xml”文件中,利用LinearLayout(線性布局)、FrameLayout(單幀布局)、AbsoulteLayout(絕對(duì)布局)、RelativeLayout(相對(duì)布局)和 TableLayout(表格布局)這5種布局模式,通過(guò)不同布局模式的組合可以實(shí)現(xiàn)各種形式的UI界面。

        2.2.2 自我定位模塊

        自我定位功能是通過(guò)GPS所獲得的經(jīng)緯度信息,將客戶端所處位置置于屏幕中央,并加以標(biāo)注;或者進(jìn)行其他操作后需要再次定位時(shí),點(diǎn)擊屏幕右下方的“自我定位”按鈕實(shí)現(xiàn)重新定位。定位有以下兩種方法:

        (1)調(diào)用API的定位方法。程序首先需要啟動(dòng)MyLocation和指南針,然后通過(guò)繼承Overlay類,并重寫(xiě)draw方法實(shí)現(xiàn)定位圖標(biāo)的標(biāo)注,其關(guān)鍵代碼如下:

        該方法定位準(zhǔn)確,但無(wú)法獲得具體經(jīng)緯度值。

        (2)利用Criteria類的定位方法。Criteria類用于選擇位置服務(wù)provider,Criteria類為應(yīng)用程序提供了多種因素的參數(shù)設(shè)置,包括精準(zhǔn)度、用電量、海拔、速度、方向和資費(fèi)等。locationManager根據(jù)設(shè)置的參數(shù)選擇最優(yōu)的provider。通過(guò)Location類中的getLongitude和getLatitude方法獲得具體的經(jīng)緯度數(shù)值,并且可以在LocationListener中對(duì)位置數(shù)據(jù)監(jiān)聽(tīng),當(dāng)客戶端位置發(fā)生改變時(shí),重新獲得新位置的經(jīng)緯度數(shù)據(jù)。其關(guān)鍵代碼如下:

        其 中,locationManager.requestLocationUpdates中的第1個(gè)參數(shù)bestProvider可以是LocationManager.NETWORK_PROVIDER 或 LocationManager.GPS_PROVIDER。

        LocationManager.NETWORK_PROVIDER 使用無(wú)線網(wǎng)絡(luò)進(jìn)行定位,精度較低,但速度快;Location-Manager.GPS_PROVIDER使用GPS進(jìn)行定位,精度高,但一般需要10~60s才能開(kāi)始第1次定位,并且在室內(nèi)基本上無(wú)法定位。這兩種Provider實(shí)際上是互補(bǔ)的,故本系統(tǒng)同時(shí)開(kāi)啟2個(gè)監(jiān)聽(tīng),但基于無(wú)線網(wǎng)絡(luò)的監(jiān)聽(tīng)只執(zhí)行一次,而基于GPS的監(jiān)聽(tīng)則一直持續(xù)下去,直至用戶停止監(jiān)聽(tīng)。

        2.2.3 地址查詢模塊

        地址查詢需要通過(guò)地理編碼進(jìn)行轉(zhuǎn)換。地理編碼是對(duì)地址或經(jīng)緯度地圖坐標(biāo)的編碼,兩者之間可以進(jìn)行轉(zhuǎn)換,以便為基于位置的服務(wù)和基于地圖的活動(dòng)中所使用的位置或坐標(biāo)提供一個(gè)可識(shí)別的上下文[11]。

        地址查詢包括通過(guò)經(jīng)緯度查詢地名以及通過(guò)地名查詢經(jīng)緯度兩種方式。由經(jīng)緯度查詢地名時(shí)是將具體的經(jīng)緯度數(shù)值通過(guò)反向地理編碼得到該經(jīng)緯度對(duì)應(yīng)的地名;由地名查詢經(jīng)緯度是將具體的地名通過(guò)正向地理編碼得到該地名對(duì)應(yīng)的經(jīng)緯度。其關(guān)鍵代碼如下:

        2.2.4 “好友”定位模塊

        所謂“好友”是指授權(quán)可以查看彼此位置信息的客戶端?!昂糜选倍ㄎ还δ苁沟谩昂糜选敝g可以隨時(shí)相互了解彼此的最新位置,為“好友”結(jié)伴出行,以及兒童安全等提供實(shí)時(shí)、直觀的定位。

        每個(gè)客戶端都有一個(gè)唯一的ID,服務(wù)器對(duì)不同的“好友”圈進(jìn)行分組,每個(gè)群組內(nèi)部各個(gè)客戶端定時(shí)將自己的位置信息發(fā)到服務(wù)器,并接受服務(wù)器發(fā)來(lái)的本群組內(nèi)部的其他客戶端的位置信息,然后將他們?cè)诘貓D上標(biāo)志出來(lái)。

        為了保證信息傳輸?shù)目煽?,客戶端與服務(wù)器之間的通信采用TCP/IP協(xié)議。通信過(guò)程利用了TCP/IP網(wǎng)絡(luò)通信的基本操作單元socket套節(jié)字,每個(gè)客戶端與服務(wù)器通信至少需要一對(duì)套節(jié)字[12]。具體的通信過(guò)程為:客戶端向服務(wù)器發(fā)送socket連接請(qǐng)求,服務(wù)器監(jiān)聽(tīng)到該請(qǐng)求后建立socket連接,同時(shí)服務(wù)器繼續(xù)監(jiān)聽(tīng)其他客戶端的連接請(qǐng)求,建立連接后雙方進(jìn)行數(shù)據(jù)傳輸,傳輸完畢后關(guān)閉socket套接字。其關(guān)鍵代碼如下:

        2.2.5 路線查詢模塊

        路線查詢功能可以選擇自駕路線或公交路線,根據(jù)用戶輸入的起始地址和目標(biāo)地址進(jìn)行查詢。地址信息既可以輸入也可以直接點(diǎn)擊屏幕,程序根據(jù)點(diǎn)擊位置自動(dòng)生成相應(yīng)的地址信息。路線查詢需要調(diào)用PoiSearch方法,該方法搜索地址有3種方式:關(guān)鍵字搜索、地域搜索以及類型搜索。本系統(tǒng)采用關(guān)鍵字搜索,其中關(guān)鍵代碼如下:

        2.2.6 實(shí)時(shí)路況模塊

        AutoNavi MAP API支持全國(guó)33個(gè)城市的實(shí)時(shí)路況查詢。實(shí)時(shí)路況查詢可以通過(guò)調(diào)用MapView類中的方法setTraffic()來(lái)實(shí)現(xiàn),setTraffic(true)打開(kāi)實(shí)時(shí)路況顯示,setTraffic(false)關(guān)閉實(shí)時(shí)路況顯示。選擇打開(kāi)實(shí)時(shí)路況顯示后,將自動(dòng)導(dǎo)入當(dāng)前地圖的實(shí)時(shí)路況信息,地圖上的道路會(huì)出現(xiàn)紅、黃、綠3種顏色。紅色代表?yè)矶?,黃色代表緩慢,綠色代表暢通。其關(guān)鍵代碼如下:

        其中,isChecked為實(shí)時(shí)路況標(biāo)志,isChecked=true表示打開(kāi)實(shí)時(shí)路況顯示,isChecked=false則關(guān)閉實(shí)時(shí)路況顯示。

        3 系統(tǒng)實(shí)驗(yàn)

        系統(tǒng)設(shè)計(jì)完成后,即對(duì)本系統(tǒng)進(jìn)行了實(shí)驗(yàn),以測(cè)試系統(tǒng)功能的正確性。Android手機(jī)的參數(shù)為:Android版本2.3.6、內(nèi)核版本2.6.38.6-perf、版本號(hào) www.azdyz.com_w619。實(shí)驗(yàn)結(jié)果如圖3所示。

        圖3(a)是自我定位功能的測(cè)試結(jié)果,圓形紅色圖標(biāo)為客戶端當(dāng)前所處位置,黑色長(zhǎng)框?yàn)槎ㄎ怀晒笙到y(tǒng)提示的位置名稱。圖中客戶端所處位置為“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院”,與系統(tǒng)提示的位置“江西省章貢區(qū)江西理工大學(xué)應(yīng)用科學(xué)學(xué)院研究生公寓附近”一致。

        圖3(b)是地址查詢功能的測(cè)試結(jié)果,在查詢框中輸入“江西省贛州市江西理工大學(xué)”并點(diǎn)擊“確定”后,下方彈出該位置對(duì)應(yīng)的經(jīng)緯度值分別為:114.92915、25.852138,地址查詢結(jié)果正確。

        圖3(c)是“好友”定位功能的測(cè)試結(jié)果,圖中圓形紅色圖標(biāo)為己方位置,圓形藍(lán)色圖標(biāo)為“好友”位置,“好友”定位正確。

        圖3(d)和圖3(e)是路線查詢功能的測(cè)試結(jié)果,起始地址為“江西理工大學(xué)”,目標(biāo)地址為“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院”。圖3(d)所示路線為兩地的最佳路線,圖3(e)所示路線與公交線路一致。

        圖3(f)是實(shí)時(shí)路況功能的測(cè)試結(jié)果。目前,高德地圖僅支持全國(guó)33個(gè)城市的實(shí)時(shí)路況查詢,圖中為北京故宮附近的實(shí)時(shí)路況。

        以上實(shí)驗(yàn)結(jié)果表明:該系統(tǒng)功能準(zhǔn)確,程序運(yùn)行穩(wěn)定可靠,定位和查詢精度較高,滿足了手機(jī)導(dǎo)航的要求。

        4 結(jié)束語(yǔ)

        本文設(shè)計(jì)并實(shí)現(xiàn)了一種C/S模式的Android手機(jī)導(dǎo)航系統(tǒng),服務(wù)器端作輕量級(jí)設(shè)計(jì),使用開(kāi)源的tomcat服務(wù)器;客戶端軟件采用模塊化設(shè)計(jì),利用開(kāi)源的Android系統(tǒng)和高德 MAP API開(kāi)發(fā)客戶端程序。該系統(tǒng)全部為軟件實(shí)現(xiàn),可根據(jù)需要擴(kuò)展系統(tǒng)功能,具有成本低、便于攜帶以及系統(tǒng)升級(jí)和維護(hù)方便等特點(diǎn),能夠穩(wěn)定、可靠地運(yùn)行于絕大多數(shù)Android手機(jī)或其他Android設(shè)備,具有較好的應(yīng)用前景。

        圖3 實(shí)驗(yàn)結(jié)果

        [1]陳浩,張敏.基于ARM的車載導(dǎo)航接收機(jī)應(yīng)用軟件設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2013,21(3):813-815.

        [2]邵志舉,崔光輝.手機(jī)導(dǎo)航系統(tǒng)研究與實(shí)例[J].計(jì)算機(jī)仿真,2008,25(3):142-144,170.

        [3]董劍,張?jiān)?,楊?利用硬件加速層優(yōu)化Android顯示系統(tǒng)[J].小型微型計(jì)算機(jī)系統(tǒng),2012,33(7):1546-1550.

        [4]李東煒,劉鎮(zhèn)章.基于Android智能手機(jī)的實(shí)驗(yàn)室預(yù)約系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2012,29(12):196-198,202.

        [5]劉勝前,陳立定.基于Android平臺(tái)的車輛導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與儀表,2012(4):1-4.

        [6]劉巍然,劉建偉.Android操作系統(tǒng)可信計(jì)算平臺(tái)架構(gòu)[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2013,59(2):159-164.

        [7]黃宏程,胡敏,陳如松.Android移動(dòng)應(yīng)用設(shè)計(jì)與開(kāi)發(fā)[M].北京:人民郵電出版社,2012.

        [8]雷鳴,靳婷,徐曉亮,等.面向龍芯平臺(tái)的Android系統(tǒng)移植研究[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(22):71-73,87.

        [9]姚昱旻,劉衛(wèi)國(guó).Android的架構(gòu)與應(yīng)用開(kāi)發(fā)研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(11):110-112,24.

        [10]倪紅軍.基于Android平臺(tái)的移動(dòng)終端GPS研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(5):198-201.

        [11]Reto Meier.Professional Android 2Application Development[M].王超,譯.北京:清華大學(xué)出版社,2011.

        [12]熊軍華,贠超,王亭嶺.基于多源信息融合的熱缺陷監(jiān)測(cè)系統(tǒng)研究[J].電力系統(tǒng)保護(hù)與控制,2012,41(5):146-150.

        猜你喜歡
        功能系統(tǒng)
        也談詩(shī)的“功能”
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
        辨證施護(hù)在輕度認(rèn)知功能損害中的應(yīng)用
        久久精品国产亚洲av高清漫画| 精品成人av人一区二区三区| 国产精品一区二区三区卡| 白嫩少妇在线喷水18禁| 亚洲一区二区三区高清在线观看| 日韩人妻无码一区二区三区久久| 亚洲老妈激情一区二区三区| 日韩专区欧美专区| 性色av手机在线观看| 国产自拍精品视频免费| 国产午夜鲁丝片av无码| 欧美一级视频精品观看| 国产一区亚洲一区二区| 中文字幕中文字幕777| 国产无套粉嫩白浆在线| 久久精品人妻一区二区三区| 精品日韩欧美一区二区三区在线播放| 日韩精品免费av一区二区三区| 亚洲熟妇av一区| 亚洲精品无码久久毛片| 日韩精品一区二区av在线| av网站免费观看入口| 日韩av无码一区二区三区不卡| 国产山东熟女48嗷嗷叫| 精品国产日韩无 影视| 亚洲国产精品国自产拍性色| 国自产精品手机在线观看视频 | 免费观看a级毛片| 国产农村妇女毛片精品久久| 久久久久成人精品无码| 国产内射在线激情一区| 国产真实乱对白在线观看| 深夜福利国产精品中文字幕| 2020无码专区人妻系列日韩| 国产一及毛片| 偷拍熟女露出喷水在线91| 亚洲色图片区| 熟妇与小伙子matur老熟妇e| 精品久久日产国产一区| 精品无码av无码专区| 国产成人久久777777|