Android仿微信APP實現源碼

前幾個月做的Android仿微信客戶端-貓友,一直沒時間做個總結,現在拿出來整理整理。

先來看看實現效果:

登錄註冊頁面:

會話界面及添加好友頁面:

聊天界面及聊天詳情頁面:

通訊錄擴展頁面:


這裏附上仿微信貓友APP下載地址:http://download.csdn.net/detail/ericfantastic/9219921

資源還是需要分的,望各位支持一下原創!


具體搭建方法:

1、下載Openfire的安裝包:http://download.csdn.net/detail/ericfantastic/9219685

Openfire服務器及MySQL具體配置可以參考:http://www.th7.cn/db/mysql/201406/59838.shtml

2、建議下載Openfire自帶的PC客戶端Spark,方便測試功能:http://download.csdn.net/detail/ericfantastic/9219815

3、修改源碼中的服務器主機地址:在ConnetServer.java中,修改Configuration爲本地的IP地址。

4、修改添加好友中的JID主機名:在AddFriendActivity.java中,修改addFriend方法中的"@ericwork-pc"修改爲服務器的主機名,不區分大小寫;

5、修改聊天頁面中的JID主機名:在ChatActivity.java中,修改發送按鈕的監聽事件中的"@ericwork-pc",同上。

      實現一個IM實時聊天應用,少不了弄服務器,目前開源的Openfire服務器就比較合適,而且很多功能都已經封裝好了,實現聊天APP就簡潔很多。服務器後端的數據庫我選擇了MySQL,當然Openfire也支持大部分的主流數據庫,只要在配置的時候修改好參數即可;搭建的時候,把服務器配到8G內存筆記本上,網上得知,Openfire每個線程大約佔4k內存,那理論上是可以80w+用戶,當然實際肯定沒那麼多,Openfire在一臺8G的主流服務器上支持30W的用戶肯定沒有問題。

      Android貓友APP的結構圖:

    終端設備通過AndroidAPP從互聯網或局域網與服務器進行交互,服務器處理客戶端的請求,並完成相應的處理,將數據信息存儲到數據庫,在需要是進行調用。


簡單說明一下Eric_JQM_Chat工程目錄結構,當初開發的時候初衷只是玩玩openfire實現IM的過程,沒想到一寫就寫了一通,對模塊也沒有很好的分包,還請多多包涵。

可以臉紅的說,基本上所有功能實現都放在第一個eric_jqm_chat包裏了,第二個Service包主要放與於後臺服務相關的包,但後來這些服務我也都沒有啓用,後面的四個Zxing包就是實現二維碼掃描的包,具體如何實現我的博客裏有介紹。

Login登錄相關,包括保存當前登錄賬號密碼,下次直接登錄使用等功能;

Register註冊相關,包括本地輸入校驗;

MainActivity主界面相關,包含四個Fragment頁面、上方Actionbar及下方的自定義View選項;

TabFragment會話界面,用於接收收到的所有消息,並統計條目;

TabFragment2通訊錄界面,加載用戶的好友列表;

TabFragment3發現界面,功能尚未添加;

TabFragment4個人設置頁面,加載個人資料;

AddFriendActivity添加好友頁面,搜索僅僅是獲取用戶頭像,申請添加好友,及接受好友添加請求並處理;

CaptureActivity掃描二維碼頁面,掃描二維碼功能;

CatchCameraActivity視頻通話頁面,僅完成獲取前置攝像頭預覽及獲取網絡RTSP視頻流播放;

ConnetServer連接服務器類,單例模式;

FormatTools簡單工具類,用於各種類型數據間的轉換;

ChatActivity聊天頁面,實現指定好友的聊天功能,及聊天記錄的保存;

FriendDetail聊天好友詳情頁面,更改聊天背景等;

主要的類就是這些,具體的詳細實現大家可以直接看代碼,註釋寫的很詳細了,有疑問的歡迎交流,存在bug還請指正。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章