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

几个开源XMPP Android客户端简单比较的更多相关文章

  1. 使用calabash测试开源中国Android客户端

    Calabash-android是支持android的UI自动化测试框架,前面已经介绍过<中文Win7下成功安装calabash-android步骤>,这篇博文尝试测试一个真实应用:开源中 ...

  2. 开源的android客户端,ghost网站

    https://github.com/TryGhost/Ghost-Android http://docs.ghostchina.com/zh/

  3. 基于XMPP实现的Openfire的配置安装+Android客户端的实现[转]

    最近在整理一些这方面的资料,闲话少说,咱还是直奔主题吧 :) http://blog.csdn.net/sk719887916/article/details/40541163 https://git ...

  4. Android 开源项目 eoe 社区 Android 客户端(转)

    本文内容 环境 开源项目 eoe 社区 Android 客户端 本文介绍 eoe 社区 Android 客户端.它是一个开源项目,功能相对简单,采用侧边菜单栏.可以学习一下.点击此处查看 GitHub ...

  5. Android 开源项目 eoe 社区 Android 客户端

    本文内容 环境 开源项目 eoe 社区 Android 客户端 本文介绍 eoe 社区 Android 客户端.它是一个开源项目,功能相对简单,采用侧边菜单栏.可以学习一下.点击此处查看 GitHub ...

  6. 【转】Android Https服务器端和客户端简单实例

    转载地址:http://blog.csdn.net/gf771115/article/details/7827233 AndroidHttps服务器端和客户端简单实例 工具介绍 Eclipse3.7 ...

  7. Converse.js – 开源的 XMPP 聊天客户端

    Converse.js 是一个运行在浏览器的免费和开源的聊天客户端.它可以集成到任何网页.类似于 Facebook 的聊天,它也支持多用户聊天室.Converse.js 可以连接到任何可访问的 XMP ...

  8. 基于XMPP实现的Openfire的配置安装+Android客户端的实现

    最近在整理一些这方面的资料,闲话少说,咱还是直奔主题吧 :) 一.基于xmpp实现的openfire的配置安装 1. 下载最新的openfire安装文件 官方下载站点: http://www.igni ...

  9. Android客户端与Python服务器端的简单通信

    最近在做一个APP,需要与服务器通信,一点一点的尝试,记录一下. 本文使用了OkHttp和Flask框架. 参考博文:https://ai-exception.com/2018/06/13/%E4%B ...

随机推荐

  1. nil与NULL的区别

    首先nil表示无值,任何变量在没有被赋值之前的值都为nil,对于真假判断,只有nil与false表示假,其余均为真.而NULL是一个宏定义,值为0.并且,nil一般赋值给空对象,NULL一般赋值给ni ...

  2. .NET 工具类ObjectDumper 打印对象

    // Comes from the LINQ samples provided by Microsoft //Copyright (C) Microsoft Corporation. All righ ...

  3. WINDOWS 远程桌面不能直接拷贝文件问题

    使用WIN7远程客户端连WIN 2003服务器,发现不能拷贝文件,使用下面方法解决:

  4. 通过反射获得 spring 的 RequestMapping value值

    package demo import java.lang.reflect.Method; import org.springframework.web.bind.annotation.Request ...

  5. asp.net core获取自定义json的配置内容

    首先在主目录下建立:Iyibank.Web.json文件 里边的内容如下: { "ConnectionStrings": { "RedisCache": &qu ...

  6. ycm添加自定义补全路径

    修改~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py的flags变量 未改前如下: flags = [  ...

  7. SQL Server 的数据表简单操作

    --创建数据表--[use 要创建数据表的数据库名称go]create table 要创建的表名(字段名 数据类型[长度] [null | not null] [primary key],... .. ...

  8. LAMP环境

    LAMP =  Linux + Apache + MySQL + PHP    [1]     [2]      [3]     [4] [1]Linux是一套免费使用和自由传播的类Unix操作系统, ...

  9. Finish 和 Complete 的区别

    2012年,在伦敦举行的语言大赛中,圭亚那选手Samsunder Balgobin 在回答比赛中最后一道问题   "你如何用一种容易让人理解的方式解释 complete与finished 的区別"时, ...

  10. scrapy爬虫框架入门实例(一)

    流程分析 抓取内容(百度贴吧:网络爬虫吧) 页面: http://tieba.baidu.com/f?kw=%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&ie=ut ...