鄒元杰
【摘要】本文主要闡述以eclipse為開發(fā)工具,基于智能手機(jī)Android設(shè)計(jì)移動公交查詢系統(tǒng),并對其中相關(guān)技術(shù)進(jìn)行研究。
【關(guān)鍵詞】Android 公交查詢
一、前言
位置是人們理解和駕馭世界的基礎(chǔ),人們在快節(jié)奏的經(jīng)濟(jì)生活中,迫切想知道當(dāng)時(shí)所處的環(huán)境信息。隨著空間信息技術(shù)、移動通信技術(shù)、Internet技術(shù)以及移動終端技術(shù)的快速發(fā)展,人們對所處位置以及與位置相關(guān)的信息需求愿望實(shí)現(xiàn)成為可能。
在我國,隨著經(jīng)濟(jì)的快速發(fā)展,和城市化的快速發(fā)展,城市公交系統(tǒng)也隨之迅速擴(kuò)大,且更加復(fù)雜化,找不到合適的乘車路線的事情經(jīng)常發(fā)生。當(dāng)前,復(fù)雜的公交系統(tǒng)使得用戶往往處于迷惑的狀態(tài),給出行帶來諸多不便,應(yīng)運(yùn)而生的移動公交查詢系統(tǒng)是上述技術(shù)的有機(jī)集成,它將Internet上的海量信息和地理信息系統(tǒng)的強(qiáng)大應(yīng)用服務(wù)功能擴(kuò)展到移動終端上,為移動用戶基于位置的信息交換、信息獲取、信息共享和信息發(fā)布提供了便捷、經(jīng)濟(jì)的技術(shù)途徑。
同時(shí),隨著現(xiàn)在社會的發(fā)展,我們的生活也朝著電子化不斷發(fā)展,如交通電子眼在交通管理中越來越普及;而經(jīng)濟(jì)的不斷發(fā)展,避免不了人們都要到某些城市去公干或其他的事情。一旦你對這個(gè)城市不熟悉,你的出門就會舉步維艱。打的,對于一些因公出差的人來說算不了什么,但是對于旅游者或是個(gè)人來說就不是很好的選擇。因此,開發(fā)一個(gè)城市的公交車查詢系統(tǒng)就顯得十分必要,可以說是關(guān)系到一個(gè)城市的形象問題。因此公交查詢系統(tǒng)將幫助出行人士方便、高效的安排自己的行程。
二、Android開發(fā)技術(shù)介紹
Android開發(fā)平臺采用開源的JAVA技術(shù),平臺集成了地圖服務(wù)模塊,并對核心系統(tǒng)架構(gòu)進(jìn)行了優(yōu)化,對硬件的性能要求較低,加上其獨(dú)特的intent模塊機(jī)制,使移動公交查詢系統(tǒng)服務(wù)開發(fā)門檻出現(xiàn)了劃時(shí)代意義上的降低。Android平臺是由Google與開放手機(jī)聯(lián)盟合作開發(fā)的一個(gè)開放性的移動開發(fā)平臺,它采用Linux內(nèi)核,獨(dú)特的Dalvik虛擬機(jī),集成特有的地圖模塊、快捷的XML布局方案、輕量級的SQLite數(shù)據(jù)庫、高效的2D、3D繪圖方案以及多媒體技術(shù)等等,它具有強(qiáng)大的網(wǎng)絡(luò)訪問功能,集成3G網(wǎng)絡(luò)與WiFi、藍(lán)牙等無線網(wǎng)絡(luò)技術(shù),并且可以對開發(fā)者之間的功能模塊進(jìn)行無縫繼承與共享,高效的功能模塊重用讓開發(fā)的周期更短,開發(fā)難度更低,結(jié)合日益完善的移動定位技術(shù),移動用戶的M—GIS體驗(yàn)愈來愈好。Android是一個(gè)真正意義上的開放性移動設(shè)備綜合平臺,基于Android進(jìn)行移動公交查詢系統(tǒng)開發(fā),可以很容易地利用Google Maps地圖資源以及開放的API接口,可以說,基于An-droid的移動公交查詢系統(tǒng),是移動終端M—GIS開發(fā)道路上的一個(gè)里程碑。
三、Android應(yīng)用程序組件
Android的一個(gè)主要特點(diǎn)是,一個(gè)應(yīng)用程序可以利用其他應(yīng)用程序的元素(假設(shè)這些應(yīng)用程序允許的話)。例如,如果你的應(yīng)用程序需要顯示一個(gè)圖像的滾動列表,且其他應(yīng)用程序已經(jīng)開發(fā)了一個(gè)合適的滾動條并可以提供給別的應(yīng)用程序用,你可以調(diào)用這個(gè)滾動條來工作,而不用自己開發(fā)一個(gè)。你的應(yīng)用程序不用并入其他應(yīng)用程序的代碼或鏈接到它。相反,當(dāng)需求產(chǎn)生時(shí)它只是啟動其他應(yīng)用程序塊。
對于這個(gè)工作,當(dāng)應(yīng)用程序的任何部分被請求時(shí),系統(tǒng)必須能夠啟動一個(gè)應(yīng)用程序的進(jìn)程,并實(shí)例化該部分的Java對象。因此,不像其他大多數(shù)系統(tǒng)的應(yīng)用程序,Android應(yīng)用程序沒有一個(gè)單一的人口點(diǎn)(例如,沒有main()函數(shù))。相反,系統(tǒng)能夠?qū)嵗瓦\(yùn)行需要幾個(gè)必要的組件。有四種類型的組件:活動(Activities)、服務(wù)(Services)、廣播接收者(Broadcast receivers)、內(nèi)容提供者(Content providers)。
然而,并不是所有的應(yīng)用程序都必須包含上面的四個(gè)部分,你的應(yīng)用程序可以由上面的一個(gè)或幾個(gè)來組建。當(dāng)你決定使用以上哪些組件來構(gòu)建Android應(yīng)用程序時(shí),你應(yīng)該將它們列在Android Manifest.xml文件中,在這個(gè)文件中你可以聲明應(yīng)用程序組件以及它們的特性和要求。
四、基于Android的移動公交查詢系統(tǒng)設(shè)計(jì)
Android開發(fā)平臺是由谷歌與開放手機(jī)聯(lián)盟合作開發(fā)的一個(gè)開放、自由的移動終端平臺,它由操作系統(tǒng)、中間件、應(yīng)用軟件三部分組成。該平臺備有完善的程序開發(fā)環(huán)境,包括模擬器、除錯(cuò)工具、程序執(zhí)行所耗用存儲器、性能評介等功能。平臺提供了兩個(gè)基于位置服務(wù)的地圖API開發(fā)包:Android.location以及com.google.Android.maps.通過對這兩個(gè)地圖API開發(fā)包內(nèi)與位置服務(wù)相關(guān)的類的使用,配合設(shè)備本身的具備的定位定向等相關(guān)模塊,可以很好地實(shí)現(xiàn)對用戶移動空間信息服務(wù)應(yīng)用程序開發(fā)。
Android的定位接口(Android.location)包含幾個(gè)與位置服務(wù)相關(guān)的類,并且提供Location Manager服務(wù),這個(gè)服務(wù)提供定位與定向API,當(dāng)然,前提是設(shè)備具備這種基本的功能模塊,比如說,設(shè)備內(nèi)置了GPS接收機(jī)模塊等等。Location Manager服務(wù)不會被直接用來獲取用戶位置信息,它會通過get System Service(Context.LOCATION__SERVICE)來獲得一個(gè)指向它的Handle,實(shí)現(xiàn)對它的有效應(yīng)用。一旦應(yīng)用程序擁有了一個(gè)指向Location Manager的Handle,那么它將會擁有以下三種功能:查詢Location Manager所掌握的全部Location Providers的最終位置信息列表;注冊或者注銷當(dāng)前位置從一個(gè)Location Provider提供的實(shí)時(shí)位置更新;當(dāng)移動終端在一個(gè)給定的位置半徑范圍以內(nèi)的話,激活一個(gè)給定的in-tent,從而實(shí)現(xiàn)用戶所需的空間信息功能。
需要說明的是,開發(fā)階段不能使用Network、GPS等獲取的真正的實(shí)時(shí)位置數(shù)據(jù)。為此,平臺提供了模擬數(shù)據(jù)開發(fā)的功能模塊,開發(fā)者可以使用DDMS或者geo命令行導(dǎo)人模擬數(shù)據(jù)到模擬器中進(jìn)行程序模擬,對開發(fā)者來說,是一個(gè)很好的位置信息服務(wù)開發(fā)輔助工具。
Android的地圖接口(com.google.Android.maps)包含了一系列與地圖開發(fā)功能相關(guān)的類,這些類提供了渲染、控制以及繪制覆蓋層等功能,開發(fā)者可以很容易地進(jìn)行基于Google Maps地圖服務(wù)的開發(fā)。這些類中,最重要的要數(shù)Map View這個(gè)類了,只需在你的布局中加入一個(gè)Map View,屏幕上就繪出一個(gè)基本的Google Map。開發(fā)平臺把一切與Map相關(guān)的Activity功能抽象為Map Activity,要出現(xiàn)顯示Google Map的效果,在你執(zhí)行Map View的Activity中需要繼承Map Activity這個(gè)接口。
Google Maps服務(wù)要求開發(fā)者獲取一個(gè)使用Map View的API Key,以便在使用應(yīng)用程序時(shí)能加載地圖數(shù)據(jù),這個(gè)API Key的獲取過程也很簡單。創(chuàng)建了一個(gè)Map View后,用戶需要獲得對它的控制,那么將會用到get Controller()來獲取Map Controller,以便進(jìn)行控制或者激活這個(gè)Map View,同時(shí)通過Itemized Overlay以及Over Lay在Map上繪制overlays以及其他信息。這不是Android庫內(nèi)的一個(gè)標(biāo)準(zhǔn)包,因此,在使用它時(shí),開發(fā)者需要在Android Manifest file里加上下面一行作為
Android以其集成的獨(dú)特的地圖服務(wù)模塊,以及對硬件性能的低要求,對4G等無線網(wǎng)絡(luò)的迅捷訪問功能,為普通用戶開發(fā)移動公交查詢系統(tǒng)帶來了很大的便利,它的出現(xiàn),為解決用戶移動空間信息需求提供了高效的開發(fā)平臺。