你的位置:首页 > 操作系统

[操作系统]几个开源XMPP Android客户端简单比较

 

想做个基于xmpp的即时通讯工具,服务端已经基本成型了。当然需要客户端需要配合,PC端基于spark进行改造,手机端先从Android入手(IOS估计一个人是搞不过来了).

原本Android开发就是半桶水,像样的开发产品也没做过,就权当零基础重新学习吧,折腾了一个多月,算能看得懂代码了,就找到几个开源XMPP客户端,想至少有个框架做基础。由于Android本身就不熟,编译运行就用了3,4天的时间,大致看了下基本框架,简单记录一下,以供自己和他人做个参考.

 

  1. Xabber

Git地址为:https://github.com/redsolution/xabber-android

装好,添加账户居然有个下拉列表,看来它的目标是Android上的Gaim,不过PC上都搞不起来的东西,手机上估计更是不行了。核心是基于Smack,自己还包装了一个xmpp包,界面真是不咋的,上面只有基本的“文字”聊天功能。看里面的代码是比较丰富的,甚至完成了MUC的处理,所以整个代码比较繁杂。

 

     2.Conversion

Git地址为:https://github.com/siacs/Conversations

装好一看,界面还是非常不错的,而且功能上也已经实现了普通聊天和群聊,甚至可以发送图片和其他文件,从完成度上看已经非常好了。不过底层xmpp是作者自己实现了一套协议,毕竟smack使用的人多,bug修护也快。从稳定性角度考虑暂时放一边,不过他的整个代码组织方式还是比较漂亮的,可以借鉴。

     

     3.TestXMPP和yaxim

Yaxim:Git地址为:https://github.com/pfleidi/yaxim

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出来,然后再慢慢根据需要丰富功能.