摘要:論文簡單介紹Android 平臺的特性,主要闡述了基於Android 平臺簡易即時通信(IM)的
做用和功能以及實現方法。(複雜的通信如引入視頻音頻等能夠考慮AnyChat SDK~)
關鍵詞:Android 平臺;即時通信數據庫
(本文中圖表點擊附件便可見)安全
1 Android 平臺簡介
Android 是Google 公司於2007年11月5日推出的手機操做系統,通過2年多的發展,Android平臺在智能移動領域佔有不小的份額,由Google爲首的40 多家移動通訊領域的領軍企業組成開放手機聯盟(OHA)。Google 與運營商、設備製造商、開發商和其餘第三方結成深層次的合做夥伴關係,但願經過創建標準化、開放式的移動電話軟件平臺,在移動產業內造成一個開放式的生態系統。正因如此,Android 正在被愈來愈多的開發者和使用者所接受。近日,Google 發言人Anthony House稱,截止到2010 年4 月15 日,Android Market 已經有3.8 萬多個應用程序。
服務器
2 Android 平臺特性與即時通信的研究網絡
Android 平臺框架共由5 部分組成。底層核心是基於Linux 2.6內核開發的獨立操做系統,該層用來提供系統的底層服務,包括安全機制、內存管理、進程管理、網絡堆棧及一系列的驅動模塊。中間是Android 執行環境,包括系統運行庫、Dalvik 虛擬機、核心庫和一些C /C ++庫等支持Android 使用的各個組件。應用層框架是開發人員使用這些API 框架來開發本身的應用,簡化了應用程序開發的架構設計。應用層程序是用Java語言編寫的運行在虛擬機上的程序[1] 。整個An- droid 平臺框架如圖1 所示。多線程
即時通信(IM)是一個終端連往一個即時通信網路的服務。即時通信與e-mail 的不一樣在於它的交談是即時的。大部分的即時通信服務提供了在線提醒的特性──顯示聯絡人名單,聯絡人是否在線,可否與聯絡人交談等。近幾年即時通信發展特
別迅速,即時通信的功能日益豐富,由PC 客戶端發展到移動客戶端,逐漸發展成一個綜合化信息平臺,國內市場上知名的即時通信工具備騰訊QQ,新浪UC,中國移動飛信等,但這些產品都有着很嚴重的安全威脅,如ID 被盜、隱私威脅、病毒威脅等。架構
爲了減少這些威脅,能夠在企業內部開發本身的即時通信軟件,減小爲未知用戶帶來的威脅。併發
3 簡易即時通信功能及設計框架
3.1 簡易通信的功能eclipse
本設計實現了在Android 平臺上開發即時手機通信系統,它可以使用戶在手機客戶端上登陸服務器,方便、迅捷地收發即時消息。隨着研究的深刻,能夠在該系統上實現圖片的傳輸和接收,以及其餘一些功能,這樣可使該系統功能更加多樣化。異步
3.2 簡易通信系統框架介紹
通信系統架構採用C /S 模式,即客戶端/服務器的體系結構。客戶端是基於Android 平臺進行開發,經過3G 網絡與Internet 創建鏈接,經過服務器實現Android 客戶端之間的即時通信。
客戶端負責初始化通訊過程,進行即時通信時,由客戶端負責向服務器端發起鏈接請求。服務器端採用開源的Openfire[2] 做爲服務器,容許多個客戶端同時登陸,而且同時鏈接到一個服務器上。服務器對每一個客戶端進行認證,對認證經過的客戶端建立會話,實現客戶端與客戶端之間的通信。
3.3 客戶端的解決方案
系統的客戶端定位於Android 平臺的手機,採用SIMPLE[3] 協議做爲即時通信協議,SIMPLE(SIP for Instant Messaging and Presence LeveragingExtensions) 是SIP (Session Initiation Protocol)的擴展,它爲SIP 協議制定了一整套的架構和擴展方面的規範,用於支持IM。SIMPLE 經過SIP 來傳遞狀態信息和實現分佈的信息表示
。根據協議規則,採用Android 平臺提供的XML 解析包對XML 進行解析。根據Activity 模塊運行於主線程的特色,採用多線程[4] 技術來解決系統通訊問題。系統的用戶信息和聊天信息存儲在Android平臺自身所帶的SQLite 數據庫中。客戶端功能模塊如圖2 所示。
3.4 服務器端解決方案
系統服務器端採用開源的Openfire 來創建即時通訊服務器。Openfire 採用Java 語言進行開發,Java 語言具備跨平臺的特色,所以Openfire 服務器能夠架設於多種操做系統平臺上。Openfire服務器的內核主要由服務器鏈接管理組件、會話
管理組件、數據存儲組件和傳輸器組件等組成。Openfire 實現了插件機制,方便擴展,經過安裝與異構網絡通信的插件,便能與其餘的通信軟件實現通信。
在網絡鏈接中採用Apache 的Mina 框架來實現網絡鏈接,Mina 框架使用非阻塞式的高性能I /O 底層,採用異步I /O 事件和事件驅動機制,使服務器具備很高的效率和性能,從而可以及時處理大量的客戶端鏈接事件和I /O 隨機事件,單臺服務器可支持上萬個併發用戶。服務器與客戶端的鏈接示意圖如圖3 所示。
3.5 通訊系統結構
隨着移動通訊與Internet 的飛速發展及其相互融合,3G 無線網絡使無線網絡高速接入Internet成爲現實,從而移動客戶端能夠接入到Inter- net 的服務。系統客戶終端經過3G 無線網絡採用TCP 協議鏈接到服務器,經過SIMPLE 即時通
訊協議進行及時通信。[5]
在移動網絡中,移動終端接入到3G 無線網絡。
網關移動交換中心GMSC(Gateway Mobile Switc- hing Center)爲用戶提供分組路由、隧道和跟蹤移動終端的位置等功能。UMTS(Universal Mobile TelecommunicationsSystem)提供3G 網絡內部與外部網絡的路由和封裝,分配IP 地址,實現與Internet 網絡的互通。通訊系統結構示意圖如圖4 所示。
3.6 系統工做流程
服務器對用戶輸入的用戶名和密碼進行身份驗證,驗證成功後,客戶端從服務器端讀取客戶端的我的信息,並更新好友列表和羣組信息,服務器端響應客戶端的各類請求,客戶端可發送接收信息,通信完畢退出系統登陸狀態。這樣,一個簡易即時通信系統便實現了。在這裏順便提下若是要求作到音視頻通信的話能夠借鑑佰銳公司的AnyChat SDK產品。固然只是我的學習的話能夠先從文字通信開始。
圖5 是認證流程示意圖。
客戶端軟件使用Java 和XML 語言在eclipse集成開發環境中開發,基於Andriod 1.5 模擬器開發的用戶登陸界面如圖6 所示。
4 結語
該設計主要討論了基於Android 平臺的簡易即時通信系統,研究了在開源服務器Openfire 上各個移動客戶端和服務器之間的通訊系統結構,實現了客戶端功能。隨着研究的進一步深刻,基於Android的通信系統會逐漸完善,相信基於Android 平臺的即時通訊系統會有着很好的應用前景。
[參考文獻][1]餘志龍,陳昱勳,鄭名傑,等.Google Android SDK 開發範例大全[M].北京:人民郵電出版社,2009.[2]張雲川.標準化的即時通訊協議———SIMPlE 和XMPP 的對比研究[J].武漢科技大學學報: 天然科學版,2005,28(4):375-377.[3]張海燕.Java 多線程技術在手機互聯網中的應用[J].農業網絡信息,2008(3):97 -98.[4]姚昱旻,劉衛國.Android 的架構與應用開發研究[J].計算機系統應用,2008(11):110 -113.[5]張利國,代聞,龔海平.Android 移動開發案例詳解[M].北京:人民郵電出版社,2010.