基於Android 平臺簡易即時通訊的研究與設計

摘要:論文簡單介紹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 簡易通訊的功能


本設計實現了在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 所示。

 

 圖2

 3.4 服務器端解決方案


系統服務器端採用開源的Openfire 來建立即時通信服務器。Openfire 採用Java 語言進行開發,Java 語言具有跨平臺的特點,因此Openfire 服務器可以架設於多種操作系統平臺上。Openfire服務器的內核主要由服務器連接管理組件、會話
管理組件、數據存儲組件和傳輸器組件等組成。Openfire 實現了插件機制,方便擴展,通過安裝與異構網絡通訊的插件,便能與其他的通訊軟件實現通訊。

 

在網絡連接中採用Apache 的Mina 框架來實現網絡連接,Mina 框架使用非阻塞式的高性能I /O 底層,採用異步I /O 事件和事件驅動機制,使服務器具有很高的效率和性能,從而能夠及時處理大量的客戶端連接事件和I /O 隨機事件,單臺服務器可支持上萬個併發用戶。服務器與客戶端的連接示意圖如圖3 所示。

 圖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 所示。

 圖4

 

 3.6 系統工作流程


服務器對用戶輸入的用戶名和密碼進行身份驗證,驗證成功後,客戶端從服務器端讀取客戶端的個人信息,並更新好友列表和羣組信息,服務器端響應客戶端的各種請求,客戶端可發送接收信息,通訊完畢退出系統登錄狀態。這樣,一個簡易即時通訊系統便實現了。在這裏順便提下如果要求做到音視頻通訊的話可以借鑑佰銳公司的AnyChat SDK產品。當然只是個人學習的話可以先從文字通訊開始。

 

圖5 是認證流程示意圖。

圖5

 

客戶端軟件使用Java 和XML 語言在eclipse集成開發環境中開發,基於Andriod 1.5 模擬器開發的用戶登錄界面如圖6 所示。

 圖6

 

 4 結語
該設計主要討論了基於Android 平臺的簡易即時通訊系統,研究了在開源服務器Openfire 上各個移動客戶端和服務器之間的通信系統結構,實現了客戶端功能。隨着研究的進一步深入,基於Android的通訊系統會逐漸完善,相信基於Android 平臺的即時通信系統會有着很好的應用前景

發佈了23 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章