本项目是一个基于安卓的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还请指正。
1