想做个基于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. Objective - C NSArray不可变数组和NSMutableArray可变数组

    OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见 ...

  2. 我读汤姆大叔的深入理解js(二)

    继续汤姆大叔的js之旅. 揭秘命名函数表达式 函数表达式和函数声明 汤姆大叔在博客中引用ECMA规范:函数声明必须带有标识符,函数表达式可以省略.对于我来说这些概念的东西真是不所适从.还是大叔的实例带 ...

  3. pip 安装 MySQL-python 失败

    今天在安装 MySQL-python 提示 EnvironmentError: mysql_config not found 得知 mysql_config 是属于MySQL开发用的文件,而使用apt ...

  4. 318. Maximum Product of Word Lengths

    Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the tw ...

  5. android ListView 九大重要属性详细分析、

    android ListView 九大重要属性详细分析. 1.android ListView 一些重要属性详解,兄弟朋友可以参考一下. 首先是stackFromBottom属性,这只该属性之后你做好 ...

  6. MediaBrowserService 音乐播放项目

    MediaBrowserService 音乐播放项目,本项目主要有如下功能: (1):支持播放在线音乐 (2):按住home键退出页面后显示通知栏部分播放提示,  (3) : 支持切换上下首歌曲 本项 ...

  7. 深入理解js——作用域和上下文环境

    如图除全局作用域外,每个函数都会创建自己的作用域.作用域在函数定义时就确定了,而不是在函数调用时确定. 下面按照程序执行的步骤加上上下文环境. 第一步:程序加载时已经确定全局上下文环境,并随着程序的执 ...

  8. redis配置文件redis.conf说明

    redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程    daemonize no2. 当Redis以守护进程方式运行时, ...

  9. 在iis中设置文件下载而不是在浏览器上打开

    点击网页链接的*.txt,*.jpg,*.xml等文件时会在浏览器上直接显示,并没有像*.doc那样弹出下载提示框. 解决方法: 在部署的网站上,选择存放文件的目录,选择 HTTP响应标头 ,添加一个 ...

  10. iOS 上架被拒原因保存

    一.后台一直在获取用户的定位,需要给用户电池消耗提示 Your app uses the Location Background mode but does not include the requi ...