<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)ndroid平臺的即時(shí)通信系統客戶(hù)端設計

基于A(yíng)ndroid平臺的即時(shí)通信系統客戶(hù)端設計

作者: 時(shí)間:2011-10-12 來(lái)源:網(wǎng)絡(luò ) 收藏
2. 3 數據存儲

本文引用地址:http://dyxdggzs.com/article/150120.htm

  采用Andr oid 自身所帶的SQLite 數據庫來(lái)存儲用戶(hù)信息以及聊天信息, 使用文件存儲設備SDear d 來(lái)存儲圖片和音樂(lè )。使用contentPr ov ider 將SQLite 資料庫封裝起來(lái), 讓?xiě)贸绦蛑苯邮褂媚軌蚱帘螖祿觳町愋裕?提供一致界面的contentPro vider 所提供的界面函數。

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

  主要實(shí)現以下功能:

 ?。?1) 注冊用戶(hù): 填寫(xiě)相關(guān)的個(gè)人信息進(jìn)行注冊, 向服務(wù)器提交后服務(wù)器返回相應的信息;

 ?。?2) 設置: 對系統的一些選項進(jìn)行相應的設置;

 ?。?3) 用戶(hù)設置: 對用戶(hù)基本信息和一些Jabber 選項進(jìn)行設置;

 ?。?4) 登錄和注銷(xiāo): 選擇相應的服務(wù), 輸入用戶(hù)名和密碼, 登錄系統, 或注銷(xiāo)用戶(hù), 退出本系統;

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

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

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

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

 ?。?9) 信息接收: 接收好友發(fā)送過(guò)來(lái)的信息, 并顯示;

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

  3 主要模塊

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

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

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

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

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

 ?。?4) 圖片傳輸。從文件系統中讀入圖片后, 將圖片轉換成. png 的格式, 寫(xiě)入到字節輸出流中。由于圖片信息相對于通信文本信息要大很多, 因此采用分組傳輸的方式, 對字節數組進(jìn)行分組, 加密后, 分別嵌入到XML 語(yǔ)句中進(jìn)行傳輸。接收圖片時(shí), 將收到的各個(gè)子字符串轉換為字節數組并進(jìn)行解密, 最后進(jìn)行組合, 還原成原來(lái)的圖片, 供用戶(hù)瀏覽。

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

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

  4 結語(yǔ)

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



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>