想作个基于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出来,而后再慢慢根据须要丰富功能.