这门课解决什么实际问题
在 Android 开发中,网络层往往是性能瓶颈与 Bug 的高发区。许多开发者习惯于直接引入 Retrofit 或 OkHttp 进行闭包式调用,一旦遇到大文件断点续传失败、缓存策略失效或复杂请求拦截等深层问题,便无从下手。本课程的价值不在于重复教人「怎么用库」,而在于带你穿透 API 表象,理解网络通信的底层逻辑与工程化设计思路。课程从 HTTP 协议本质切入,深入剖析 OkHttp3 的内部机制,涵盖同步异步模型、请求构建、参数传递及文件上传的多部分协议细节。更为关键的是,它系统讲解了生产环境中极为核心的缓存原理与多线程下载实现,涉及 Range、Content-Length 等关键字段的实战应用。这对于希望脱离「API 调用工程师」阶段、具备独立封装高可用网络模块能力的开发者而言,是一次扎实的底层补全。
适合人群与学完产出
本课程适合拥有 Android 开发基础、已掌握基本网络请求但缺乏底层原理认知的中级开发者。如果你从未接触过网络编程,建议先补齐 Java 或 Kotlin 基础及 HTTP 常识再进入学习。完成全部章节后,你将获得三项核心能力:首先,能够独立分析业务场景,选择最合适的网络框架而非盲目跟风;其次,能够基于 OkHttp3 手写从请求构建到缓存管理的全链路代码,彻底摆脱对注解反射的过度依赖;最后,具备设计与实现多线程断点下载模块的能力,解决弱网环境下的资源稳定拉取难题。这种能力在电商、音视频等大流量应用开发中具有直接产出价值,能显著提升你对网络层的掌控力与架构设计视野。
学习路径与资料用法
建议遵循「理论先行,代码落地」的顺序学习。前几章涉及协议与框架选型,重在建立比较思维,建议边看边梳理各框架的优劣势对比。进入 OkHttp3 详解部分时,务必跟随课程代码逐行编写,特别是同步异步切换、文件上传等实操环节,亲手调试才能深刻体会拦截器链的执行顺序与回调机制。对于缓存和多线程下载等高难度章节,切勿被动观看,建议先暂停视频,在草稿纸上推演缓存命中逻辑或多线程分片计算公式,再对照代码验证思路。资料包中的示例工程是理解原理的关键锚点,遇到理论卡点时,回到代码中观察请求头的构造细节与响应的处理流程,往往能获得最直观的解答,从而将知识真正转化为工程能力。
课程目录
第1章 课前须知 2 节 | 20分钟 1-1 课前须知 (10:23).mp4 1-2 如何更好的学习本课程? (08:43).mp4 第2章 主流网络框架分析 5 节 | 61分钟 2-1 常用网络框架介绍1 (13:41).mp4 2-2 常用网络框架介绍2 (12:54).mp4 2-3 okhttp和retrofit框架介绍 (17:19).mp4 2-4 选择一个开源框架的标准是什么? (06:11).mp4 2-5 okhttp hello world 编写 (10:17).mp4 第3章 http协议详解 3 节 | 52分钟 3-1 http 协议介绍和特点 (22:51).mp4 3-2 http 请求协议详解 (12:09).mp4 3-3 常见的请求头和响应头详细介绍 (16:05).mp4 第4章 okhttp3详解 12 节 | 147分钟 4-1 同步请求和异步请求 (07:21).mp4 4-2 请求头和响应头 (08:33).mp4 4-3 get请求之添加参数 (05:45).mp4 4-4 搭建post请求的服务 (12:00).mp4 4-5 post 请求传递参数 (12:33).mp4 4-6 martipart 协议分析-1 (12:16).mp4 4-7 martipart协议分析-2 (05:58).mp4 4-8 上传文件 (14:06).mp4 4-9 缓存原理 (23:37).mp4 4- 10 缓存机制 (11:27).mp4 4-11 缓存实现问题-1 (20:15).mp4 4-12 缓存实现问题-2 (12:09).mp4 第5章 多线程下载功能设计 7 节 | 96分钟 5-1 多线程下载文件的原理和在实际开发问题 (19:42).mp4 5-2 http 字段content-length、range、Transfer-Encoding chunked实践 (16:46).mp4 5-3 多线程下载准备工作-1 (04:46).mp4 5-4 多线程下载准备工作-2 (17:36).mp4 5-5 多线程下载网络请求实现-1 (08:54).mp4 5-6 多线程下载网络请求实现-2 (09:00).mp4 5-7 多线程下载核心实现 (18:50).mp4 第6章 多线程下载功能优化 12 节 | 143分钟 6-1 线程池原理和终止线程-1 (17:59).mp4 6-2 线程池原理和终止线程-2 (11:40).mp4 6-3 引入队列机制 (07:03).mp4 6-4 引入greendao (17:24).mp4 6-5 添加数据库支持-1 (13:28).mp4 6-6 添加数据库支持-2 (07:02).mp4 6-7 添加进度更新支持 (11:53).mp4 6-8 多线程优化 (06:43).mp4 6-9 单例模式 (10:13).mp4 6- 10 volatile 关键字 (16:11).mp4 6- 11 构建者模式 (19:36).mp4 6- 12 框架设计经验谈 (03:36).mp4 第7章 客户端设计 7 节 | 86分钟 7-1 httpheader 接口定义 (07:09).mp4 7-2 请求头和响应头编写 (13:31).mp4 7-3 状态码定义 (08:54).mp4 7-4 response封装 (14:39).mp4 7-5 request 封装 (17:50).mp4 7-6 测试case编写 (05:59).mp4 7-7 工厂模式封装httpRequest (17:29).mp4 第8章 框架拓展设计 4 节 | 80分钟 8-1 支持原生的HttpUrlConnection方式请求和响应 (18:56).mp4 8-2 业务层多线程分发处理 (18:52).mp4 8-3 请求成功移除处理 (19:03).mp4 8-4 请求成功类型转换包装处理 (22:42).mp4 第9章 网络框架重构 8 节 | 88分钟 9-1 框架重构与升级介绍 (02:44).mp4 9-2 retrofit网络框架原理分析 (09:53).mp4 9-3 重构response和request对象 (13:07).mp4 9-4 重构网络请求过程 (17:04).mp4 9-5 网络请求功能-单元测试 (05:20).mp4 9-6 NiceClient封装 (13:00).mp4 9-7 Java动态代理讲解-1 (19:03).mp4 9-8 Java动态代理讲解-2 (07:04).mp4 第10章 网络框架注解功能设计与实现 9 节 | 67分钟 10-1 框架注解定义 (04:27).mp4 10-2 框架注解处理-1 (16:55).mp4 10-3 框架注解处理-2 (07:08).mp4 10-4 支持http header的设置 (02:15).mp4 10-5 处理Query、QueryMap、Path等注解 (09:05).mp4 10-6 处理FieldMap注解 (03:56).mp4 10-7 实现发送对象到服务器功能-1 (05:29).mp4 10-8 实现发送对象到服务器功能-2 (11:46).mp4 10-9 实现发送对象到服务器功能-3 (05:41).mp4 第11章 错误码和重连功能设计与实现 4 节 | 40分钟 11-1 http 重试功能代码编写-1 (11:10).mp4 11-2 http 重试功能代码编写-2 (08:26).mp4 11-3 错误码的处理-1 (09:48).mp4 11-4 错误码的处理-2 (10:13).mp4 第12章 https功能设计与实现 8 节 | 81分钟 12-1 https内容介绍.mp4 (05:43) 12-2 加密知识讲解-1 (08:24).mp4 12-3 加密知识讲解-2 (10:31).mp4 12-4 https原理讲解什么是单向认证什么是双向认证 (13:29).mp4 12-5 node.js搭建https测试server (12:32).mp4 12-6 客户端访问https网站 (11:37).mp4 12-7 java 实现单向认证 (08:34).mp4 12-8 NiceClient集成https功能 (09:56).mp4 第13章 httpDns功能设计与实现 7 节 | 81分钟 13-1 dns 案例讲解 (10:13).mp4 13-2 httpdns常见的实现方案和使用过程中遇到的问题 (10:19).mp4 13-3 高度抽象httpclient封装-1 (08:32).mp4 13-4 高度抽象httpclient封装-2 (11:28).mp4 13-5 实现HttpUrlConnenct封装 (11:11).mp4 13-6 httpdns功能代码实现 (16:47).mp4 13-7 在使用httpDns可能遇到一些问题 (11:34).mp4 第14章 支持RxJava及课程总结 2 节 | 14分钟 14-1 支持rxjava (06:32).mp4 14-2 总结回顾 (06:29).mp4






