<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Android平臺的即時通信系統(tǒng)客戶端設(shè)計(jì)

          基于Android平臺的即時通信系統(tǒng)客戶端設(shè)計(jì)

          作者: 時間:2015-03-11 來源:網(wǎng)絡(luò) 收藏

            2. 4 實(shí)現(xiàn)主要功能

          本文引用地址:http://www.ex-cimer.com/article/270827.htm

            系統(tǒng)客戶端主要實(shí)現(xiàn)以下功能:

            ( 1) 注冊用戶: 填寫相關(guān)的個人信息進(jìn)行注冊, 向服務(wù)器提交后服務(wù)器返回相應(yīng)的信息;

            ( 2) 系統(tǒng)設(shè)置: 對系統(tǒng)的一些選項(xiàng)進(jìn)行相應(yīng)的設(shè)置;

            ( 3) 用戶設(shè)置: 對用戶基本信息和一些Jabber 選項(xiàng)進(jìn)行設(shè)置;

            ( 4) 登錄和注銷: 選擇相應(yīng)的服務(wù), 輸入用戶名和密碼, 登錄系統(tǒng), 或注銷用戶, 退出本系統(tǒng);

            ( 5) 分組管理: 可以創(chuàng)建新的分組, 對分組信息進(jìn)行修改或刪除;

            ( 6) 好友管理: 可以添加好友至某個分組, 修改好友的備注信息, 刪除好友;

            ( 7) 好友信息: 登錄后, 可以按照分組查看所有好友的信息;

            ( 8) 信息發(fā)送: 登錄后可給某位好友發(fā)送信息, 如果好友離線, 信息暫存于服務(wù)器中, 待其上線后接收;

            ( 9) 信息接收: 接收好友發(fā)送過來的信息, 并顯示;

            ( 10) 查看聊天記錄: 可查看與某位好友的聊天記錄。

            3 主要模塊設(shè)計(jì)

            系統(tǒng)的采用XMPP 協(xié)議, XMPP 是基于XML 的協(xié)議。在系統(tǒng)的過程中, 通信信息都是以XML 語句進(jìn)行傳輸?shù)模?而具體的消息內(nèi)容則嵌入在XML 元素中。系統(tǒng)主要包括解析、加密、即時通信、圖片傳輸、音樂播放、圖片瀏覽等模塊, 各模塊設(shè)計(jì)如下:

            ( 1) 解析模塊。系統(tǒng)采用 平臺上提供的org . xmlpull. vl 解析包對XML 消息進(jìn)行解析。XMPP協(xié)議中的XML 語句是一種樹型結(jié)構(gòu), 解析XMPP 協(xié)議的過程即對樹的遍歷, 節(jié)點(diǎn)的名字就是屬性的名字, 節(jié)點(diǎn)的值就是屬性的值。在解析中, 只對主要消息元素進(jìn)行解析, 主要解析XMPP 協(xié)議的3 個頂層元素< message/> 、< Presence/ >和< iq/ >所包含的內(nèi)容以及包含錯誤信息的元素 。解析完后, 封裝, 供應(yīng)用模塊進(jìn)行調(diào)用;

            ( 2) 加密模塊。加密模塊對發(fā)送和接收的消息進(jìn)行加解密, 以確保通訊數(shù)據(jù)的安全。該加密機(jī)制是分兩步完成的, 首先將二進(jìn)制碼轉(zhuǎn)換成BASE64 碼。在轉(zhuǎn)換成BASE64 碼之后, 再進(jìn)行加密, 加密算法由各網(wǎng)絡(luò)實(shí)體建立會話時通過TLS 協(xié)商。

            ( 3) 即時通信模塊。客戶端通過GPRS 無線網(wǎng)絡(luò)采用TCP 協(xié)議連接到Openfire 服務(wù)器, 通過服務(wù)器作為即時通信平臺, 實(shí)現(xiàn)客戶端與客戶端之間即時通信。

            為了解決T CP 在連接服務(wù)器的過程中, 等待服務(wù)器響應(yīng)時間過長, 易造成程序暫停, 系統(tǒng)假死現(xiàn)象。在與服務(wù)器的通信過程中采取了多線程的方式, 使用3 個線程, 分別負(fù)責(zé)消息發(fā)送、接收和心跳信息的發(fā)送。

            ( 4) 圖片傳輸。從文件系統(tǒng)中讀入圖片后, 將圖片轉(zhuǎn)換成". png" 的格式, 寫入到字節(jié)輸出流中。由于圖片信息相對于通信文本信息要大很多, 因此采用分組傳輸?shù)姆绞剑?對字節(jié)數(shù)組進(jìn)行分組, 加密后, 分別嵌入到XML 語句中進(jìn)行傳輸。接收圖片時, 將收到的各個子字符串轉(zhuǎn)換為字節(jié)數(shù)組并進(jìn)行解密, 最后進(jìn)行組合, 還原成原來的圖片, 供用戶瀏覽。

            ( 5) 音樂播放。音樂播放通過調(diào)用MediaPlayer實(shí)現(xiàn)的。Andro id 的Media Player 包含了Audio 和Video 的播放功能。MediaPlayer 在底層上是基于OpenCore( PaeketVideo ) 的庫實(shí)現(xiàn)的, 為了構(gòu)建一個MediaPlay er 程序, 上層還包含基于 基本庫中的Binder 機(jī)制的進(jìn)程間通訊等內(nèi)容。

            ( 6) 圖片瀏覽。圖片瀏覽主要用android. Graphics類包實(shí)現(xiàn), 這個類包提供了如畫布、點(diǎn)和矩形等底層圖形工具, 可直接的在屏幕上進(jìn)行繪制。從文件系統(tǒng)中把所需要的圖片讀入到內(nèi)存中, 轉(zhuǎn)化成" . png "的圖片格式, 然后在不同的用戶界面中, 使圖片以不同的形式顯示。

            4 結(jié)語

            近年來, 系統(tǒng)由于其開源性、易開發(fā)性得到廣泛的應(yīng)用。移動通信的即時通信服務(wù)把手機(jī)的短信和手機(jī)移動互聯(lián)網(wǎng)完美地結(jié)合起來, 用戶通過移動設(shè)備終端, 能便捷地與他人進(jìn)行實(shí)時信息交流。利用本設(shè)計(jì)方案, 可以實(shí)現(xiàn)在Andr oid 操作系統(tǒng)上完成即時通信系統(tǒng)客戶端的開發(fā), 具有較大的發(fā)展、應(yīng)用空間。

          linux相關(guān)文章:linux教程


          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          通信相關(guān)文章:通信原理



          上一頁 1 2 下一頁

          關(guān)鍵詞: Android 即時通信

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();