基於XMPP協議Android即時通訊開源應用

yangxi_001發表於2014-03-05
基於xmpp協議的即時通訊,於是乎,為了簡單方便,我便把之前百度推聊換了一個芯:將基於百度雲推送改成基於asmack的即時通訊,當然,介面也會有一定的改動,會增加一些新東西,也會去掉一些多餘的累贅。另外改動比較大的資料庫存取方式,這次改成contentprovider,關於這個Android四大基本元件之一,我們幾乎都是用的比較多,實現真是少之又少,權當是練練手吧!下面一起來看看效果圖:

1.老規矩,先上Splash,在這個過度介面,我們可以初始化一些必要的資料。

2.登陸提示介面,仿zaker介面的開門效果,可以往上滑動收起來。沒有找到合適的幫助圖片,就用紅色的文字顯示,沒有做註冊功能,因為google talk註冊沒有那麼簡單,只能實現自己搭建的openfire伺服器註冊賬號,就直接去掉算了。

3.我這裡使用的是Google賬號登陸測試的。

4.主介面,和之前的百度推聊是一樣的啦,直接移植過來的。只是將好友列表和最近會話換了一下位置。點選暱稱可以切換線上狀態。

5.空的最近會話列表。

6.好友列表是可以區分好友線上狀態的,同時長按好友會彈出操作提示框,一個開源的控制元件,稍微修改了一下,換了一層皮。

7.好友列表實現了仿QQ的效果,IphoneTreeView和下拉重新整理的功能,稍微有一點點小問題,不過個人能力問題,只能優化到這個樣子,請諒解。

8.設定介面,點選退出按鈕,可以實現仿Iphone的退出對話方塊。

9.最近會話也是可以滑動刪除的啦,直接從之前的專案移植過來的。

10.聊天介面,也是基本上從之前專案移植過來的。

11.關於介面,留下了投票方式哦,歡迎各位直接用手機點選進入給作者投票,\(^o^)/~

12.本應用內部每個Activity都是可以手勢滑動返回的,可以解放你的返回按鍵。


           


好了,看完介面的基本介紹,下面來看看專案結構:

 

包分得比較多,但是程式碼還是很少的啦,重要的幾個包講一下:

1.com.way.service:這是本應用的最重要的包啦,為了簡單,本應用只用了一個服務,包括登陸、聊天、超時判斷以及連線等等,都是在此處處理。

2.com.way.smack:這裡是對asmack第三方包重新包裝的一個工具包,方便本應用直接呼叫。

3.com.way.activity;理所當然就是所有Activity咯。

4.com.way.app:這裡有一個廣播接受者和Application類,主要是用來接受系統廣播,比如說網路連線上或者斷開,開關機等等廣播。

5.com.way.db:沒錯,就是運算元據庫咯,總共是兩個ContentProvider,一個是儲存好友,一個是儲存聊天記錄。

6.其他的一些包大都是控制元件或者工具類,為了方便自己下次使用以及大家直接copy到自己的專案中,每個不同的控制元件我都用不同的包名分開的啦,雖然顯得比較龐大,但是copy到自己專案中還是很方便的吧!

 

原始碼地址:http://download.csdn.net/detail/weidi1989/6731835

開源中國:http://git.oschina.net/way/XMPP

相關文章