1.简要介绍

2.项目展示

废话不多说了,直接上图吧

android 简单聊天系统 基于android的聊天系统_android

3.项目功能介绍

(1)其中一个用户开启热点,不需要数据连接,其他用户连接热点后即组成局域网,实现在局域网内的聊天消息的发送接收;
    (2)同时实现文件的传输,由双方选择接收或者拒绝;

4.项目原理分析

后面给了上传的Github源码地址,在这里就大体上介绍一下。原理前面也提过,就是开热点组局域网,同时使用了UDP和TCP协议的相关内容,所以本项目也是学习TCP和UDP的好例子。

android 简单聊天系统 基于android的聊天系统_android 简单聊天系统_02

当然了这不是重点,最漂亮的地方在于所有的消息或者文件传输使用了一个自定义协议,使得整个流程就很自然。学习计算机网络的时候听了很多协议,但这次真实见到了才明白协议是什么样子,可能是笔者水平有限的缘故吧。看源码的时候就会发现,代码虽然长,看的时候却不费力,这也说明一点,当代码写的别人一看就懂,很容易找到清晰的思路,才说明了水平,而不是写出隔几天自己都不认识的代码,扯远了。看个图吧

android 简单聊天系统 基于android的聊天系统_android 简单聊天系统_03

关于网络消息处理部分,单独写了一个抽象的BaseActivity类,所有用到该功能的Activity都必须继承自该类,看起来很清晰明了,确实不这样用的话就会出现大量重复代码,完全没有必要,如图。

android 简单聊天系统 基于android的聊天系统_android 简单聊天系统_04

最后说一点笔者的体会,有两点尤为重要:(1)写一个稍微大点的项目时,做好项目结构的划分,提前理清框架尤为重要,对于很多常用到的功能就应该使用写成子类,本项目里面关于网络部分就单独写了一个抽象BaseActivity类,让笔者受益颇深;(2)另外对于想在一个稍大的项目添加新的功能时,最好单独建一个项目,做一个demo测试,完善后再加入项目,否则代码量大了就会让查错误复杂起来。

5.源码