1 Android平臺簡介
Android是Google公司於2007年11月5日推出的手機操做系統,通過2年多的發展,Android平臺在智能移動領域佔有不小的份額,由Google爲首的40多家移動通訊領域的領軍企業組成開放手機聯盟(OHA)。Google與運營商、設備製造商、開發商和其餘第三方結成深層次的合做夥伴關係,但願經過創建標準化、開放式的移動電話軟件平臺,在移動產業內造成一個開放式的生態系統。正因如此,Android正在被愈來愈多的開發者和使用者所接受。近日,Google發言人AnthONy House稱,截止到2010年4月15 Lt,An droid Market已經有3.8萬多個應用程序。
2 Android平臺特性與即時通信的研究
Android平臺框架共由5部分組成。底層核心是基於Linux 2.6內核開發的獨立操做系統,該層用來提供系統的底層服務,包括安全機制、內存管理、進程管理、網絡堆棧及一系列的驅動模塊。中間是Android執行環境,包括系統運行庫、Dalvik虛擬機、核心庫和一些C/C++庫等支持Android使用的各個組件。應用層框架是開發人員使用這些API框架來開發本身的應用,簡化了應用程序開發的架構設計。應用層程序是用Java語言編寫的運行在虛擬機上的程序 。整個Android平臺框架如圖1所示。
基於Android平臺簡易即時通信的研究與設計 - 1340234852 - 1340234852的博客
即時通信(IM)是一個終端連往一個即時通信網路的服務。即時通信與e-mail的不一樣在於它的交談是即時的。大部分的即時通信服務提供了在線提醒的特性——顯示聯絡人名單,聯絡人是否在線,可否與聯絡人交談等。近幾年即時通信發展特別迅速,即時通信的功能日益豐富,由PC客戶端發展到移動客戶端,逐漸發展成一個綜合化信息平臺,國內市場上知名的即時通信工具備騰訊QQ,新浪UC,中國移動飛信等,但這些產品都有着很嚴重的安全威脅,如ID被盜、隱私威脅、病毒威脅等。爲了減少這些威脅,能夠在企業內部開發本身的即時通信軟件,減小爲未知用戶帶來的威脅。
3 簡易即時通信功能及設計
3.1 簡易通信的功能
本設計實現了在Android平臺上開發即時手機通信系統,它可以使用戶在手機客戶端上登陸服務器,方便、迅捷地收發即時消息。隨着研究的深刻,能夠在該系統上實現圖片的傳輸和接收,以及其餘一些功能,這樣可使該系統功能更加多樣化。
3.2 簡易通信系統框架介紹
通信系統架構採用C/S模式,即客戶端/服務器的體系結構。客戶端是基於Android平臺進行開發,經過3G 網絡與Internet創建鏈接,經過服務器實現Android客戶端之間的即時通信。客戶端負責初始化通訊過程,進行即時通信時,由客戶端負責向服務器端發起鏈接請求。服務器端採用開源的Openfire 做爲服務器,容許多個客戶端同時登陸,而且同時鏈接到一個服務器上。服務器對每一個客戶端進行認證,對認證經過的客戶端建立會話,實現客戶端與客戶端之間的通信。
3.3 客戶端的解決方案
系統的客戶端定位於Android平臺的手機,採用SIMPLE 協議做爲即時通信協議,SIMPLE(SIP for InSTant Messaging and Presence Levera—ging Extensions)是SIP(Session Initiation Proto—co1)的擴展,它爲SIP協議制定了一整套的架構和擴展方面的規範,用於支持IM。SIMPLE經過SIP來傳遞狀態信息和實現分佈的信息表示。根據協議規則,採用Android平臺提供的XML解析包對XML進行解析。根據Activity模塊運行於主線程的特色,採用多線程 技術來解決系統通訊問題。系統的用戶信息和聊天信息存儲在An—droid平臺自身所帶的SQLite數據庫中。客戶端功能模塊如圖2所示。
基於Android平臺簡易即時通信的研究與設計 - 1340234852 - 1340234852的博客
3.4 服務器端解決方案
系統服務器端採用開源的Openfire來創建即時通訊服務器。Openfire採用Java語言進行開發,Java語言具備跨平臺的特色,所以Openfire服務器能夠架設於多種操做系統平臺上。Openfire服務器的內核主要由服務器鏈接管理組件、會話管理組件、數據存儲組件和傳輸器組件等組成。
Openfire實現了插件機制,方便擴展,經過安裝與異構網絡通信的插件,便能與其餘的通信軟件實現通信。在網絡鏈接中採用Apache的Mina框架來實現網絡鏈接,Mina框架使用非阻塞式的高性能I/O底層,採用異步I/O事件和事件驅動機制,使服務器具備很高的效率和性能,從而可以及時處理大量的客戶端鏈接事件和VO 隨機事件,單臺服務器可支持上萬個併發用戶。服務器與客戶端的鏈接示意圖如圖3所示。
基於Android平臺簡易即時通信的研究與設計 - 1340234852 - 1340234852的博客
3.5 通訊系統結構
隨着移動通訊與Internet的飛速發展及其相互融合,3G無線網絡使無線網絡高速接入Inter—net成爲現實,從而移動客戶端能夠接入到Inter—net的服務。系統客戶終端經過3G無線網絡採用TCP協議鏈接到服務器,經過SIMPLE即時通信協議進行及時通信。
在移動網絡中,移動終端接人到3G無線網絡。
網關移動交換中心GMSC(Gateway Mobile Swim—hing Center)爲用戶提供分組路由、隧道和跟蹤移動終端的位置等功能。UMTS(Universal Mobile Tele—communications System)提供3G網絡內部與外部網絡的路由和封裝,分配TP地址,實現與Intemet網絡的互通。通訊系統結構示意圖如圖4所示。
基於Android平臺簡易即時通信的研究與設計 - 1340234852 - 1340234852的博客
3.6 系統工做流程
服務器對用戶輸入的用戶名和密碼進行身份驗證,驗證成功後,客戶端從服務器端讀取客戶端的我的信息,並更新好友列表和羣組信息,服務器端響應客戶端的各類請求,客戶端可發送接收信息,通信完畢退出系統登陸狀態。這樣,一個簡易即時通信系統便實現了。圖5是認證流程示意圖。客戶端軟件使用Java和XML語言在eclipse集成開發環境中開發,基於Andriod 1.5模擬器開發的用戶登陸界面如圖6所示。
基於Android平臺簡易即時通信的研究與設計 - 1340234852 - 1340234852的博客
基於Android平臺簡易即時通信的研究與設計 - 1340234852 - 1340234852的博客
4 結語
該設計主要討論了基於Android平臺的簡易即時通信系統,研究了在開源服務器Openfire上各個移動客戶端和服務器之間的通訊系統結構,實現了客戶端功能。隨着研究的進一步深刻,基於An .droid的通信系統會逐漸完善,相信基於Android平臺的即時通訊系統會有着很好的應用前景。
數據庫