几个开源XMPP Android客户端简单比较
想做个基于xmpp的即时通讯工具,服务端已经基本成型了。当然需要客户端需要配合,PC端基于spark进行改造,手机端先从Android入手(IOS估计一个人是搞不过来了).
原本Android开发就是半桶水,像样的开发产品也没做过,就权当零基础重新学习吧,折腾了一个多月,算能看得懂代码了,就找到几个开源XMPP客户端,想至少有个框架做基础。由于Android本身就不熟,编译运行就用了3,4天的时间,大致看了下基本框架,简单记录一下,以供自己和他人做个参考.
- 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出来,然后再慢慢根据需要丰富功能.
几个开源XMPP Android客户端简单比较的更多相关文章
- 使用calabash测试开源中国Android客户端
Calabash-android是支持android的UI自动化测试框架,前面已经介绍过<中文Win7下成功安装calabash-android步骤>,这篇博文尝试测试一个真实应用:开源中 ...
- 开源的android客户端,ghost网站
https://github.com/TryGhost/Ghost-Android http://docs.ghostchina.com/zh/
- 基于XMPP实现的Openfire的配置安装+Android客户端的实现[转]
最近在整理一些这方面的资料,闲话少说,咱还是直奔主题吧 :) http://blog.csdn.net/sk719887916/article/details/40541163 https://git ...
- Android 开源项目 eoe 社区 Android 客户端(转)
本文内容 环境 开源项目 eoe 社区 Android 客户端 本文介绍 eoe 社区 Android 客户端.它是一个开源项目,功能相对简单,采用侧边菜单栏.可以学习一下.点击此处查看 GitHub ...
- Android 开源项目 eoe 社区 Android 客户端
本文内容 环境 开源项目 eoe 社区 Android 客户端 本文介绍 eoe 社区 Android 客户端.它是一个开源项目,功能相对简单,采用侧边菜单栏.可以学习一下.点击此处查看 GitHub ...
- 【转】Android Https服务器端和客户端简单实例
转载地址:http://blog.csdn.net/gf771115/article/details/7827233 AndroidHttps服务器端和客户端简单实例 工具介绍 Eclipse3.7 ...
- Converse.js – 开源的 XMPP 聊天客户端
Converse.js 是一个运行在浏览器的免费和开源的聊天客户端.它可以集成到任何网页.类似于 Facebook 的聊天,它也支持多用户聊天室.Converse.js 可以连接到任何可访问的 XMP ...
- 基于XMPP实现的Openfire的配置安装+Android客户端的实现
最近在整理一些这方面的资料,闲话少说,咱还是直奔主题吧 :) 一.基于xmpp实现的openfire的配置安装 1. 下载最新的openfire安装文件 官方下载站点: http://www.igni ...
- Android客户端与Python服务器端的简单通信
最近在做一个APP,需要与服务器通信,一点一点的尝试,记录一下. 本文使用了OkHttp和Flask框架. 参考博文:https://ai-exception.com/2018/06/13/%E4%B ...
随机推荐
- 跨域的get和post的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二.最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数.当你在面试中被 ...
- 关键字sizeof---常年被人误认为函数
sizeof 是关键字不是函数, sample: int i=0; A) sizeof(int); B) sizeof(i); C)sizeof int; D)sizeof i; C) ...
- SQL Server附加数据库出现错误5123的正确解决方法
因为自己有一本基于SQL Server 2005的数据库教程,里边使用的示例数据库是AdventureWorks for SQL Server 2005,而我的机子上装的是SQL Server 200 ...
- RandomAccessFile使用小结
本文是基于Linux环境运行,读者阅读前需要具备一定Linux知识 RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,既可以读取文件内容,也可以向文件输出数据.与 ...
- WCF启用日志追踪
调用使用http post调用WCF Restful服务时,WCF会自动反序列化body里的实体,如果实体反序列化不成功时,会返回一个请求错误,让去看服务器日志.需要启用日志追踪功能,才能看到具体的情 ...
- DataSnap控件TDSServerClass属性LifeCycle生命周期管理(From李维)
DelphiXE2中的DataSnap中提供了三种不同的生命周期,开发人员可以在TDSServerClass控件的LifeCycle特性中设定,下面分别说明每一种生命周期的意义 1. Server:在 ...
- oracle常用命令(比较常见好用)
一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgr ...
- Waitforsingleobject 函数的用法
用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法. 但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力.这时,只能考虑 ...
- block的初识
block的介绍: Block是iOS4.0之后新增的一种语法结构,也称为“闭包(closure)”. SDK4.0新增的API大量使用了Block. Block是一个匿名的函数代码块,此代码 ...
- js上传压缩图片
原文链接:http://blog.csdn.net/iefreer/article/details/53039848 手机用户拍的照片通常会有2M以上,这对服务器带宽产生较大压力. 因此在某些应用下( ...