視頻教程  > 進階班教程  > 安卓

Android熱門技術-即時聊天

码报开奖结果本期 www.iwqgw.icu 由于很多畢業的學員在開發時遇到不少關于即時聊天、RxJava、熱修復等功能的APP開發,近期小碼哥Android學院將以視頻分享的方式不斷推出大家關注的這些技術的學習視頻,希望能夠給予需要這方面技術的同學提供一個很好的引導幫助,同時對這些技術感興趣的朋友也可以一起進行技術上的交流和探討。

    今天就先跟隨Android學院的王維波老師來學習基于XMPP實現的即時聊天功能。先看下總體內容:

1.jpg   

l  什么是即時聊天?

即時聊天可以簡單理解為一種通訊協議,像我們常見的微信,QQ,YY、陌陌等都是屬于即時聊天軟件。

l  為什么使用XMPP?

有了解即時聊天的朋友可能都知道,像融云、環信這些第三方的IM即時通訊,底層也是基于XMPP來實現的,而且XMPP具有開放、標準、證實可用、分散式、安全、可擴展以及多樣性等多種特點,在開發即時聊天時一般都會優先考慮選擇它。

l  XMPP是什么?

簡單來說,就是一種以XML為基礎的開放式實時通信協議。

使用XMPP通訊協議,一般包含下面幾個內容:XMPP+Openfire+ASmack。

XMPP:一種實時通信協議。

Openfire:主要是作為服務器,負責管理客戶端的通信連接,以及提供客戶端一些通信信息和連接信息。

ASmack:主要是XMPP協議的實現,提供了一套很好的API,操作XMPP都是通過使用Smack的API來實現,因為是在Android里,所以使用的是ASmack這個jar包。

  

初步了解了一些基本的知識點,我們就來看下一些具體功能的實現。


l  Openfire 服務器安裝及配置

參照安裝文檔安裝完 Openfire 服務器之后,可以創建幾個用戶用于測試??梢園滄?nbsp;spark、如意通這些客戶端進行登錄測試。這里主要是安裝了spark。

2.png


l  項目創建及asmack源碼關聯

因為XMPP 即時聊天的核心主要是使用Smack的API,asmack.jar里面的一些常見類,以及常見監聽器來實現的,所以需要添加jar包進行依賴和關聯源碼。

3.png


l  參考Smack API文檔,實現登錄功能

4.png


5.png


部分關鍵代碼:

6.png

7.png



l  聯系人的創建以及CRUD

    主要通過contentProvider緩存聯系人信息到數據庫,并進行增刪查改操作,不用每次從消息通道中獲取,還可以使用ContentObserver監聽數據信息的改變,實時更新UI。(具體代碼請下載源碼查看)

8.png

9.png


效果圖:

10.png

聯系人功能實現之后,我們就可以開始進行聊天功能的開發。

 

l  通過點擊聯系人列表中某個item傳遞數據到聊天界面,并在聊天界面設置顯示當前聊天的用戶。

11.png

12.png


效果圖:

13.png


l  實現聊天消息發送以及聊天信息保存

 

繼續參考Smack API文檔,查看聊天功能的實現方法。

14.png


點擊發送后開始和發送對象聊天,這里需要先保存當前登錄的對象,也就是發消息方的賬

號,發送方的賬號在登錄完成后獲得。

15.png

16.png


效果圖:

17.png


聊天消息需要保存起來,用到ContentProvider和數據庫。通過創建相關的用到ContentProvider和數據庫,進行CRUD操作,實現聊天信息緩存。

18.png

19.png

20.png

21.png


在發送和接收消息時,保存消息,最后在聊天界面中獲取。

22.png

23.png


效果圖如下:

24.png


到這里為止,基本上一個簡單的聊天功能就實現了,我們還可以對消息顯示的布局、界面不可見時也能收到消息等問題做一定的完善,具體代碼就不展示了,直接看效果圖吧。

25.png



l  會話消息的實現

    

最后再說一下會話信息界面的實現過程,關鍵就是展示聊天會話的實時信息。

首先需要在SmsProvider中創建相應的URI,以及相應的匹配規則;顯示會話聯系人,這里只需要查詢操作。

26.png

1491389362212579.png


設置數據展示:

27.png

28.png

29.png


為了實現實時顯示最新的數據,還需要暴露注冊和反注冊的方法。

30.png


最終效果圖:

31.png



廣場舞大媽說,如果跳的足夠快,她的孤獨就追不上她。

拾荒的大叔說,如果翻垃圾翻得足夠仔細,便能找回丟失的自己。

碰瓷的大爺說,只要演的夠逼真,就能騙過匆匆流逝的時光。

只要堅持學習Android熱門技術,就一定能夠改變人生和命運!


要即時聊天視頻.jpg





幸运飞艇7码怎么搞 好运来彩票计划软件 pk10最牛稳赚技巧 北京pk10下载 幸运飞艇助彩计划 快三骰子 pk10免费计划软件手机版 开单软件免费 复式投注金额对照表 双式投注三式投注什么意思 幸运飞艇计划软件下载手机版 ig飞艇人工计划软件 双面盘定制 体彩排列三专业版带连线 玩彩怎么做到稳赚不赔 任二直选稳赚技巧