几个开源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 ...
随机推荐
- nil与NULL的区别
首先nil表示无值,任何变量在没有被赋值之前的值都为nil,对于真假判断,只有nil与false表示假,其余均为真.而NULL是一个宏定义,值为0.并且,nil一般赋值给空对象,NULL一般赋值给ni ...
- .NET 工具类ObjectDumper 打印对象
// Comes from the LINQ samples provided by Microsoft //Copyright (C) Microsoft Corporation. All righ ...
- WINDOWS 远程桌面不能直接拷贝文件问题
使用WIN7远程客户端连WIN 2003服务器,发现不能拷贝文件,使用下面方法解决:
- 通过反射获得 spring 的 RequestMapping value值
package demo import java.lang.reflect.Method; import org.springframework.web.bind.annotation.Request ...
- asp.net core获取自定义json的配置内容
首先在主目录下建立:Iyibank.Web.json文件 里边的内容如下: { "ConnectionStrings": { "RedisCache": &qu ...
- ycm添加自定义补全路径
修改~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py的flags变量 未改前如下: flags = [ ...
- SQL Server 的数据表简单操作
--创建数据表--[use 要创建数据表的数据库名称go]create table 要创建的表名(字段名 数据类型[长度] [null | not null] [primary key],... .. ...
- LAMP环境
LAMP = Linux + Apache + MySQL + PHP [1] [2] [3] [4] [1]Linux是一套免费使用和自由传播的类Unix操作系统, ...
- Finish 和 Complete 的区别
2012年,在伦敦举行的语言大赛中,圭亚那选手Samsunder Balgobin 在回答比赛中最后一道问题 "你如何用一种容易让人理解的方式解释 complete与finished 的区別"时, ...
- scrapy爬虫框架入门实例(一)
流程分析 抓取内容(百度贴吧:网络爬虫吧) 页面: http://tieba.baidu.com/f?kw=%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&ie=ut ...