文獻標識碼: A
文章編號: 0258-7998(2013)09-0139-03
當前移動設(shè)備上的傳統(tǒng)即時通信軟件(如QQ、MSN等)是基于TCP協(xié)議的即時通信軟件,已難以滿足個性化的社交需求。隨著GPS(Global Position System)系統(tǒng)的普及和移動互聯(lián)網(wǎng)的高速發(fā)展,基于地理位置的服務(wù)LBS(Location Based Service)式社交成為研究智能手機應(yīng)用的熱點。LBS是指移動網(wǎng)絡(luò)通過GPS技術(shù)和電子地圖平臺的支持來獲取移動終端用戶的位置信息,為終端用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù)[1]。參考文獻[2]研究了匿名LBS的使用,參考文獻[3]討論了LBS應(yīng)用的安全技術(shù),參考文獻[4]提出一種基于Web 服務(wù)技術(shù)構(gòu)建LBS 的體系結(jié)構(gòu)。但是目前國內(nèi)LBS僅在移動互聯(lián)網(wǎng)、社交網(wǎng)絡(luò)和電子商務(wù)的單獨應(yīng)用較多,因此研究這三者的結(jié)合,是目前IT技術(shù)科研應(yīng)用的重要領(lǐng)域,同時也將帶來巨大的經(jīng)濟和社會效益。LBS移動社交資源共享SMSRL(Sharing Mobile Sociality Resource Based on LBS)平臺正是利用上述技術(shù),完成一些即時性的實際社交活動,使單純的網(wǎng)絡(luò)信息交互,變成立體化的人際式交互。
1 SMSRL平臺概述
SMSRL平臺是Android手機上開發(fā)一個LBS交友應(yīng)用程序,其功能促進了用戶的社交發(fā)展。該平臺利用Android的GPS定位數(shù)據(jù),結(jié)合百度地圖開放API與極光推送API,使移動用戶之間,特別是附近的用戶之間實現(xiàn)更有價值的社交活動,如幫助完成某些任務(wù)、與附近的好友聊天等。
SMSRL平臺的開發(fā)嚴格遵循軟件工程的原則,開發(fā)分為如下步驟:
(1) 需求分析; (2)設(shè)計客戶端UI;(3)設(shè)計數(shù)據(jù)存儲,創(chuàng)建數(shù)據(jù)庫和表; (4)設(shè)計服務(wù)器端與客戶端交互;(5)實現(xiàn)客戶端功能界面與服務(wù)器端的邏輯處理; (6)客戶端程序打包、簽名并發(fā)布。
2 SMSRL平臺需求分析
SMSRL平臺通過手機定位技術(shù),認識了身邊的有緣人,可與熟悉的或陌生的朋友打招呼、聊天、分享位置等信息。SMSRL的功能結(jié)構(gòu)圖如圖1所示,主要功能包括:任務(wù)管理(包括發(fā)布任務(wù)、我的任務(wù)管理、附近任務(wù)列表等)、好友的管理(包括顯示好友和自己的最新動態(tài)信息、查找附近好友、聊天)及對系統(tǒng)、任務(wù)的設(shè)置。
SMSRL的主要參與者包括發(fā)布者和搜索者,涉及的主要用例有:發(fā)布任務(wù)、狀態(tài)管理、搜索任務(wù)、任務(wù)競標等,系統(tǒng)用例圖如圖2所示。
3 SMSRL平臺設(shè)計
3.1 架構(gòu)設(shè)計
Andriod是目前流行的智能手機終端操作系統(tǒng)和移動應(yīng)用開發(fā)平臺,由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是一個開放而完整的移動“軟件棧”[5]。SMSRL平臺的設(shè)計借鑒了參考文獻[6-9],其設(shè)計思路是:利用Android平臺的GPS定位模塊提供位置信息,利用極光推送API實現(xiàn)消息推送,調(diào)用百度地圖API實現(xiàn)地圖描繪,利用Android應(yīng)用程序框架實現(xiàn)網(wǎng)絡(luò)通信的功能。客戶端點擊界面產(chǎn)生觸屏事件,發(fā)送請求給監(jiān)聽Service服務(wù)類,Service處理請求后調(diào)用HTTPClien組裝請求URL,發(fā)送并異步接收數(shù)據(jù)刷新界面。服務(wù)器端Strust2框架接收到URL請求調(diào)用對應(yīng)Action處理數(shù)據(jù),Action再調(diào)用Hibernate做數(shù)據(jù)持久化,按照請求調(diào)用推送框架,組裝推送消息,實現(xiàn)實體類推送。
3.2 SMSRL平臺數(shù)據(jù)庫設(shè)計
SMSRL平臺涉及的實體主要有用戶、活動、好友和任務(wù),這些實體關(guān)聯(lián)又產(chǎn)生了活動參與表、用戶參與表、在線用戶列表等。同時為了提高存取速度,將用戶、活動、好友和任務(wù)實體的相關(guān)圖片存放到相應(yīng)的圖片表中。服務(wù)器端數(shù)據(jù)庫模型如圖3所示。
3.3 MSRL平臺的關(guān)鍵技術(shù)
3.3.1 服務(wù)器端與客戶端交互協(xié)議設(shè)計
Android客戶端的聯(lián)網(wǎng)協(xié)議采用Http的方式,而由于Android 內(nèi)部已經(jīng)集成了Apache Http這個類,所以本設(shè)計采用了HttpClient的方式做Http連接。自定義HttpClient類內(nèi)部采用單例模式獲取HttpClient對象,發(fā)起Post請求。而每一種消息經(jīng)處理后返回Json格式字符串,并且將其實例化為對應(yīng)的消息體對象,Entity為統(tǒng)一的消息接口,將請求返回的輸入流傳進,返回以UTF-8編碼的Sring類型對象。獲得返回值之后,在MyService作處理,并通過Android的Handle方式異步刷新UI作出反應(yīng)。
3.3.2 異步加載最新信息的設(shè)計
由于Android自帶的Listview顯示風格單調(diào),而且不具備下拉刷新與上推加載的功能,本平臺設(shè)計并實現(xiàn)了比較常用的下拉刷新異步加載圖片的ListView控件。在列表顯示界面中,可以按住列表項向下拖動加載最新消息,在列表最后的一項,通過向上拖動或者點擊加載更多消息,并伴隨加載動畫。設(shè)計的XListView控件繼承了Android平臺的ListView,其相應(yīng)的類圖如圖4所示。
3.3.3 圖像加載功能的實現(xiàn)
(1) 圖片獲取
由于Android的文件存儲于網(wǎng)絡(luò),因而使用異步加載的方式來顯示控件可以給用戶帶來更好的體驗。在Android應(yīng)用中,如果UI線程5 s內(nèi)沒響應(yīng),就會拋出無響應(yīng)異常,在遠程獲取較大圖片資源時,這種異常很容易導(dǎo)致應(yīng)用失敗。要避免這種問題的產(chǎn)生,將啟動一個新的線程來獲取資源,完成后通過Handler機制發(fā)送消息,并在UI線程中處理消息,從而達到在異步線程中獲取圖片的效果。
(2) 圖片保存
在每次獲取圖片資源時,都要重新進行遠程下載,占用內(nèi)存太多,而且加載速度慢,特別是較大的圖片資源,甚至會導(dǎo)致內(nèi)存溢出。為了提高加載速度、節(jié)省流量,將圖片資源保存在本地手機的SDCard上,需要時可直接從SDCard讀取。SDCard空間畢竟有限,因此采用最近最久未使用(LRU)算法,當空間不足時,根據(jù)LRU規(guī)則刪除一些最近沒有被用戶使用的資源即可。
利用Android通用框架,結(jié)合百度地圖與極光推送的開放API,實現(xiàn)了LBS社交資源共享平臺。在系統(tǒng)的設(shè)計中充分考慮了Android系統(tǒng)的易移植性、高銷量等優(yōu)點,集中使用了Android系統(tǒng)的各接口API模塊,特別是異步加載最新信息和圖片資源下載的設(shè)計和實現(xiàn),使系統(tǒng)的運行效率有了較大的提升。該平臺的廣泛應(yīng)用,徹底加強了社交網(wǎng)絡(luò)的真實影響。
參考文獻
[1] 李海燕, 張巖. 移動通信網(wǎng)絡(luò)的移動臺定位技術(shù)及應(yīng)用[J].郵電設(shè)計技術(shù),2006(3):27-34.
[2] MARCP G, DIRK G. Anonymous usage of location-based services through spatial and temporal cloaking[C]. International Conference on Mobile Systems, Applications, and Services-MobiSys,2003.
[3] Yang Jie, Chen Yingying, SANJAY M, et al. Securing mobile location-based services through position verification leveraging key distribution[C].Wireless Communications and Networking, IEEE Conference-WCNC, 2012.
[4] 周腳根,邊馥苓.一種基于位置的移動服務(wù)系統(tǒng)的設(shè)計與實現(xiàn)[J].武漢大學學報(信息科學版), 2006,31(4):352-355.
[5] 姚昱曼,劉衛(wèi)國.Andriod的架構(gòu)與應(yīng)用開發(fā)研究[J].計算機系統(tǒng)應(yīng)用,2008(11):110-112.
[6] 張志清.基于Android的移動社交產(chǎn)品客戶端設(shè)計與實現(xiàn)[D].北京:北京交通大學,2012.
[7] 劉卜.移動社交網(wǎng)絡(luò)平臺的研究與實現(xiàn)[D]. 北京: 北京郵電大學,2011.
[8] 許穎,魏峰遠.移動GIS關(guān)鍵技術(shù)及開發(fā)模式探討[J]. 測繪與空間地理信息,2008,31(4):45-47.
[9] 羅英偉,黃寶琦,汪小林,等.輕量級WebGIS系統(tǒng)PKGML[J].計算機輔助設(shè)計與圖形學學報,2005,17(04):852-861.