想作個基於xmpp的即時通信工具,服務端已經基本成型了。固然須要客戶端須要配合,PC端基於spark進行改造,手機端先從Android入手(IOS估計一我的是搞不過來了).android
本來Android開發就是半桶水,像樣的開發產品也沒作過,就權當零基礎從新學習吧,折騰了一個多月,算能看得懂代碼了,就找到幾個開源XMPP客戶端,想至少有個框架作基礎。因爲Android自己就不熟,編譯運行就用了3,4天的時間,大體看了下基本框架,簡單記錄一下,以供本身和他人作個參考.git
Git地址爲:https://github.com/redsolution/xabber-androidgithub
裝好,添加帳戶竟然有個下拉列表,看來它的目標是Android上的Gaim,不過PC上都搞不起來的東西,手機上估計更是不行了。核心是基於Smack,本身還包裝了一個xmpp包,界面真是不咋的,上面只有基本的「文字」聊天功能。看裏面的代碼是比較豐富的,甚至完成了MUC的處理,因此整個代碼比較繁雜。框架
2.Conversion異步
Git地址爲:https://github.com/siacs/Conversations工具
裝好一看,界面仍是很是不錯的,並且功能上也已經實現了普通聊天和羣聊,甚至能夠發送圖片和其餘文件,從完成度上看已經很是好了。不過底層xmpp是做者本身實現了一套協議,畢竟smack使用的人多,bug修護也快。從穩定性角度考慮暫時放一邊,不過他的整個代碼組織方式仍是比較漂亮的,能夠借鑑。學習
3.TestXMPP和yaximspa
Yaxim:Git地址爲:https://github.com/pfleidi/yaxim.net
TestXMPP:Csdn地址爲: http://blog.csdn.net/way_ping_li/插件
Yaxim我並無編譯安裝過,不過TestXMPP已經改的挺漂亮的了,是這些開源項目裏面最漂亮的一個,結合了slidingMenu,IphoneTreeView,swipeback, pulltorefresh等插件.最大的優勢是把smack封裝到一個類裏面,並且服務也是單例,結構簡單.缺點是隻有簡單的聊天和花名冊功能,並且只有低像素的layout.實際運行的時候還core了幾回.
4.EIM
Csdn下載地址: http://blog.csdn.net/shimiso/article/details/11225873/
也是基於asmack的,界面設計那是無法看,不過對xmpp的封裝仍是有必定借鑑做用,特別是把登錄單獨出來一個異步任務,後面消息的處理根據不一樣的asmack監聽器進行獨立的service處理.
總結一下:
Xabber和Conversations架子太大,短時間內研究透難度較高,EIM能夠做爲複合功能的參考,先從Yaxim和TestXMPP入手.作出一個Demo出來,而後再慢慢根據須要豐富功能.