Android聊天软件的开发
转载注明出处: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聊天软件的开发相关推荐
- Android聊天软件的开发(七)--聊天通信
聊天通信通过Socket实现,大概的框架如下图: 通信流程: 1.服务器在启动时开启聊天服务线程 可以通过ServletContextListener监听Servlet的初始化和销毁,来开启和关闭聊天 ...
- Android聊天软件的开发--聊天通信
Android聊天软件的开发(七)--聊天通信 2014-06-20 23:17:49CSDN-vaintwyt-点击数:338 聊天通信通过Socket实现,大概的框架如下图: 通信流程: 1.服 ...
- Android聊天软件的开发(二)--数据库
一,服务器数据库 服务器端的数据库是MySQL,使用Hibernate实现数据的增删改查.主要存储的数据有:用户信息,好友列表. 其中,好友列表中的friend_list ...
- Android聊天软件的开发(四)--通讯录
一,好友排序 好友排序是按照昵称拼音进行A-Z排序.效果如下图: 对好友昵称进行排序,需要先将首字转换为ASCII码,然后根据ASCII码得到对应的拼音,最后根据拼音进行A-Z排序.点 ...
- Android聊天软件的开发(三)--网络连接
一,服务器网络接口 服务器网络接口通过Servlet实现,可以获得客户端提交的数据,对数据进行查询存储操作,以及返回结果数据给客户端.客户端可以通过HTTP协议直接访问网络接口. HTTP ...
- Android聊天软件的开发(六)--表情
表情用于聊天对话的输入,实现的原理主要是:在EditText或TextView中,使用SpannableString,将特定字符串替换为图片. 首先,我们可以规定,表情的字符串为[**],图片名称为s ...
- Android聊天软件界面开发
聊天软件界面开发 前言: 这是开始学习Android的开发的第5天,一直是跟着郭霖大师的第一行代码学习, 这里边发篇博文记录,边帮自己整理下思路,毕竟思路 ...
- 开发简单Android聊天软件(1)
总体介绍 开篇 大概思路 一. 客户端主要依赖 二.包引用完成后,创建wsClient类. 三.连接成功后,就可以在对于业务逻辑调用以下方法开始发送消息 开篇 本人是一位开发新人,将自己的开发学习过程 ...
- 开发简单Android聊天软件(7)
构建离线消息获取流程 在 "开发简单Android聊天软件(6)" 中,完成了完成消息接收和加载,构建一个完整的聊天流程. 但是我们只完成了一半,完成存量历史记录展示,和即时聊天的 ...
- 开发简单Android聊天软件(6)
构建完整消息接收加载流程 在 "开发简单Android聊天软件(5)" 中,完成了会话窗口的绘制,以及消息发送.现在我们来完成消息接收和加载,构建一个完整的聊天流程. 消息加载,那 ...
最新文章
- 【c语言】C语言配置文件解析库——iniparser
- linux 下byte,char,unsigned char的区别
- 有没有将深度学习融入机器人领域的尝试?有哪些难点?
- flex Scroller
- python编码规范手册-Python官方竟然给出了一种编码规范PEP 8
- 十种排序算法的java汇总
- MySQL高级理论-MVCC提交查询相关(版本链)
- 这才是真正适合小白的教程:Python有什么用?数据化运营怎么做?
- [转]Postgres-XL 10r1英文文档
- Struts结合梅花雪实现动态生成树
- 阿里HR:你会使用selenium爬取工具? 某人:那不是随随便便吗,不止会用 还会爬取掘金小册呢!
- Python 自动化办公 —— PyPDF2 库的基本使用
- python ttk style_python – 关于使用ttk.Style()的问题?
- Mac 快速查找快捷键command+f失效解决办法
- python 多线程 XKCD 下载程序
- R语言 非参数检验:Mann-Whitney检验和Wilcoxon检验
- 使用Python自动遍历并删除扫描PDF中的空白页
- ROS机器人SLAM学习:Gazebo定位与导航自主仿真
- pytorch 支持amd显卡吗_2020-06-12 ubuntu系统下,pytorch安装
- MySQL中show命令用法大全
热门文章
- smb协议讲解_SMB协议(使用说明+过程详解+抓包分析)
- wpsmac和pc版的区别_Mac版WPS Office和微软Office 2019哪个更好?
- 聚类分析-K-means clustering 在生物信息学中的应用
- 线阵相机和面阵相机的区别
- 这是我的计算机房英语怎么写,小学英语人教(12版三起点)四年级下册Unit 1
- 考研计算机专业课961考什么,北航计算机考研(961)经验谈
- php微信个人号api,ItChat
- 机器学习十大算法(一)
- matlab不能radon变换,Radon变换的理解
- 使用python+selenium超级鹰破解图像识别验证码