• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Android平臺的即時通訊系統(tǒng)的設(shè)計與實現(xiàn)

      2016-04-25 11:42:35楊瑩
      中國科技博覽 2016年2期
      關(guān)鍵詞:Android平臺通信協(xié)議

      楊瑩

      [摘 要]本文在開源服務(wù)器軟件 Openfire 及和 Android 平臺上設(shè)計了基于XMPP 協(xié)議的即時通信系統(tǒng);實現(xiàn)了即時通訊、好友添加、圖片瀏覽、音樂播放、好友瀏覽等基本功能。所實現(xiàn)的系統(tǒng)功能完善,可為個人或企業(yè)搭建自己的即時通信系統(tǒng),用于解決內(nèi)部數(shù)據(jù)傳輸安全,實現(xiàn)了與其他通信系統(tǒng)互通等問題提出了可行性高的解決方案。

      [關(guān)鍵詞]Android平臺,XMPP 通信協(xié)議,Openfire服務(wù)器,即時通信系統(tǒng)

      中圖分類號:TP311.52 文獻標(biāo)識碼:A 文章編號:1009-914X(2016)02-0179-03

      引言

      21世紀,即時通信系統(tǒng)作為一種新興的技術(shù)獲得了突飛猛進的發(fā)展。即時通信(IM,Instant Messaging)是一種基于現(xiàn)代計算機網(wǎng)絡(luò)通信技術(shù)的能夠即時發(fā)送和接收互聯(lián)網(wǎng)消息的交互方式。用戶可以通過 Android 平臺支撐的即時通信系統(tǒng)軟件實現(xiàn)不同手機用戶之間以及手機與電腦網(wǎng)絡(luò)之間的視頻、音頻和文字等各種信息的即時交互通訊,以及移動終端之間點對點的信息交流與各種數(shù)據(jù)交換。

      這些IM 系統(tǒng)豐富了我們的生活,給普通用戶之間的低費用通訊帶來了極大方便,但同時帶來了新的技術(shù)和保密問題。XMPP 協(xié)議是開源協(xié)議,具有超強的擴展性和靈活性,也有成本低、研究和實現(xiàn)方便等優(yōu)勢,因而,對 XMPP 協(xié)議在該領(lǐng)域的研究有利于降低移動平臺IM 實現(xiàn)的難度,為有類似需求的中小型企業(yè)提供一個低成本的解決方案。為此,本文中采用XMPP協(xié)議實現(xiàn)移動平臺系統(tǒng),以滿足產(chǎn)品自身的需要。

      1 系統(tǒng)開發(fā)關(guān)鍵技術(shù)分析

      1. Android平臺架構(gòu)分析

      Android一詞的本義指“機器人”,是一個移動設(shè)備的軟件平臺。它提供包括:SDK、Key Apps、Middleware、Linux Kernel四個部分在內(nèi)的開源手機操作系統(tǒng)。它開放了基于內(nèi)核以上的開發(fā)工具,從而保證了內(nèi)容的可移植性和多樣性,為系統(tǒng)開發(fā)者開發(fā)應(yīng)用程序提供了一套很好的框架,用戶可以在這個平臺的基礎(chǔ)上開發(fā)不同的應(yīng)用程序,也可以開發(fā)新的組件供應(yīng)用程序調(diào)用。

      1.1 Android 系統(tǒng)層次結(jié)構(gòu)

      如圖1所示,Android的架構(gòu)是由:Linux內(nèi)核、/C++函數(shù)庫、Dalvik虛擬機、應(yīng)用框架以及關(guān)鍵應(yīng)用程序構(gòu)成的,通過編譯基于框架的應(yīng)用程序可以降低開發(fā)負荷應(yīng)用軟件原則上是在Dalvik VM上運行的。

      1).關(guān)鍵應(yīng)用程序

      Android平臺內(nèi)包含一些關(guān)鍵應(yīng)用程序,如:郵件收發(fā)客戶端程序、短信收發(fā)程序、日歷和網(wǎng)頁瀏覽器等。

      2)應(yīng)用程序框架

      Android應(yīng)用程序的開發(fā)基于框架和組件。Android本身己在其框架中提高了許多的組件供應(yīng)用程序調(diào)用,當(dāng)然開發(fā)者也開放新的組件,并將組件放入應(yīng)用程序框架中,以供自己和其它應(yīng)用程序調(diào)用。

      3)C/C++函數(shù)庫

      Android應(yīng)用程序框架之下是一套C/C++函數(shù)庫,它們服務(wù)于Andrei應(yīng)用程序組件,其功能通過組件間接提供給開發(fā)者。

      4)Java程序運行環(huán)境

      Android的Java程序運行環(huán)境包含一組Java核心函數(shù)庫及Dalvik虛擬機,它們有效地優(yōu)化了Java程序的運行過程。

      5)Linux內(nèi)核

      Android系統(tǒng)平臺是基于優(yōu)化了的Linux內(nèi)核,是其系統(tǒng)平臺的核心。它提供諸如內(nèi)存管理、進程管理、設(shè)備驅(qū)動等服務(wù),同時也是手機軟硬件的連接層,提供了一個屏蔽層用于屏蔽硬件和上層軟件。

      1.2 Android應(yīng)用的構(gòu)成和工作機制

      對于一個Android應(yīng)用程序來說,是由Activity、IntentReceiver、Serviee、ContentProvider四部分組成,但并不是每一個Android應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時,需要在配置文件AndroidMainfest.xd中進行配置,這個配置文件是每個Android應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件、組件的功能以及必要條件等,其中:

      1) Activity組件,主要負責(zé)創(chuàng)建與用戶進行交互的顯示窗口,用戶可以在這些窗口里通過調(diào)用SetContentView(View)方法來顯示其用戶界面;

      2) IntentReceive組件,用于對外部事件的響應(yīng),當(dāng)外部事件發(fā)生時,會使用NotifieationManager通知用戶。如在本系統(tǒng)中,當(dāng)用戶正在其它界面進行操作時,有好友發(fā)送消息過來,就會以通知的形式發(fā)送到當(dāng)前界面的正上方來通知用戶。

      3) Service組件是不帶UI提供連續(xù)信息的應(yīng)用程序。本系統(tǒng)客戶端擴展功能的音樂播放就是采用Service來進行設(shè)計和開發(fā)的,使用戶可以邊聊天邊聽音樂。

      4) ContentProvider應(yīng)用程序組件能夠?qū)⑺鼈兊臄?shù)據(jù)保存到文件、SQL數(shù)據(jù)庫和其它的存儲設(shè)備中。使用ContentProvider能夠靈活的替換底層使用的存儲設(shè)備,使開發(fā)者可以專著于應(yīng)用邏輯的開發(fā),不用考慮底層存儲設(shè)備的細節(jié),從而使應(yīng)用系統(tǒng)具有良好的數(shù)據(jù)遷移性。

      2 XMPP 協(xié)議基礎(chǔ)

      XMPP協(xié)議(Extensible Messaging and Presence Protocol,可擴展消息處理現(xiàn)場協(xié)議)是一種基于XML的協(xié)議,目的是為了解決及時通信標(biāo)準(zhǔn)而提出來的。它繼承了在XML環(huán)境中靈活的發(fā)展性,因此,基于XMPP的應(yīng)用具有超強的可擴展性。經(jīng)過擴展以后的XMPP可以通過發(fā)送擴展的信息來處理用戶的需求,以及在XMPP的頂端建立如內(nèi)容發(fā)布系統(tǒng)和基于地址的服務(wù)等應(yīng)用程序。而且,XMPP包含了針對服務(wù)器端的軟件協(xié)議,使之能與另一個進行通話,這使得開發(fā)者更容易建立客戶應(yīng)用程序或給一個配好系統(tǒng)添加功能。

      XMPP中定義了三個角色:客戶端、服務(wù)器、網(wǎng)關(guān)。通信能夠在這三者的任意兩個之間雙向發(fā)生。服務(wù)器同時承擔(dān)了客戶端信息記錄,連接管理和信息的路由功能。網(wǎng)關(guān)承擔(dān)著與異構(gòu)即時通信系統(tǒng)的互聯(lián)互通,異構(gòu)系統(tǒng)可以包括SMS(短信),MSN,ICQ等?;镜木W(wǎng)絡(luò)形式是單客戶端通過TCP/IP連接到單服務(wù)器,然后在之上傳輸XML。

      XMPP的基本網(wǎng)絡(luò)結(jié)構(gòu)如下:

      C1----S1---S2---C3

      C2----+--G1===FN1===FC1

      符號表示:C1,C2,C3=XMPP客戶端;S1,S2=XMPP;服務(wù)端G1=在XMPP和使用外部消息網(wǎng)絡(luò)(非XMPP)的協(xié)議之間轉(zhuǎn)換的網(wǎng);FN1=外部消息網(wǎng)絡(luò);FC1=外部消息網(wǎng)絡(luò)的客戶端。

      1)服務(wù)器

      服務(wù)系統(tǒng)是XMPP通信的智能提取層,它主要負責(zé):管理來自其他個體的會話連接或者XML流(streams)和來自客戶端、服務(wù)器、其他個體的認證發(fā)送在XML流實體之中的適當(dāng)?shù)腦ML地址節(jié)點。

      2)客戶端

      大多數(shù)客戶端是通過TCP直接連接,并且使用XMPP獲得服務(wù)器提供全部Jabber協(xié)議原理及其應(yīng)用功能和其他服務(wù)。

      3)網(wǎng)關(guān)

      它的主要功能是將XMPP協(xié)議轉(zhuǎn)換成外部消息(non-XMPP)系統(tǒng)使用的協(xié)議,也將返回的數(shù)據(jù)轉(zhuǎn)換成XMPP。這些通信是基于網(wǎng)關(guān)和服務(wù)器,基于網(wǎng)關(guān)和外部消息系統(tǒng)之間的。

      3 基于Android平臺的即時通訊系統(tǒng)

      本系統(tǒng)采用C/S體系結(jié)構(gòu)〕,采用開源的XMPP作為即時通訊協(xié)議,通過GPRS無線網(wǎng)絡(luò)采用TCP協(xié)議連接到服務(wù)器,通過架設(shè)開源的Openfire服務(wù)器作為即時通訊平臺,實現(xiàn)客戶端與客戶端之間的即時通訊。

      3.1 系統(tǒng)概述

      本文是在Android平臺上開發(fā)即時手機通訊系,它能夠使用戶在手機上方便的、迅捷的收發(fā)及時消息、傳輸圖片。此外,根據(jù)現(xiàn)今用戶對于即時通訊軟件的特殊要求,比如:在聊天的基礎(chǔ)之上還要有一些增值服務(wù)功能,以滿足不同用戶的需求。根據(jù)這些特點,本系統(tǒng)除了即時文本消息和圖片的傳輸外,還實現(xiàn)了音樂播放和圖片瀏覽的功能,讓用戶可以邊聊天邊聽音樂,可以對好友傳送過來的圖片隨時進行瀏覽,從而實現(xiàn)即時通訊系統(tǒng)的功能多樣化。

      3.2 系統(tǒng)架構(gòu)

      如圖3所示,本系統(tǒng)采用客戶端(C)/ 服務(wù)端(S)架構(gòu)的體系結(jié)構(gòu),具有服務(wù)器端和客戶端。

      服務(wù)器端:采用基于XMPP協(xié)議的實時協(xié)作IM跨平臺服務(wù)器---開源的Openfire服務(wù)器,為提供客戶端進行會話連接、消息轉(zhuǎn)發(fā)、認證及后臺管理功能。

      客戶端:用戶間的通訊是通過服務(wù)器的轉(zhuǎn)發(fā)來實現(xiàn)的,將信息打包成XML文件發(fā)送給服務(wù)器,然后服務(wù)器將其轉(zhuǎn)發(fā)給相應(yīng)的用戶。在Asmack庫的支持下,XMPP的客戶端的登錄,認證,消息收發(fā)等基本功能需要重寫相應(yīng)函數(shù),并調(diào)用相應(yīng)接口來實現(xiàn)。

      客戶端采用MVC的軟件結(jié)構(gòu)。采用Android的XML文件對界面進行描述,作為視圖層,負責(zé)前臺界面的顯示;Android的Activity活動類承載了控制層的任務(wù),通過Activity進行邏輯業(yè)務(wù)處理;而對于數(shù)據(jù)庫和與服務(wù)器連接的操作則屬于Model層,該層在具體設(shè)計上則依賴于自定義的服務(wù)類。

      4 本即時通訊系統(tǒng)的具體設(shè)計與實現(xiàn)

      4.1 本系統(tǒng)主要界面

      本系統(tǒng)為客戶端/服務(wù)器端的系統(tǒng)架構(gòu),服務(wù)器端由基于Jabber技術(shù)的開源服務(wù)器Openfire和MySQL數(shù)據(jù)庫共同構(gòu)成。其中,Openfire服務(wù)器負責(zé)處理所有用戶的請求、訪問數(shù)據(jù)庫和消息的傳遞;而客戶端是基于Andrnid平臺開發(fā)的,負責(zé)連接并登錄服務(wù)器,通過服務(wù)器來實現(xiàn)客戶端與客戶端或PC機客戶端之間的即時通訊。

      1.Openfire服務(wù)器管理界面

      如圖4所示,通過該管理界面,管理員可以方面的管理用戶的會話連接,服務(wù)器安全設(shè)置,以及用戶信息等。

      2)用戶注冊登錄界面。

      輸入用戶名密碼后點擊登錄,客戶端向服務(wù)器端發(fā)起login請求,登錄成功后,客戶端會將自己的Presence的狀態(tài)置為available并發(fā)送給服務(wù)器,表示當(dāng)前用戶在線。不當(dāng)對于登錄成功的用戶具有:瀏覽好友、圖片瀏覽、音樂播放及添加好友等功能模塊。

      3)圖片瀏覽功能:在本模塊中,合法用戶不僅可以實現(xiàn)本地圖片的瀏覽功能,而且對于選中的圖片還可以實現(xiàn)圖片的自動縮放功能,以便于用戶更好地閱讀圖片。

      4)音樂播放界面:音頻主界面主要是通過一個XML布局文件實現(xiàn)的,我們把它命名為music.xml,這里采用相對布局和線性布局相結(jié)合的方法。

      5)即時通訊模塊

      如圖5所示,本系統(tǒng)即時通訊模塊集成了與好友之間的各種通訊方式,有普通的文本通訊、文件傳輸、留言錄音通訊、語音通話功能。

      4.2 文件傳輸模塊的具體實現(xiàn)

      在本系統(tǒng)功能實現(xiàn)過程中涉及到的文件傳輸分為:發(fā)送端和接收端。發(fā)送端主要通過sendFile()進行文件的發(fā)送,兩個參數(shù)分別為path和msg,path代表文件路徑,而msg代表伴隨文件傳輸?shù)钠胀ㄎ谋拘畔?。Msg中包含著文件名、文件路徑等信息。然后創(chuàng)建FileTransferManager,并創(chuàng)建一個輸出文件TransFer,調(diào)用其sendFile方法將文件發(fā)送出去,同時啟動新線程用來對文件發(fā)送狀態(tài)進行更新。

      文件接收端也是需要創(chuàng)建FileTransferManager,然后通過addFileTransferListener方法設(shè)置文件監(jiān)聽,當(dāng)有文件傳輸時,而且同意接收后,則通過IncomingFileTransfer來接收文件,并存入默認的目錄中去。

      5 結(jié)論

      本即時通訊系統(tǒng)主要來用C/S的軟件架構(gòu),并釆用XMPP協(xié)議作為即時通訊基本功能的通信協(xié)議,服務(wù)器端采用開源的Openfire服務(wù)器,客戶端釆用了基于Android的開發(fā)平臺。除了即時文本信息的傳輸外,還可以進行圖片的傳輸,將IDEA數(shù)據(jù)加密算法引入系統(tǒng)中,對系統(tǒng)的通訊信息進行加密處理,保證通訊數(shù)據(jù)的安全,并對系統(tǒng)客戶端的功能進行了擴展,增加了音樂的播放和圖片瀏覽的功能。

      參考文獻

      [1] 李新路.XMPP協(xié)議在Android即時通訊系統(tǒng)中的應(yīng)用[J].電腦知識與技術(shù),2013,(28)

      [2] 羅偉.基于Android平臺的即時通訊系統(tǒng)的研究與實現(xiàn)[D].湖南師范大學(xué),2009

      [3] 黃偉敏.基于XMPP協(xié)議的Android即時通信系統(tǒng)設(shè)計[J]電子設(shè)計工@,2011,19(8)

      [4] 陳航,趙方.基于服務(wù)器推送技術(shù)和XMPP的Web IM系統(tǒng)實現(xiàn)[J].計算機工程與設(shè),2010,31(5)

      [5] Matos V, Grasser R. Building applications for the Android OS mobile platform: a primer and course materials[J]. Journal of Computing Sciences in Colleges, 2010, 26(1): 23-29.

      [6] 羅偉. 基于 Android 平臺的即時通訊系統(tǒng)的研究與實現(xiàn) [D][D]. 長沙: 湖南師范大學(xué), 2009.

      [7] 孟賀. 基于 Android 的即時通訊系統(tǒng)的設(shè)計與實現(xiàn)[D]. 山東大學(xué), 2014.

      猜你喜歡
      Android平臺通信協(xié)議
      DCS本地總線通信協(xié)議與FFH1設(shè)備互操作技術(shù)研究與實現(xiàn)
      電子計算機聯(lián)鎖系統(tǒng)通信協(xié)議設(shè)計和應(yīng)用
      電子測試(2018年11期)2018-06-26 05:56:26
      基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計
      基于Android平臺軟件開發(fā)技術(shù)研究
      科技資訊(2016年25期)2016-12-27 18:46:40
      基于Android平臺的人臉識別系統(tǒng)設(shè)計與實現(xiàn)
      基于Android平臺的健康醫(yī)療APP設(shè)計與開發(fā)
      Android手機主題設(shè)計 
      基于Android的Python語言英漢維電子詞典設(shè)計與實現(xiàn)
      Android平臺下的空氣質(zhì)量和天氣情況查詢應(yīng)用設(shè)計與實現(xiàn)
      基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計與研究
      册亨县| 东至县| 济南市| 右玉县| 元阳县| 襄汾县| 桐乡市| 汕尾市| 西青区| 卢龙县| 河西区| 囊谦县| 永兴县| 古蔺县| 赤壁市| 凤凰县| 信阳市| 莒南县| 常熟市| 梅河口市| 苏尼特右旗| 望奎县| 博野县| 敦煌市| 凤冈县| 建阳市| 乌鲁木齐县| 镇康县| 双牌县| 宜昌市| 灌南县| 岐山县| 内江市| 辽阳县| 资源县| 永和县| 电白县| 满城县| 南通市| 杭州市| 大渡口区|