课程定位与核心价值

即时通讯功能是各类互联网应用的底层基础设施,但很多开发者停留在调用第三方 SDK 的层面,缺乏对底层协议和架构设计的深入理解。这门课的核心价值在于还原一个完整 IM App 的工程化开发过程,涵盖从服务器端架构选型、数据库设计到 Android 客户端 MVP 模式落地的全链路。它解决的是“如何从零搭建一个可运营、高可用的即时通讯系统”这一实际工作场景问题,而非仅仅实现一个简单的聊天界面。对于希望突破技术瓶颈、掌握实时通信核心原理的前后端工程师来说,这是从“ CRUD 程序员”向“系统架构师”转型的实战案例。

准入门槛与学习路径

本课程适合具备 Android 基础开发能力的学员,要求熟悉 Java 或 Kotlin 语法,了解基本的网络请求、多线程及 SQLite 数据库操作。若对 MVC 架构熟悉,课程中专门讲解 MVP 与 MVC 差异的章节将帮助你快速完成思维转换,避免后续开发中出现视图层与业务逻辑耦合混乱的问题。

建议遵循以下严谨路径:第一步,务必精读第 1 章的学习指南,重点掌握 IM 四大协议(如 MQTT、XMPP 等)的特性及选型依据,这是后续所有代码实现的理论基石;第二步,在第 2 章完成推送平台(如极光、个推)及 OSS 存储的配置,理解消息透传与富媒体存储的底层机制;第三步,进入第 3 章项目搭建,先导入并梳理服务器端代码逻辑,再构建客户端基础框架,特别是要透彻理解 Restful 接口的设计思路;第四步,在第 4 章进行高频次的组件封装练习,包括 Activity、Fragment 及 RecyclerView 的高阶封装,这是提升代码复用率和项目健壮性的关键阶段。

学完产出与资料使用方法

学完本课程后,你将能够独立主导开发具备单聊、群聊、消息推送及后台管理功能的即时通讯应用。你将熟练掌握 MVP 架构在复杂业务场景中的分层与解耦技巧,并能独立处理长连接维持、消息同步及异常重试等核心工程难题。

资料包中包含的 350+ 问题与答案库并非简单的题库,而是针对开发过程中可能遇到的坑点所做的经验总结。建议在完成每一章节的编码练习后,对照这些问题进行自我检测,强化对协议选型和架构设计的记忆。切勿只看不练,特别是基础模块封装部分,必须亲手编写代码以实现主界面布局和导航栏交互,只有将这些通用组件内化为自己的工具库,才能在未来的工作中真正高效复用。

课程目录

第1章 学习指南【课程提供350+问题与答案库】 试看 4 节 | 40分钟 1-1 课程概述 (13:21).mp4
 1-2 入门须知 (12:24).mp4
 1-3 IM四大协议 (06:38).mp4
 1-4 实现方案与选型 (06:56).mp4
 第2章 推送和存储平台准备 3 节 | 24分钟 2-1 第三方平台对比选型及注意事项 (09:18).mp4
 2-2 推送平台相关配置工作 (03:56).mp4
 2-3 OSS存储相关配置工作 (10:06).mp4
 第3章 项目前后端项目搭建与准备 

10 节 | 203分钟 3-1 服务器端代码导入与介绍 (28:42).mp4
 3-2 新建项目与数据库配置 (21:58).mp4
 3-3 完成第一个Restful接口 (17:59).mp4
 3-4 客户端代码介绍与导入指南 (15:19).mp4
 3-5 客户端封装Activity和Fragment-1 (24:17).mp4
 3-6 客户端封装Activity和Fragment-2 (17:49).mp4
 3-7 客户端封装Recycler-1 (27:28).mp4
 3-8 客户端封装Recycler-2 (24:54).mp4
 3-9 初次体验MVP模式开发 (24:26).mp4
 3-10 MVP与MVC差异究竟在哪儿?.mp4
 第4章 客户端基础模块封装 试看 

