这门课解决什么问题

很多做 Android 开发的人,写过几个页面、调过几个接口,但一碰到“长连接、消息推送、实时聊天”这类需求就卡壳。HTTP 轮询太耗电,自己从零写一套 Socket 协议又容易在断线重连、消息顺序上踩坑。这门课聚焦的场景很明确:用 XMPP 协议搭一个能跑起来的 Android 聊天客户端。它不教你怎么写一个完整的 IM 平台,而是带你从零接 Openfire 服务器,用 asmack 库把登录、会话、消息收发这条主线打通。如果你手头正好有社交、客服、企业内部通讯类的项目要做,或者想补上长连接通信这块短板,这门课能直接帮你把架子搭起来。

适合什么基础,学完能独立做什么

这门课不适合完全没碰过 Android 的人。默认你已经能独立写界面、懂 Activity 生命周期、会基本的网络请求。在这个基础上,它补的是协议和长连接这一块。资料里包含了 Windows 和 Mac OS 两个环境下的 Openfire、Spark 安装演示,说明它对开发环境是做了区分的,不会让你在搭服务器这步卡死。学完之后,你应该能独立做这几件事:在本地或服务器上部署一套 Openfire 实例;用 asmack 连上服务器完成用户登录;建立会话并收发文本消息;理解 XMPP 的 stanza 结构,知道怎么扩展自定义消息体。简单说,就是给你一个能用的 IM 客户端雏形,后续要加头像、群聊、离线消息,你至少知道往哪个方向查资料。

建议怎么看,资料怎么配合练习

建议别一上来就跳到登录代码。先把前面几节简介和功能演示看完,对 XMPP 协议和最终要做成什么样有个整体印象,再看 Openfire 的安装。服务器搭好、能用 Spark 测通之后,再开始跟代码。资料里的工程结构简介那节值得反复看,因为 asmack 的依赖和工程配置在不同版本 Android Studio 下容易出问题,先搞清楚结构能省掉很多编译报错的时间。练习时建议这样配合:一边看登录窗口的实现,一边自己建一个空工程跟着敲,不要直接拿源码跑。自己写一遍布局、自己连一次服务器,遇到连接失败先看 Openfire 后台日志,再看客户端异常。这种长连接的调试习惯,比单纯把课里的代码跑通更重要。


本课程将让读者学习Openfire的设置方法,以及如何使用asmack开发基于XMPP的Android聊天客户端。

课程目录

*   01 Android聊天客户端简介/

  *   01 XMPP简介.mp4 14:54

  *   02 基于XMPP的Android聊天客户端功能演示.mp4 09:29

  *   03 OpenFire和Spark的安装和使用(Windows版).mp4 13:57

  *   04 OpenFire和Spark的安装和使用(Mac OS X版).mp4 03:05

  *   05 ASpark工程结构简介.mp4 05:42

  *   06 开发前的准备工作.mp4 11:50

*   02 用户登录/

  *   01 登录功能实现(1):创建登录窗口.mp4 09:06

  *   02 登录功能实现(2):登录界面布局.mp4 26:36

  *   03 登录功能实现(3):连接聊天服务器.mp4 08:59

  *   04 登录功能实现(4):存储登录信息.mp4 13:05

  *   05 登录功能实现(5):登录聊天服务器.mp4 15:10

  *   06 登录功能实现(6):存取登录信息.mp4 24:12

*   03 用户注册/

  *   01 用户注册(1):准备工作.mp4 07:46

  *   02 用户注册(2):校验用户输入的信息.mp4 08:29

  *   03 用户注册功能实现(3):注册新用户.mp4 19:41

  *   04 用户注册功能实现(4):可能的内存泄露.mp4 11:06

*   04 好友信息/

  *   01 好友列表界面功能实现(1):添加好友【1】.mp4 07:35

  *   02 好友列表界面功能实现(2):添加好友【2】.mp4 07:56

  *   03 好友列表界面功能实现(3):显示好友信息【1】.mp4 10:32

  *   04 好友列表界面功能实现(4):显示好友信息【2】.mp4 11:16

  *   05 好友列表界面功能实现(5):显示好友信息【3】.mp4 07:08

*   05 点对点聊天/

  *   01 聊天功能实现(1):显示聊天窗口.mp4 07:08

  *   02 聊天功能实现(2):准备工作.mp4 06:35

  *   03 聊天功能实现(3):发送文本聊天消息.mp4 08:26

  *   04 聊天功能实现(4):接收聊天消息.mp4 07:58

  *   05 点对点聊天功能实现(5):显示聊天记录的基础理论.mp4 07:28

  *   06 点对点聊天功能实现(6):ChatListAdapter实现【1】.mp4 05:12

  *   07 点对点聊天功能实现(7):ChatListAdapter实现【2】.mp4 12:53

  *   08 点对点聊天功能实现(8):显示发送的聊天记录.mp4 05:19

  *   09 点对点聊天功能实现(9):显示接收的聊天记录.mp4 05:32

  *   10 点对点聊天功能实现(10):自动呼出聊天窗口【1】.mp4 15:06

  *   11 点对点聊天功能实现(11):自动呼出聊天窗口【2】.mp4 04:03

*   06 表情/

  *   01 表情功能实现(1):准备工作.mp4 05:03

  *   02 表情功能实现(2):根据资源名获取资源ID.mp4 04:29

  *   03 表情功能实现(3):实现FaceListAdapter【1】.mp4 05:32

  *   04 表情功能实现(4):实现FaceListAdapter【2】.mp4 05:15

  *   05 表情功能实现(5):实现FaceListAdapter【3】.mp4 03:35

  *   06 表情功能实现(6):显示表情图像.mp4 05:07

  *   07 表情功能实现(8):将TextView中的文本更新成表情图像.mp4 12:28

  *   08 表情功能实现(7):在EditText中插入表情图像.mp4 21:30

*   07 群聊/

  *   01 群聊功能实现(1):准备工作.mp4 06:01

  *   02 群聊功能实现(2):编写ChatServiceListAdapter类.mp4 09:35

  *   03 群聊功能实现(3):显示聊天服务.mp4 06:27

  *   04 群聊功能实现(4):显示聊天室【1】.mp4 06:32

  *   05 群聊功能实现(5):显示聊天室【2】.mp4 08:43

  *   06 群聊功能实现(6):显示聊天室【3】.mp4 06:01

  *   07 群聊功能实现(7):创建新的聊天室.mp4 15:49

  *   08 群聊功能实现(8):刷新聊天室列表.mp4 05:53

  *   09 群聊功能实现(9):发送和接收群聊消息.mp4 06:07

*   08 其他功能/

  *   01 注销当前用户.mp4 05:20

  *   02 删除好友.mp4 03:17