转载注明出处:http://blog.csdn.net/vaintwyt/article/details/28110261 谢谢!

一,软件介绍
本软件有注册,登录,用户信息管理,通讯录,添加好友,聊天等功能。

还是直接上图吧,下面是软件的主要界面(控件图标基本上都是微信的图标)。

注册界面

登录界面

主界面

用户信息管理界面

通讯录界面

添加好友界面

聊天界面

二,软件源码

源码下载<<< (代码有修改)

注意!使用源码前,务必要看下面的说明啊!!!下面是为了让你能运行软件,所做的配置。具体的源码分析,会在后续推出。

另外,源码的所有编码和数据库编码都是UTF-8。

1.开发环境
MyEclipse+Tomcat+Android SDK+MySQL。其中MyEclipse可以用Eclipse替换,MySQL也可以用其他数据库替换。

2.数据库
在数据库中创建user和friends表,用于存储服务器端的用户基本信息和好友列表。
建表语句如下(sql语句是我导出来的,我是直接通过可视化工具建表):
[sql] view plain copy
CREATE TABLE user (
user_id varchar(20) NOT NULL DEFAULT ” COMMENT ‘用户ID’,
name varchar(25) DEFAULT ” COMMENT ‘昵称’,
gender varchar(10) DEFAULT ‘male’ COMMENT ‘性别’,
password varchar(45) DEFAULT NULL COMMENT ‘密码’,
photo longtext COMMENT ‘头像’,
PRIMARY KEY (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’用户信息’;

[sql] view plain copy
CREATE TABLE talking.friends (
user_id varchar(20) NOT NULL DEFAULT ” COMMENT ‘ID号’,
friend_list longtext COMMENT ‘好友列表’,
PRIMARY KEY (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’好友列表’;

如果不嫌麻烦,可以直接用可视化的MySQL管理工具手动建表,也就只有两个表,几个字段而已。建好的表如下图:

如果你想使用其他数据库,则需要在TalkingServer项目中,找到src目录下的hibernate.cfg.xml文件,修改对应配置。
另外,该文件中,下面的三个属性,需要根据你的情况作出对应修改。
[html] view plain copy
jdbc:mysql:///talking //talking是schema
root //数据库用户名
vaint //数据库密码

3.导入项目
源码文件夹中有三个项目。TalkingClient和TalkingServer项目可以直接导入,然后将对应libs的jar包Build Path。

针对appcompat项目有如下的说明。
我的软件支持Android platform的最低版本是2.3,因为本人手机是2.3的,便于真机测试。如果你设置支持的最低版本是3.0或者以上,那就忽略这一步吧,直接将TalkingClient–Properties - Android,下方引用的Library项remove。
为了支持低版本系统也能使用ActionBar,需要在TalkingClient项目中引用AppCompat项目(这个项目在Android官方SDK的sdk\extras\android\support\v7目录也可以找到)。
你需要做以下处理:
a,导入android-support-v7-appcompat项目到MyEclipse,或者Eclipse。
b,将项目libs目录下的两个jar包Build Path。
c,如果此时项目的R文件报错,则需要选择Android platform版本。右键项目–Properties–Android。版本必须大于或等于3.0,这个很关键。如果R文件没有报错,那就不需要这一步。
d,右键TalkingClient,注意是TalkingClient项目,Properties - Android - (下方)Add - 选择appcompat项目。如果在b步骤中,为appcompat项目设置了Android platform版本,则需要将TalkingClient的platform版本也选择为大于等于3.0。最好appcompat和TalkingClient的platform一致,避免错误。

这一步操作比较麻烦,我之前也用了不少时间才搞定,所以要耐心点。具体可以参考:Eclipse添加兼容包

4.短信验证码
由于注册功能中,使用到短信验证码服务。我是通过天翼开放平台的接口实现的,可以全网下发短信验证码。这个接口在6月1号前是可以免费使用的(每天调用100次以下,使用量高于100,可以交费申请更加多的次数),后来又开始收费了。。。不过你现在也可以去申请,会赠送你20天,每天调用次数100次以下的套餐。
详情:天翼开放平台
申请步骤:
a,注册登录,可以使用电信手机号,或者微博账号登录。
b,创建应用,填写相关的应用信息。
c,应用创建后,会得到app_id和app_secret。这就是你使用接口的凭证。
d,如果你想进一步研究,可以去开发者社区,找一个Demo看看。

你用你的app_id和app_secret替换掉TalkingServer项目,src/vaint.wyt.constant.java文件的APP_ID和APP_SECRET常量。这样你就可以使用短信验证码功能了。

当然,如果你对这个没有兴趣,可以直接在数据库的user表中,插入测试用户的数据,就可以跳过注册,直接登录聊天软件。

5.网络IP配置
找到TalkingClient项目的src/vaint.wyt.constants.java文件,将SERVER_IP常量改为你的服务器地址,即你电脑的IP。如果你的Tomcat的端口不是8080,则需要修改HTTP_SERVER_IP常量。

三,源码分析
接下来会不断更新这篇文章,将源码分析的文章链接放在下方。

(一)预备知识
http://blog.csdn.net/vaintwyt/article/details/28389313
(二)数据库
http://blog.csdn.net/vaintwyt/article/details/30742687
(三)网络连接
http://blog.csdn.net/vaintwyt/article/details/31808781
(四)通讯录
http://blog.csdn.net/vaintwyt/article/details/32351945
(五)头像设置
http://blog.csdn.net/vaintwyt/article/details/32714991
(六)表情
http://blog.csdn.net/vaintwyt/article/details/32715097
(七)聊天通信
http://blog.csdn.net/vaintwyt/article/details/32725771

主要有以上七部分的分析,有问题欢迎探讨。

Android聊天软件的开发相关推荐

  1. Android聊天软件的开发(七)--聊天通信

    聊天通信通过Socket实现,大概的框架如下图: 通信流程: 1.服务器在启动时开启聊天服务线程 可以通过ServletContextListener监听Servlet的初始化和销毁,来开启和关闭聊天 ...

  2. Android聊天软件的开发--聊天通信

    Android聊天软件的开发(七)--聊天通信 2014-06-20 23:17:49CSDN-vaintwyt-点击数:338  聊天通信通过Socket实现,大概的框架如下图: 通信流程: 1.服 ...

  3. Android聊天软件的开发(二)--数据库

    一,服务器数据库    服务器端的数据库是MySQL,使用Hibernate实现数据的增删改查.主要存储的数据有:用户信息,好友列表.             其中,好友列表中的friend_list ...

  4. Android聊天软件的开发(四)--通讯录

    一,好友排序    好友排序是按照昵称拼音进行A-Z排序.效果如下图:      对好友昵称进行排序,需要先将首字转换为ASCII码,然后根据ASCII码得到对应的拼音,最后根据拼音进行A-Z排序.点 ...

  5. Android聊天软件的开发(三)--网络连接

    一,服务器网络接口    服务器网络接口通过Servlet实现,可以获得客户端提交的数据,对数据进行查询存储操作,以及返回结果数据给客户端.客户端可以通过HTTP协议直接访问网络接口.    HTTP ...

  6. Android聊天软件的开发(六)--表情

    表情用于聊天对话的输入,实现的原理主要是:在EditText或TextView中,使用SpannableString,将特定字符串替换为图片. 首先,我们可以规定,表情的字符串为[**],图片名称为s ...

  7. Android聊天软件界面开发

    聊天软件界面开发 前言:           这是开始学习Android的开发的第5天,一直是跟着郭霖大师的第一行代码学习,              这里边发篇博文记录,边帮自己整理下思路,毕竟思路 ...

  8. 开发简单Android聊天软件(1)

    总体介绍 开篇 大概思路 一. 客户端主要依赖 二.包引用完成后,创建wsClient类. 三.连接成功后,就可以在对于业务逻辑调用以下方法开始发送消息 开篇 本人是一位开发新人,将自己的开发学习过程 ...

  9. 开发简单Android聊天软件(7)

    构建离线消息获取流程 在 "开发简单Android聊天软件(6)" 中,完成了完成消息接收和加载,构建一个完整的聊天流程. 但是我们只完成了一半,完成存量历史记录展示,和即时聊天的 ...

  10. 开发简单Android聊天软件(6)

    构建完整消息接收加载流程 在 "开发简单Android聊天软件(5)" 中,完成了会话窗口的绘制,以及消息发送.现在我们来完成消息接收和加载,构建一个完整的聊天流程. 消息加载,那 ...

最新文章

  1. 【c语言】C语言配置文件解析库——iniparser
  2. linux 下byte,char,unsigned char的区别
  3. 有没有将深度学习融入机器人领域的尝试?有哪些难点?
  4. flex Scroller
  5. python编码规范手册-Python官方竟然给出了一种编码规范PEP 8
  6. 十种排序算法的java汇总
  7. MySQL高级理论-MVCC提交查询相关(版本链)
  8. 这才是真正适合小白的教程:Python有什么用?数据化运营怎么做?
  9. [转]Postgres-XL 10r1英文文档
  10. Struts结合梅花雪实现动态生成树
  11. 阿里HR:你会使用selenium爬取工具? 某人:那不是随随便便吗,不止会用 还会爬取掘金小册呢!
  12. Python 自动化办公 —— PyPDF2 库的基本使用
  13. python ttk style_python – 关于使用ttk.Style()的问题?
  14. Mac 快速查找快捷键command+f失效解决办法
  15. python 多线程 XKCD 下载程序
  16. R语言 非参数检验:Mann-Whitney检验和Wilcoxon检验
  17. 使用Python自动遍历并删除扫描PDF中的空白页
  18. ROS机器人SLAM学习:Gazebo定位与导航自主仿真
  19. pytorch 支持amd显卡吗_2020-06-12 ubuntu系统下,pytorch安装
  20. MySQL中show命令用法大全

热门文章

  1. smb协议讲解_SMB协议(使用说明+过程详解+抓包分析)
  2. wpsmac和pc版的区别_Mac版WPS Office和微软Office 2019哪个更好?
  3. 聚类分析-K-means clustering 在生物信息学中的应用
  4. 线阵相机和面阵相机的区别
  5. 这是我的计算机房英语怎么写,小学英语人教(12版三起点)四年级下册Unit 1
  6. 考研计算机专业课961考什么,北航计算机考研(961)经验谈
  7. php微信个人号api,ItChat
  8. 机器学习十大算法(一)
  9. matlab不能radon变换,Radon变换的理解
  10. 使用python+selenium超级鹰破解图像识别验证码