国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android平臺(tái)Google地圖的開(kāi)發(fā)

2015-02-22 11:41王雨澤
河南科技 2015年23期
關(guān)鍵詞:畫(huà)布實(shí)例應(yīng)用程序

王雨澤

(南京市第一中學(xué),江蘇 南京 210001)

Android是時(shí)下一個(gè)熱門(mén)名詞,它是Google公司發(fā)布的基于Linux的開(kāi)源手機(jī)平臺(tái),該平臺(tái)由操作系統(tǒng)、中間件和應(yīng)用軟件組成,是第一個(gè)可以完全定制、免費(fèi)、開(kāi)發(fā)的移動(dòng)設(shè)備操作平臺(tái)。Android平臺(tái)有豐富的應(yīng)用程序,也大幅度降低了應(yīng)用程序的開(kāi)發(fā)費(fèi)用。而且,Android底層使用開(kāi)源的Linux操作系統(tǒng),同時(shí)開(kāi)放了應(yīng)用程序開(kāi)發(fā)工具,使所有程序開(kāi)發(fā)人員都在統(tǒng)一、開(kāi)放的開(kāi)發(fā)平臺(tái)上進(jìn)行開(kāi)發(fā),保證了Android應(yīng)用程序的可移植性。

1 Android的系統(tǒng)架構(gòu)

Android操作系統(tǒng)的系統(tǒng)架構(gòu)像是在蛋糕店購(gòu)買(mǎi)的一個(gè)多層蛋糕,在移動(dòng)設(shè)備的硬件和用戶之間是Android軟件堆棧。Android軟件堆棧可以分為以下四個(gè)層次。

1.1 應(yīng)用程序?qū)?/h3>

用戶在Android操作系統(tǒng)上執(zhí)行的是應(yīng)用程序,這也是用戶直接接觸的Android操作系統(tǒng)?;旧希珹ndroid默認(rèn)內(nèi)置一些核心應(yīng)用程序,包含瀏覽器、日歷、通信錄和打電話等,所有Android應(yīng)用程序都是使用Java語(yǔ)言開(kāi)發(fā)的。

1.2 應(yīng)用程序框架層

位于應(yīng)用程序?qū)又碌氖菓?yīng)用程序框架層,這一層提供高級(jí)的建構(gòu)組件,即用于創(chuàng)建Android應(yīng)用程序的一組類(lèi)集合,換句話說(shuō),應(yīng)用程序框架代表Android操作系統(tǒng)實(shí)現(xiàn)的眾多Java類(lèi),我們只需調(diào)用適當(dāng)對(duì)象的方法,或繼承指定類(lèi)來(lái)擴(kuò)展其功能,就可以快速創(chuàng)建Android應(yīng)用程序。

1.3 Android運(yùn)行時(shí)庫(kù)和其他庫(kù)層

Android運(yùn)行時(shí)庫(kù)由Dalvik虛擬機(jī)和核心Java函數(shù)庫(kù)(提供了JAVA語(yǔ)言核心庫(kù)內(nèi)的大部分功能)組成,Dalvik虛擬機(jī)是Google針對(duì)移動(dòng)設(shè)備所實(shí)現(xiàn)的Java虛擬機(jī),Android應(yīng)用程序是使用Java語(yǔ)言編寫(xiě)和編譯,在Dalvik VM上執(zhí)行,換句話說(shuō),Java程序代碼在編譯成Java類(lèi)文件后,還需轉(zhuǎn)換成Dalvik的Dex個(gè)是,才能在Dalvik虛擬機(jī)上執(zhí)行。同時(shí),Android提供了豐富的函數(shù)庫(kù),負(fù)責(zé)支持應(yīng)用程序框架各組件的執(zhí)行,這是一些使用C/C++語(yǔ)言編寫(xiě)的函數(shù)庫(kù),包括瀏覽器引擎的WebKit、3D繪圖的OpenGL、數(shù)據(jù)庫(kù)的SQLite和支持多種媒體播放的函數(shù)庫(kù)。

1.4 Linux內(nèi)核層