29 节 | 462分钟 4-1 主界面搭建外层封装-1 (14:34).mp4
 4-2 主界面搭建外层封装-2 (17:03).mp4
 4-3 主界面搭建外层封装-3 (16:00).mp4
 4-4 主界面搭建外层封装-4 (13:06).mp4
 4-5 主界面搭建外层封装-5 (14:29).mp4
 4-6 主界面底部导航栏封装-1 (16:30).mp4
 4-7 主界面底部导航栏封装-2 (13:28).mp4
 4-8 主界面底部导航栏封装-3 (12:55).mp4
 4-9 主界面底部导航栏封装-4 (18:45).mp4
 4-10 主界面底部导航栏封装-5 (18:05).mp4
 4-11 主界面底部导航栏封装-6 (26:32).mp4
 4-12 图片选择器功能实现-1 (22:44).mp4
 4-13 图片选择器功能实现-2 (28:13).mp4
 4-14 图片选择器功能实现-3 (20:24).mp4
 4-15 图片选择器功能实现-4 (16:39).mp4
 4-16 图片剪切功能实现-1 (15:09).mp4
 4-17 图片剪切功能实现-2 (12:22).mp4
 4-18 图片剪切功能实现-3 (11:49).mp4
 4-19 图片剪切功能实现-4 (13:56).mp4
 4-20 图片剪切功能实现-5 (12:15).mp4
 4-21 图片上传功能实现-1 (16:46).mp4
 4-22 图片上传功能实现-2 (16:04).mp4
 4-23 图片上传功能实现-3 (13:26).mp4
 4-24 图片上传功能实现-4 (10:42).mp4
 4-25 图片上传功能实现-5 (11:08).mp4
 4-26 图片上传功能实现-6 (11:05).mp4
 4-27 图片上传功能实现-7 (13:49).mp4
 4-28 图片上传功能实现-8 (22:27).mp4
 4-29 图片上传功能实现-9 (10:57).mp4
 第5章 项目数据库模型设计 试看 9 节 | 126分钟 5-1 用户信息模型设计 (21:59).mp4
 5-2 人与人的关系设计-1 (12:57).mp4
 5-3 人与人的关系设计-2 (15:07).mp4
 5-4 消息的模型设计 (10:37).mp4
 5-5 用户和消息的关系 (13:17).mp4
 5-6 群组模型设计 (05:59).mp4
 5-7 用户-群组-消息的关系设计 (19:29).mp4
 5-8 消息历史与申请表设计 (26:32).mp4
 5-9 数据库模型的设计是否有其必要性?.mp4
 第6章 用户模块的开发 

36 节 | 559分钟 6-1 后台注册接口编写-1 (11:27).mp4
 6-2 后台注册接口编写-2 (13:08).mp4
 6-3 后台注册接口编写-3 (17:11).mp4
 6-4 后台注册接口编写-4 (18:15).mp4
 6-5 后台登录接口编写-1 (16:54).mp4
 6-6 后台登录接口编写-2 (16:49).mp4
 6-7 后台登录接口编写-3 (08:31).mp4
 6-8 后台登录接口编写-4 (16:46).mp4
 6-9 后台登录接口编写-5 (12:49).mp4
 6-10 后台更新用户信息接口编写-1 (21:04).mp4
 6-11 后台更新用户信息接口编写-2 (22:50).mp4
 6-12 客户端注册功能实现-1 (11:59).mp4
 6-13 客户端注册功能实现-2 (16:57).mp4
 6-14 客户端注册功能实现-3 (17:31).mp4
 6-15 客户端注册功能实现-4 (14:24).mp4
 6-16 客户端注册功能实现-5 (14:04).mp4
 6-17 客户端注册功能实现-6 (26:30).mp4
 6-18 客户端注册功能实现-7 (13:16).mp4
 6-19 客户端注册功能实现-8 (11:57).mp4
 6-20 客户端注册功能实现-9 (24:38).mp4
 6-21 客户端注册功能实现-10 (16:19).mp4
 6-22 客户端登录功能实现-1 (16:46).mp4
 6-23 客户端登录功能实现-2 (18:09).mp4
 6-24 客户端登录功能实现-3 (14:23).mp4
 6-25 客户端登录功能实现-4 (11:54).mp4
 6-26 客户端登录功能实现-5 (16:09).mp4
 6-27 客户端登录功能实现-6 (15:39).mp4
 6-28 客户端登录功能实现-7 (19:24).mp4
 6-29 客户端登录功能实现-8 (18:50).mp4
 6-30 客户端用户信息完善功能实现-1 (14:26).mp4
 6-31 客户端用户信息完善功能实现-2 (10:32).mp4
 6-32 客户端用户信息完善功能实现-3 (10:02).mp4
 6-33 客户端用户信息完善功能实现-4 (15:01).mp4
 6-34 客户端用户信息完善功能实现-5 (14:27).mp4
 6-35 客户端用户信息完善功能实现-6 (08:01).mp4
 6-36 客户端用户信息完善功能实现-7 (11:16).mp4
 第7章 好友新增与管理功能实现 

