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