Linux內(nèi)核負(fù)責(zé)提供系統(tǒng)的核心服務(wù),包括線程、低級(jí)的內(nèi)存管理、網(wǎng)絡(luò)、進(jìn)程管理、電源管理和硬件的驅(qū)動(dòng)程序。

2 Google Map

提起Google,人們最先想到的一定是它的搜索引擎,不過(guò)繼搜索引擎之后,Google地圖的影響力越來(lái)越大。在Android系統(tǒng)剛剛起步的時(shí)候,Google就看到了基于定位服務(wù)的應(yīng)用潛力,并將Google地圖的成功經(jīng)驗(yàn)帶入了Android系統(tǒng)當(dāng)中。很多基于定位功能的應(yīng)用程序最終都需要顯示地圖,Google地圖已經(jīng)可以非常成熟地顯示交互式地圖,其商業(yè)模式還允許第三方網(wǎng)站將Google地圖嵌入到自己的頁(yè)面中。Google地圖的大部分功能都可以在Android平臺(tái)上實(shí)現(xiàn),Android平臺(tái)下的開(kāi)發(fā)者可以將Google地圖嵌入到自己的應(yīng)用程序中。

Google地圖是 Google 公司提供的電子地圖服務(wù),包括局部詳細(xì)的衛(wèi)星照片。能提供三種視圖:一是矢量地圖(傳統(tǒng)地圖),可提供政區(qū)和交通以及商業(yè)信息;二是不同分辨率的衛(wèi)星照片(俯視圖,跟 Google Earth 上的衛(wèi)星照片基本一樣);三是地形視圖,可以用以顯示地形和等高線。

3 基于Android平臺(tái)的Google Map 應(yīng)用實(shí)例

本實(shí)例是以eclipse與android SDK為開(kāi)發(fā)工具,開(kāi)發(fā)一款在Android平臺(tái)上運(yùn)行的Google地圖應(yīng)用,具有注冊(cè)用戶,登陸的功能,能在屏幕上顯示出地圖,并能夠選擇普通模式和衛(wèi)星模式,能夠具有定位功能,在地圖上完成標(biāo)注點(diǎn)并繪制標(biāo)注點(diǎn)之間的軌跡的功能。主要思路就是將Google API包加入至項(xiàng)目中,然后在顯示地圖的布局文件中添加顯示Google map的組件。并在顯示地圖Activity中添加圖層,實(shí)現(xiàn)標(biāo)注點(diǎn)和繪制軌跡的功能。定位則是通過(guò)調(diào)用底層GPS服務(wù),來(lái)獲得當(dāng)前的位置信息。登陸與注冊(cè)功能則是和J2EE項(xiàng)目中的同類(lèi)功能基本相同。

3.1 開(kāi)發(fā)環(huán)境的搭建

Android應(yīng)用程序由Java語(yǔ)言編寫(xiě),因此我們選用開(kāi)源的eclipse作為IDE,并安裝android SDK和AVD即可,在這里就不多贅述了,可查閱相關(guān)教程完成。

3.2 登陸與注冊(cè)

本實(shí)例只存儲(chǔ)一個(gè)用戶名與密碼即可,因此我們選用SharedPreference這種數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)用戶名和密碼。Android平臺(tái)的應(yīng)用開(kāi)發(fā),將功能實(shí)現(xiàn)與布局分開(kāi),即我們?cè)趈ava文件中實(shí)現(xiàn)功能,在xml文件中實(shí)現(xiàn)程序圖形界面的布局。我們?cè)趈ava代碼中如果需要用到布局文件中的某個(gè)按鈕(Button)或者是編輯框(EditText)等組件時(shí),是通過(guò)這個(gè)組件在整個(gè)項(xiàng)目中的ID去訪問(wèn),在java程序初始化的時(shí)候,用 findViewById這么一個(gè)方法去訪問(wèn)某個(gè)組件。按鈕控件我們需要添加單擊事件以及單擊響應(yīng)時(shí)間。實(shí)現(xiàn)的部分代碼如下:

3.3 地圖的顯示

