本项目是一个基于安卓的Android仿微信客户端-猫友。是一个csdn上的朋友的原创项目，原帖可以看这里http://blog.csdn.net/ericfantastic/article/details/49451249 实现了微信的登录注册、主界面、聊天会话、通讯录、发现界面、个人设置、添加好友、扫描二维码、视频通话、等所有基本功能。


下面是具体搭建方法：

1、下载Openfire的安装包：http://download.csdn.net/detail/ericfantastic/9219685

Openfire服务器及MySQL具体配置可以参考：http://www.th7.cn/db/mysql/201406/59838.shtml

2、建议下载Openfire自带的PC客户端Spark，方便测试功能：http://download.csdn.net/detail/ericfantastic/9219815

3、修改源码中的服务器主机地址：在ConnetServer.java中，修改Configuration为本地的IP地址。

4、修改添加好友中的JID主机名：在AddFriendActivity.java中，修改addFriend方法中的"@ericwork-pc"修改为服务器的主机名，不区分大小写；

5、修改聊天页面中的JID主机名：在ChatActivity.java中，修改发送按钮的监听事件中的"@ericwork-pc"，同上。


      实现一个IM实时聊天应用，少不了弄服务器，目前开源的Openfire服务器就比较合适，而且很多功能都已经封装好了，实现聊天APP就简洁很多。服务器后端的数据库我选择了MySQL，当然Openfire也支持大部分的主流数据库，只要在配置的时候修改好参数即可；搭建的时候，把服务器配到8G内存笔记本上，网上得知，Openfire每个线程大约占4k内存，那理论上是可以80w+用户，当然实际肯定没那么多，Openfire在一台8G的主流服务器上支持30W的用户肯定没有问题。

简单说明一下Eric_JQM_Chat工程目录结构，当初开发的时候初衷只是玩玩openfire实现IM的过程，没想到一写就写了一通，对模块也没有很好的分包，还请多多包涵。

可以脸红的说，基本上所有功能实现都放在第一个eric_jqm_chat包里了，第二个Service包主要放与于后台服务相关的包，但后来这些服务我也都没有启用，后面的四个Zxing包就是实现二维码扫描的包，具体如何实现我的博客里有介绍。

Login登录相关，包括保存当前登录账号密码，下次直接登录使用等功能；

Register注册相关，包括本地输入校验；

MainActivity主界面相关，包含四个Fragment页面、上方Actionbar及下方的自定义View选项；

TabFragment会话界面，用于接收收到的所有消息，并统计条目；

TabFragment2通讯录界面，加载用户的好友列表；

TabFragment3发现界面，功能尚未添加；

TabFragment4个人设置页面，加载个人资料；

AddFriendActivity添加好友页面，搜索仅仅是获取用户头像，申请添加好友，及接受好友添加请求并处理；

CaptureActivity扫描二维码页面，扫描二维码功能；

CatchCameraActivity视频通话页面，仅完成获取前置摄像头预览及获取网络RTSP视频流播放；

ConnetServer连接服务器类，单例模式；

FormatTools简单工具类，用于各种类型数据间的转换；

ChatActivity聊天页面，实现指定好友的聊天功能，及聊天记录的保存；

FriendDetail聊天好友详情页面，更改聊天背景等；

主要的类就是这些，具体的详细实现大家可以直接看代码，注释写的很详细了，有疑问的欢迎交流，存在bug还请指正。               