王 亮,曾連蓀
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
手機如今早已成為人們隨身攜帶的最為便利的通訊工具,而智能手機的出現(xiàn),更使它成為人們快速方便的獲得信息的一種重要途徑,憑借著其豐富多彩的應(yīng)用,正迅速地擴展市場,成為通信設(shè)備領(lǐng)域中不可忽視的一股力量。操作系統(tǒng)是智能手機的靈魂,操作系統(tǒng)的功能直接決定智能手機的可擴展性,以 Google公司的 Android[1-2]、蘋果公司的 IOS、微軟公司的Windows phone等主流智能手機操作系統(tǒng)為平臺的各種手機軟件的出現(xiàn)及無線互聯(lián)網(wǎng)等現(xiàn)代通信技術(shù)的發(fā)展,使得無論是在安防、交通、消費、旅游、還是醫(yī)療、家居等領(lǐng)域,都無時不刻的在改變著人們的生活。但是,由于手機硬件性能及其存儲空間的限制,手機中存儲的信息也受到了極大的限制,其應(yīng)用范圍也因此大打折扣,在某些領(lǐng)域的應(yīng)用更顯得力不從心。這樣,另一種先進的互聯(lián)網(wǎng)技術(shù)“云計算”在手機領(lǐng)域也得到了快速的推廣與應(yīng)用,使得我們的手機的應(yīng)用服務(wù)更加的豐富多彩,人們的生活也更加的便利。
文中就是在Android操作系統(tǒng)下,脫離傳統(tǒng)的C/S架構(gòu)模式,采用B/S架構(gòu),結(jié)合先進的“云服務(wù)”技術(shù),對當(dāng)下較為熱門的智慧旅游建設(shè)規(guī)劃和智能導(dǎo)游服務(wù),進行了深入的探索與研究,給出一套較為完善的基于“云服務(wù)”和Android操作系統(tǒng)平臺的手機智能導(dǎo)游系統(tǒng)解決方案,希望能夠幫助人們更方便的獲得更佳的旅游生活體驗。
Android是Google于2007年11月推出的一款全新的智能手機平臺,最初,Android的部署目標(biāo)是移動電話領(lǐng)域,包括智能電話和更廉價的翻蓋手機。但是,Android全面的計算服務(wù)和豐富的功能支持完全有能力擴展到移動電話市場以外。因此Android也可以用于其他的平臺和應(yīng)用程序,發(fā)展前景非常廣闊。
Android系統(tǒng)采用了分層的結(jié)構(gòu),其軟件平臺從上到下主要由4個部分組成:應(yīng)用程序?qū)?、?yīng)用程序框架層、Android運行庫層以及Linux內(nèi)核層。系統(tǒng)的最上層是應(yīng)用程序?qū)樱珹ndroid會同一系列核心應(yīng)用程序包一起發(fā)布,這些應(yīng)用程序包括E-mail客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等,與系統(tǒng)緊密相連。所有的應(yīng)用程序都是使用JAVA語言編寫,本系統(tǒng)就是建立在應(yīng)用程序框架上。
本系統(tǒng)主要采用B/S架構(gòu),以Android智能手機為手持終端,訪問景區(qū)服務(wù)器,獲得相應(yīng)導(dǎo)游信息,景區(qū)內(nèi)無線熱點主要分成通信AP與定位AP兩類,通信AP與服務(wù)器相連,定位AP則獨立存在,具有特定的ID號,供手持終端進行掃描。這樣景區(qū)內(nèi)終端便可以通過WIFI無線網(wǎng)絡(luò)連接至通信AP,實現(xiàn)與服務(wù)器之間的網(wǎng)絡(luò)通信,傳遞相應(yīng)的導(dǎo)游數(shù)據(jù)信息,游客所在位置則由各不同景點處所放定位AP所確定,如圖1所示。這種將通信AP與定位AP分開布置的方式不但有效地提高了無線局域網(wǎng)網(wǎng)絡(luò)布局的資源利用率,同時還提高了對游客定位的精確度。
圖1 系統(tǒng)框架Fig.1 System framework
圖2展示了該智能導(dǎo)游系統(tǒng)的功能流程圖,當(dāng)游客進入景區(qū),打開手機WIFI功能,連接至景區(qū)內(nèi)無線通信AP,打開Android瀏覽器,輸入景點所提供的網(wǎng)址,成功打開網(wǎng)頁后,網(wǎng)頁會提示自動加載并安裝自助導(dǎo)游瀏覽器插件,同時顯示整幅景區(qū)地圖,標(biāo)出給游客推薦的最佳游覽路線,供游客參考,頁面此時也會播報景區(qū)內(nèi)游覽時游客應(yīng)該注意的相關(guān)事項以及如何理突發(fā)狀況處等。隨后游客便可選擇是否開啟智能導(dǎo)游功能。
圖2 系統(tǒng)功能流程圖Fig.2 Flow chart of system function
若游客未選擇開啟自動導(dǎo)游功能,則當(dāng)游客每到達設(shè)有定位AP景點或區(qū)域時,頁面會自動語音提示您的所在位置,而不會進入景點介紹頁面。
若游客選擇開啟自動導(dǎo)游功能,每當(dāng)游客到達某一景點或區(qū)域附近時,頁面會自動跳轉(zhuǎn)至該景點語音加文字介紹頁面,播放相關(guān)語音及文字導(dǎo)游信息,使游客在傾聽語音介紹的同時,也能看到文字描述[3],除此之外,頁面還會有“視頻介紹”和“圖片集錦”兩個選項供游客選擇,點擊后可進入相應(yīng)的頁面提供視頻和圖片導(dǎo)游服務(wù),當(dāng)然游客也可以選擇返回查看景區(qū)地圖。
Android瀏覽器支持插件(Plug-in)。瀏覽器插件,是一種嵌入在網(wǎng)頁中的應(yīng)用程序,作為瀏覽器的擴展,向用戶提供更為豐富的網(wǎng)頁應(yīng)用。
基于Webkit內(nèi)核的Android瀏覽器,其插件接口標(biāo)準(zhǔn)是NPAPI(Netscape Plug-in API)。 NPAPI的接口分為兩組[4-5],瀏覽器側(cè)的NPN接口和插件側(cè)的NPP接口:NPN接口是瀏覽器側(cè)實現(xiàn),供插件調(diào)用的一系列功能接口;NPP接口是插件側(cè)實現(xiàn),供瀏覽器獲取信息或進行控制操作的接口。瀏覽器插件的核心,就是一個實現(xiàn)了NPP接口,并使用瀏覽器提供的NPN APIs進行對外操作的動態(tài)庫。
考慮到 Android系統(tǒng)在架構(gòu)上的特殊性,Google的工程師對Android瀏覽器的NPAPI接口作了一些修改,添加了一個Android瀏覽器插件特有的結(jié)構(gòu):插件的Java層。這樣,瀏覽器插件就可以作為一個Android應(yīng)用,通過常規(guī)途徑安裝到Android設(shè)備中。圖3描述了瀏覽器與插件之間的關(guān)系[6]。
在本系統(tǒng)中所加載的插件的功能是掃描周圍所有AP獲得其 SSID、BSSID、Level、Frequency 等參數(shù), 并將 SSID、Level這兩個重要參數(shù)傳至服務(wù)器,與數(shù)據(jù)庫中預(yù)設(shè)值進行比較,觸發(fā)相應(yīng)的頁面和數(shù)據(jù)傳輸,Android中WIFI操作所使用到的部分權(quán)限和方法類如下:
圖3 瀏覽器與插件間關(guān)系Fig.3 Relationship between plugin and browser
XML/HTML代碼:
本系統(tǒng)中采用MySQL作為后臺數(shù)據(jù)庫,MySQL是一個開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),目前被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中,其體積小、速度快、總體擁有成本低、開放源碼等特點,等到了更多的認可和推廣,圖4是本系統(tǒng)中定位AP的數(shù)據(jù)庫設(shè)計,其中在表positionap中,ap_ssid列儲存的是布置在各個不同景點或區(qū)域的定位AP所設(shè)定的SSID,ap_level列儲存的是預(yù)設(shè)的信號強度值,當(dāng)所在區(qū)域手機掃描到的定位AP的信號強度大于等于預(yù)設(shè)值時,則服務(wù)器發(fā)出相應(yīng)的網(wǎng)頁信息,提供導(dǎo)游服務(wù)。此處各定位AP信號強度的預(yù)設(shè)值并非理論值或固定不變,其數(shù)據(jù)均來自實地測試獲得的最佳閾值,同樣,若景區(qū)網(wǎng)絡(luò)布局稍有變動或設(shè)備更換,也可更改其Level預(yù)設(shè)值。
本系統(tǒng)要求在網(wǎng)頁打開后所顯示的景區(qū)地圖可以自由縮放,以便游客能夠更好的對景區(qū)內(nèi)景點位置有更清晰的了解,故需對制作的地圖實現(xiàn)簡易三級縮放的功能:
圖4 定位AP數(shù)據(jù)庫Fig.4 Database design of position AP
在游客利用手機實施智能導(dǎo)游的過程中,當(dāng)服務(wù)器檢測到游客已進入該景點區(qū)域時,需要立刻自動從服務(wù)器上發(fā)送音頻或視頻文件在網(wǎng)頁上進行播放,部分實現(xiàn)代碼如下:
文中在研究了導(dǎo)游行業(yè)需求以及其他智能導(dǎo)游系統(tǒng)的基礎(chǔ)上,提出了一套基于Android平臺的智能云導(dǎo)游系統(tǒng)解決方案。該系統(tǒng)采用B/S架構(gòu),完全依靠瀏覽器來實現(xiàn)智能導(dǎo)游功能,消除了傳統(tǒng)智能導(dǎo)游系統(tǒng)下載安裝手機軟件的復(fù)雜程序,采用通信AP與定位AP獨立布置,不但提高了無線網(wǎng)絡(luò)的布局效率,同時也增加了實際導(dǎo)游過程中的定位精度,使得該系統(tǒng)方案具有很強的實際應(yīng)用價值,值得進一步推廣。
[1]郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[2]汪永松.Android平臺開發(fā)之旅[M].北京:機械工業(yè)出版社,2010.
[3]Oliphant Z.Programming Nestscape Plug-ins[M].Net publishing:Sams,1996.
[4]張國生,高薄,姚慧敏.重視非IE用戶:用NPAPI開發(fā)跨瀏覽器的插件[J].測繪科學(xué)技術(shù)報,2007,6(24):68.ZHANG Guo-sheng,GAO Bo,YAO Hui-min.Pay attention to non-IE users:use NPAPI to develop the plug-in of cross-brower[J].Surveying and Charting for Science and Technology Journal,2007,6(24):68.
[5]汪詩林,吳泉源.WWW瀏覽器插件開發(fā)技術(shù)[J].計算機應(yīng)用研究,2000,(4):55-57.WANG Shi-lin,WU Quan-yuan.WWW browser plug-in developmenttechnology[J].ApplicationResearchofComputers,2000,(4):55-57.
[6]李增輝.Android瀏覽器應(yīng)用開發(fā)平臺的研究[D].北京:北京郵電大學(xué),2011.