要顯示Google Map,我們需要在Google網(wǎng)站上申請(qǐng)一個(gè)Google API key, 并通過(guò)這個(gè)唯一的Google API key來(lái)“激活”我們所開(kāi)發(fā)的應(yīng)用程序。在Google上可以搜索到詳細(xì)教程步驟,在此也不贅述了。在獲取到密鑰后,我們?cè)谥鞑季种刑砑酉鄳?yīng)的xml代碼,就可以在屏幕上顯示Google地圖了。

實(shí)現(xiàn)定位功能的主要核心代碼如下:

3.4 標(biāo)注點(diǎn)以及標(biāo)注點(diǎn)間繪制軌跡

在Google Map中我們可以定義一個(gè)圖層類(lèi)(Overlay),并在這個(gè)圖層上繪制標(biāo)注點(diǎn)以及標(biāo)注點(diǎn)之間的軌跡。Canvas是Android.Graphics包中的一個(gè)類(lèi),顧名思義,就是畫(huà)布的意思,我們可以在canvas上繪制各種我們想要的圖像。除了在畫(huà)布上繪制之外,還需要設(shè)置一些關(guān)于畫(huà)布的屬性,比如,畫(huà)布的顏色、尺寸等。

繪制軌跡的時(shí)候通過(guò)Google map的一項(xiàng)服務(wù)功能,即向服務(wù)器發(fā)送兩個(gè)點(diǎn)之間的經(jīng)緯度,然后從服務(wù)器返回路線,再在地圖上沿著街道繪制出可行的線路,即完成了導(dǎo)航的功能。從請(qǐng)求這個(gè)服務(wù)的URL中能夠看出,當(dāng)mode=driving時(shí),返回的線路是駕駛路線,這個(gè)時(shí)候考慮到車(chē)道的單雙向問(wèn)題,可以為駕駛員提供單雙行道的路線信息,不會(huì)違法交通規(guī)則;而當(dāng)mode=walking時(shí),返回的路線是步行路線,這個(gè)時(shí)候考慮的則是街道是否允許步行什么地方有人行橫道等等。

這個(gè)功能的難點(diǎn)是在解析從服務(wù)器返回的xml文檔上,解析的主要代碼如下:

3.5 運(yùn)行結(jié)果

經(jīng)過(guò)調(diào)試和修改后,實(shí)例部分運(yùn)行的結(jié)果如下:

圖 地圖定位和繪制軌跡

4 結(jié)語(yǔ)

Android手機(jī)應(yīng)用程序開(kāi)發(fā)著眼于它的整個(gè)體系構(gòu)架,是一項(xiàng)復(fù)雜的工程。本文分析了Android體系的層次架構(gòu),并通過(guò)一個(gè)應(yīng)用實(shí)例開(kāi)發(fā)驗(yàn)證了其平臺(tái)的可用性。下一步的工作是在此基礎(chǔ)上,結(jié)合用戶個(gè)性化的需求進(jìn)行拓展開(kāi)發(fā),以提供更加個(gè)性化的服務(wù)。

[1]張波,趙雙明.基于Android平臺(tái)的百度地圖開(kāi)發(fā)研究[J].軟件導(dǎo)刊,2015,14(7):96-98.

[2]張仕成.基于Google Android 平臺(tái)的應(yīng)用程序開(kāi)發(fā)與研究[J].電腦知識(shí)與技術(shù).2009,5(28):7959-7962.

[3]柳林,唐新明等.移動(dòng)終端位置服務(wù)系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(5):1069-1071.

[4]Darcey,S.Android移動(dòng)應(yīng)用開(kāi)發(fā)從入門(mén)到精通[M].北京:人民郵電出版社,2010.

[5]Menglee,W.Android編程入門(mén)經(jīng)典[M].北京:清華大學(xué)出版社,2012.

猜你喜歡
畫(huà)布實(shí)例應(yīng)用程序
在畫(huà)布上做夢(mèng)的畫(huà)家 夏加爾
為什么要在畫(huà)布上割一刀?
刪除Win10中自帶的應(yīng)用程序
讓鮮花在畫(huà)布上盛開(kāi)
谷歌禁止加密貨幣應(yīng)用程序
大師的畫(huà)布
完形填空Ⅱ
完形填空Ⅰ
三星電子將開(kāi)設(shè)應(yīng)用程序下載商店
微軟軟件商店開(kāi)始接受應(yīng)用程序