19 节 | 335分钟 7-1 服务器联系人和关注人接口实现-1 (10:25).mp4
 7-2 服务器联系人和关注人接口实现-2 (09:38).mp4
 7-3 服务器联系人和关注人接口实现-1 (10:22).mp4
 7-4 服务器联系人和关注人接口实现-2 (08:40).mp4
 7-5 服务器搜索人和用户信息接口实现-1 (19:36).mp4
 7-6 服务器搜索人和用户信息接口实现-2 (14:36).mp4
 7-7 客户端实现搜索人功能-1 (19:16).mp4
 7-8 客户端实现搜索人功能-2 (15:57).mp4
 7-9 客户端实现搜索人功能-1 (17:37).mp4
 7-10 客户端实现搜索人功能-2 (18:03).mp4
 7-

11 客户端实现搜索人功能 (15:58).mp4
 7-

12 客户端实现添加联系人功能 (22:59).mp4
 7-

13 客户端实现联系人列表功能 (30:11).mp4
 7-

14 客户端实现联系人列表功能 (24:09).mp4
 7-15 客户端实现联系人列表功能-1 (15:11).mp4
 7-16 客户端实现联系人列表功能-2 (15:05).mp4
 7-17 客户端实现联系人列表功能-3 (18:34).mp4
 7-18 客户端实现个人信息界面-1 (16:06).mp4
 7-19 客户端实现个人信息界面-2 (31:29).mp4
 第8章 客户端数据操作难点与解决方案 

20 节 | 304分钟 8-1 浅析数据流封装的难点与必要性 (19:34).mp4
 8-2 客户端数据流封装-统一的写入-1 (11:03).mp4
 8-3 客户端数据流封装-统一的写入-2 (08:32).mp4
 8-4 客户端数据流封装-统一的写入-3 (17:53).mp4
 8-5 客户端数据流封装-统一的写入-1 (13:04).mp4
 8-6 客户端数据流封装-统一的写入-2 (12:19).mp4
 8-7 客户端数据流封装-统一通知-1 (15:24).mp4
 8-8 客户端数据流封装-统一通知-2 (14:36).mp4
 8-9 客户端数据流封装-统一通知-1 (12:37).mp4
 8-10 客户端数据流封装-统一通知-2 (12:13).mp4
 8-11 客户端数据流封装-统一通知-1 (19:57).mp4
 8-12 客户端数据流封装-统一通知-2 (21:30).mp4
 8-

13 客户端数据流封装 -统一通知-1 (15:53).mp4
 8-

14 客户端数据流封装- 统一通知-2 (15:57).mp4
 8-15 -客户端数据流封装-统一通知-1 (19:27).mp4
 8-16 -客户端数据流封装-统一通知-2 (19:31).mp4
 8-17 数据流封装-推送消息处理-1 (21:23).mp4
 8-18 数据流封装-推送消息处理-2 (18:43).mp4
 8-

19 数据流封装-推送消息处理 (14:13).mp4
 8-20 在数据流封装过程中你学到了什么?.mp4
 第9章 聊天之单聊功能开发 

30 节 | 388分钟 9-1 服务器新增消息发送接口-1 (18:20).mp4
 9-2 服务器新增消息发送接口-2 (15:44).mp4
 9-3 服务器新增消息发送接口-推送测试 (06:59).mp4
 9-4 服务器新增消息发送接口-添加接口-1 (14:03).mp4
 9-5 服务器新增消息发送接口-添加接口-2 (14:42).mp4
 9-6 服务器对消息推送与未读消息的封装-1 (16:55).mp4
 9-7 服务器对消息推送与未读消息的封装-2 (21:32).mp4
 9-8 手机端聊天布局实现-1 (10:42).mp4
 9-9 手机端聊天布局实现-2 (09:11).mp4
 9-10 手机端聊天布局实现-1 (08:15).mp4
 9-11 手机端聊天布局实现-2 (08:21).mp4
 9-12 手机端聊天布局实现-3 (14:07).mp4
 9-13 手机端聊天布局实现-4 (14:30).mp4
 9-14 手机端聊天布局实现-5 (14:12).mp4
 9-15 客户端独立Cell模块实现-1 (13:20).mp4
 9-16 客户端独立Cell模块实现-2 (13:36).mp4
 9-17 客户端独立Cell模块实现-3 (12:01).mp4
 9-18 客户端独立Cell模块实现-4 (11:54).mp4
 9-19 客户端发送消息功能实现-1 (11:55).mp4
 9-20 客户端发送消息功能实现-2 (11:58).mp4
 9-21 客户端发送消息功能实现-3 (10:41).mp4
 9-22 客户端发送消息功能实现-4 (10:37).mp4
 9-23 客户端发送消息功能实现-5 (14:53).mp4
 9-24 客户端发送消息功能实现-6 (11:13).mp4
 9-25 客户端发送消息功能实现-7 (12:50).mp4
 9-26 客户端发送消息功能实现-8 (13:14).mp4
 9-27 客户端本地最近会话功能实现-1 (10:15).mp4
 9-28 客户端本地最近会话功能实现-2 (10:10).mp4
 9-29 客户端本地最近会话功能实现-3 (15:21).mp4
 9-30 客户端本地最近会话功能实现-4 (15:30).mp4
 第10章 群组聊天之准备事项 

