沈文瑞,曾連蓀,楊 臻
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
每年秋季開學(xué)時,校園里都有很多學(xué)生問路,現(xiàn)在的大學(xué)占地面積很大,或者地理位置偏僻,新生在剛進(jìn)入學(xué)校中必須有一個熟悉和認(rèn)知的過程。很多時候出現(xiàn)新生在校園中四處飛奔,可眼前一棟棟教學(xué)樓長的極其相似,只得在樓群中苦苦追尋……,若在此尷尬之時,能夠有軟件對學(xué)校主要地點的一些介紹,并在學(xué)校全圖中進(jìn)行顯示,這樣即可解決當(dāng)時的尷尬和茫然。
目前,隨著智能設(shè)備制造技術(shù)的日益先進(jìn)和無線通信的迅猛發(fā)展,出現(xiàn)了智能手機(jī),這些手機(jī)都是基于Android開源操作系統(tǒng)[1]。選用Android操作系統(tǒng)可以大大降低系統(tǒng)成本,另外Android操作系統(tǒng)基于Linux2.6內(nèi)核,具備高穩(wěn)定性和良好的移植性。應(yīng)用程序開發(fā)語言為Java,具備良好的可擴(kuò)展性,便于軟件升級和維護(hù),加之系統(tǒng)本身提供了非常豐富的UI組件,故可以設(shè)計出交互性好的系統(tǒng)應(yīng)用[2]。此外,Google公司提供了Google API來支持Android系統(tǒng)運行如Google maps等應(yīng)用,極大地方便了應(yīng)用程序開發(fā)[3]。
文中將軟件開發(fā)與Internet結(jié)合,設(shè)計實現(xiàn)基于Android操作系統(tǒng)的應(yīng)用軟件——校園導(dǎo)覽軟件,可以實現(xiàn)對學(xué)校主要設(shè)施的介紹,以及定位功能的實現(xiàn)。本軟件是以上海海事大學(xué)臨港校區(qū)校園為例來進(jìn)行測試,由于校園內(nèi)已經(jīng)實現(xiàn)了WiFi的全范圍覆蓋,所以在校園內(nèi)部都可以通過Wifi方式接入互聯(lián)網(wǎng),通過Google maps提供的數(shù)據(jù)實現(xiàn)電子地圖的功能。
Android是Google于2007年11月推出的一款全新的智能手機(jī)平臺,最初,Android的部署目標(biāo)是移動電話領(lǐng)域,包括智能電話和更廉價的翻蓋手機(jī)。但是,Android全面的計算服務(wù)和豐富的功能支持完全有能力擴(kuò)展到移動電話市場以外。因此Android也可以用于其他的平臺和應(yīng)用程序,發(fā)展前景非常廣闊。
Android系統(tǒng)采用了分層的結(jié)構(gòu)[4],Android軟件平臺從上到下主要由5個部分組成:應(yīng)用程序?qū)印?yīng)用程序框架層、Android運行庫層以及Linux內(nèi)核。Android平臺的軟件層次架構(gòu)圖如圖1所示。
圖1 Android軟件層次的結(jié)構(gòu)Fig.1 Structure of the Android operating system
在應(yīng)用程序?qū)又校珹ndroid會附帶一些核心的應(yīng)用程序,包括一個email客戶端,短信程序,日歷,地圖,瀏覽器,通訊錄等等,所有的應(yīng)用程序都是由Java語言完成的;應(yīng)用程序框架層提供了各種視圖組件、內(nèi)容提供器、資源管理器、活動管理器等一系列的系統(tǒng)服務(wù),方便開發(fā)交互性好的應(yīng)用程序,可以使各種組件被用戶應(yīng)用重復(fù)利用;系統(tǒng)運行庫層包含一組核心庫和Dalvik虛擬機(jī),Android中包含了一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用,它們通過Android應(yīng)用程序框架為開發(fā)者提供服務(wù)[5];Linux內(nèi)核層用來提供系統(tǒng)的底層服務(wù),如:進(jìn)程管理、內(nèi)存管理、網(wǎng)絡(luò)協(xié)議棧實現(xiàn)、硬件驅(qū)動和安全服務(wù)等,位于硬件和其它軟件層之間。
文中針對目前校園新生入學(xué)的需求,結(jié)合移動定位技術(shù),開發(fā)了一款校園導(dǎo)覽軟件,該校園導(dǎo)覽軟件的總體框架主要包括:1)電子地圖的下載和顯示;2)用戶位置的檢測和顯示;3)學(xué)校主要設(shè)施的介紹;4)路徑查詢。
該軟件的主要設(shè)計流程為:安裝客戶端程序到自己手機(jī)設(shè)備上的,運行打開首先進(jìn)入歡迎界面,點擊按鈕進(jìn)入下級菜單,根據(jù)用戶不同的選擇選擇不同的服務(wù),系統(tǒng)的流程圖如圖2所示。
圖2 系統(tǒng)功能流程圖Fig.2 Flow chart of the system
程序運行后首先進(jìn)入歡迎界面,這是智能手機(jī)打開應(yīng)用程序首先看到的畫面。點擊“進(jìn)入”按鈕就到達(dá)主界面,出現(xiàn)我的位置,學(xué)校地圖,路徑查詢和天氣預(yù)報4個按鈕,點擊這4個按鈕分別進(jìn)入相應(yīng)的服務(wù)程序。
Android通過集成GPS芯片來接收衛(wèi)星信號,在系統(tǒng)開發(fā)時,用戶即可在Android平臺下的DDMS模擬器里模擬GPS信息,打開DDMS界面,在其左側(cè)可以看到“Emulator Control”面板,面板下有“Location Controls”,在這里用戶可以輸入經(jīng)緯度,然后點擊“Send”即可,在本設(shè)計中,首先通過DDMS向模擬器模擬發(fā)送GPS位置坐標(biāo),在模擬器上就能顯示接收到的經(jīng)緯度坐標(biāo),并能夠?qū)⒋俗鴺?biāo)所確定的位置顯示在Google Map上[6]。同時包括對地圖的放大和縮小,對于學(xué)校新生而言,知道了自己的位置,就很容易辨別方向。
這里默認(rèn)把你當(dāng)前所在位置作為出發(fā)點,在方框里輸入你的目的地,然后確定或者在地圖上直接雙擊你想去的地方,等待片刻系統(tǒng)就會自動為你規(guī)劃路徑,并在地圖上顯示路徑,使你能夠比較直觀的看到路徑信息,從而能夠找到你想要去的地方。圖3顯示的是手機(jī)地圖定位界面,圖4顯示的是路徑查詢界面。
圖3 地圖定位界面Fig.3 Interface of map positioning
圖4 路徑查詢界面Fig.4 Interface of path query
Andriod系統(tǒng)提供了常見的媒體編碼、解碼機(jī)制,因此可以非常容易地集成音頻、視頻和圖片等多媒體到應(yīng)用程序中。播放音頻功能的實現(xiàn)需要實例化一個MediaPlayer類,然后調(diào)用setDataSource()方法來設(shè)置音頻文件的路徑,再調(diào)用start()實現(xiàn)音頻的播放。視頻播放的實現(xiàn)方法類似于音頻播放,借助VideoView和Media-Controller組件即可以實現(xiàn)。
當(dāng)新生來到學(xué)校,想要去往某地,卻不知道在校園哪個位置,這時可以點擊主界面的“學(xué)校地圖”按鈕,在這個界面里列出了學(xué)校幾個主要的地點,并在地圖上標(biāo)記處這幾個點的位置,同時為這些按鈕添加了監(jiān)聽器,當(dāng)外部動作觸摸按鈕時,系統(tǒng)產(chǎn)生click事件,并將其傳入到事件監(jiān)聽器clickListener。事件監(jiān)聽器調(diào)用事件處理器做出相應(yīng)動作,即在onClick方法中調(diào)用系統(tǒng)函數(shù)startActivity,啟動一個intent(意圖),從而實現(xiàn)界面的跳轉(zhuǎn)。例如當(dāng)在地圖上點擊“學(xué)校地圖”按鈕時,就會進(jìn)入位置介紹界面,在位置介紹界面可以得到對這些位置的介紹(包括聲音,圖片,文字)。并且當(dāng)手機(jī)靠近其中某一地點時,會進(jìn)行自動跳轉(zhuǎn),并出現(xiàn)歡迎前去參觀的提示。如圖5所示。
圖5 天氣查詢界面Fig.5 Weather interface
其他模塊包括一些小游戲,天氣預(yù)報等,這樣既可以休閑娛樂,還可以查詢本城市未來幾天的天氣情況,同時也可以查到其他省市的天氣情況,這樣就掌握了天氣變化,根據(jù)情況及時増減衣物和調(diào)整出行計劃。
這里以加載天氣預(yù)報為例,根據(jù)天氣預(yù)報系統(tǒng)功能需求分析,系統(tǒng)啟動后,應(yīng)在查詢天氣界面上呈現(xiàn)出中國國內(nèi)所有城市的列表數(shù)據(jù),因此需要創(chuàng)建中國城市列表數(shù)據(jù),包括獲取、解析城市列表數(shù)據(jù),并在用戶界面上呈現(xiàn)出來。為此,需要解決的問題是手機(jī)終端從Web服務(wù)器獲取了所有類型的數(shù)據(jù)之后,將這些數(shù)據(jù)進(jìn)一步交給Android手機(jī)終端View組件,在手機(jī)界面上顯示給用戶。并且需要在onCreate()方法中進(jìn)行數(shù)據(jù)獲取的初始化工作,通過定義一個方法public List<String>getAllCitiesNames()可獲得中國城市名稱列表。
圖6 圖片展示界面Fig.6 Interface of image display
文中所實現(xiàn)的校園導(dǎo)覽軟件是基于Android平臺的WEB地圖服務(wù),采用的網(wǎng)絡(luò)地圖是Google Maps,該導(dǎo)覽軟件可以用來瀏覽校園地圖,并能對其放大、縮小和移動,同時利用GPS定位技術(shù),實現(xiàn)自我定位、位置查找和路徑規(guī)劃等功能,基本滿足了手機(jī)用戶基本的服務(wù)需求。通過移動通信網(wǎng)絡(luò)與手機(jī)地圖應(yīng)用服務(wù)器之間的互聯(lián)通信,提供給學(xué)生各種與位置相關(guān)的信息,給他們提供了極大的方便。
[1]郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[2]汪永松.Android平臺開發(fā)之旅 [M].北京,機(jī)械工業(yè)出版社,2010.
[3]E2ECloud工作室.深入淺出 Google Android[M].北京:人民郵電出版社,2009.
[4]劉麗,夏冰冰,張岳,等.Android城市導(dǎo)游系統(tǒng)的設(shè)計與實現(xiàn)[C]//Proceedings of 2010 Asia-Pacific Conference on Information Theory (APCIT 2010),2010.
[5]耿慶齋,繆綸,段媛嬡,等.基于Google Maps API的Web地圖服務(wù)系統(tǒng)研究及應(yīng)用[J].中國水利水電科學(xué)研究院學(xué)報,2009,7(1):62-66.GENGQing-zhai,MIAOLun,DUANYuan-yuan,et al.Research and application of web map service system based on Google Maps API[J].Journal of China Institute of Water Resources and Hydropower Research,2009,7(1):62-66.
[6]張國生,高薄,姚慧敏.手機(jī)定位服務(wù)與電子地圖[J].測繪科學(xué)技術(shù)報,2007,24(3):216-218.ZHANG Guo-sheng,GAO Bo,YAO Hui-min.Location based service and electronical map[J].Journal of Zhengzhou Institute of Surveying and Mapping,2007,24(3):216-218.