22 节 | 283分钟 10-1 服务器群组相关接口引入与介绍-1 (13:47).mp4
 10-2 服务器群组相关接口引入与介绍-2 (16:05).mp4
 10-3 实现群组主要接口-新增群-1 (15:05).mp4
 10-4 实现群组主要接口-新增群-2 (16:00).mp4
 10-5 实现群组主要接口-搜索、列表、群信息-1 (08:09).mp4
 10-6 实现群组主要接口-搜索、列表、群信息-2 (10:07).mp4
 10-7 实现拉取群成员和新增群成员的接口-1 (14:01).mp4
 10-8 实现拉取群成员和新增群成员的接口-2 (14:53).mp4
 10-9 完善服务器推送的模块-1 (14:09).mp4
 10-10 完善服务器推送的模块-2 (15:36).mp4
 10-11 手机端创建群界面实现-界面布局-1 (13:58).mp4
 10-12 手机端创建群界面实现-界面布局-2 (13:23).mp4
 10-13 手机端创建群界面实现-加载可选人-1 (09:39).mp4
 10-14 手机端创建群界面实现-加载可选人-2 (08:30).mp4
 10-15 手机端创建群界面实现-完善新建逻辑-1 (13:36).mp4
 10-16 手机端创建群界面实现-完善新建逻辑-2 (13:49).mp4
 10-17 手机端搜索群功能实现-1 (08:57).mp4
 10-18 手机端搜索群功能实现-2 (11:11).mp4
 10-19 手机端我的群组功能实现-主体流程-1 (15:00).mp4
 10-20 手机端我的群组功能实现-主体流程-2 (15:28).mp4
 10-21 手机端我的群组功能实现-群成员信息-1 (06:47).mp4
 10-22 手机端我的群组功能实现-群成员信息-2 (14:09).mp4
 第11章 群组聊天之发送消息 

10 节 | 127分钟 11-1 群组与个人聊天界面复用性调整-1 (18:05).mp4
 11-2 群组与个人聊天界面复用性调整-2 (12:15).mp4
 11-3 完善群组聊天的所有逻辑-完善界面-1 (16:26).mp4
 11-4 完善群组聊天的所有逻辑-完善界面-2 (16:35).mp4
 11-5 完善群组聊天的所有逻辑-完善逻辑 (09:19).mp4
 11-6 群组成员列表界面完成-1 (11:58).mp4
 11-7 群组成员列表界面完成-2 (13:10).mp4
 11-8 聊天界面底部面板显示切换功能实现-1 (16:09).mp4
 11-9 聊天界面底部面板显示切换功能实现-2 (12:11).mp4
 11-10 群组消息与个人消息的本质区别在哪儿?.mp4
 第12章 聊天扩展之发送表情 8 节 | 111分钟 12-1 表情解决方案与项目资源导入 (11:01).mp4
 12-2 表情盘基础界面组件搭建-1 (15:10).mp4
 12-3 表情盘基础界面组件搭建-2 (14:21).mp4
 12-4 表情盘布局及表情资源解析显示-1 (15:03).mp4
 12-5 表情盘布局及表情资源解析显示-2 (15:21).mp4
 12-6 表情盘布局及表情资源解析显示 (16:32).mp4
 12-7 表情解析并显示的解决方案-1 (11:49).mp4
 12-8 表情解析并显示的解决方案-2 (11:14).mp4
 第13章 聊天扩展之发送图片 4 节 | 43分钟 13-1 图片面板及聊天界面Cell完成-1 (10:26).mp4
 13-2 图片面板及聊天界面Cell完成-2 (09:05).mp4
 13-3 图片上传服务器与图片压缩实现-1 (12:16).mp4
 13-4 图片上传服务器与图片压缩实现-2 (10:44).mp4
 第14章 聊天扩展之语音聊天 6 节 | 75分钟 14-1 语音录制的介绍及面板的实现 (17:41).mp4
 14-2 语音聊天发送与列表显示实现 (16:20).mp4
 14-3 语音下载与播放的调度实现-1 (10:57).mp4
 14-4 语音下载与播放的调度实现-2 (11:17).mp4
 14-5 语音下载与播放的调度实现 (17:46).mp4
 14-6 如何扩展音频视频聊天?.mp4
 第15章 慕聊IM项目总结 3 节 | 39分钟 15-1 项目相关知识点总结 (14:19).mp4
 15-2 项目完善与展望-1 (11:55).mp4
 15-3 项目完善与展望-2 (12:13).mp4