Android架构师之路 网络层架构设计与实战 基于okhttp3
【课程介绍】这是一门面向Android中高级工程师、初级架构师的网络层架构设计课程,采用Retrofit网络框架的设计思路,从底层开始设计与实现一个全新的、功能强大的网络框架,支持多线程下载、GreenDao、RxJava、https、dns、注解、重连与错误处理等,具有非常强的通用性和代表性
【课程目录】
- 第1章 课前须知介绍如何去学习,课程适合的人群、怎么才能融会贯通
- 1-1 课前须知
- 1-2 如何更好的学习本课程?
- 第2章 主流网络框架分析常用网络框架介绍,分析volley 、Android-async-http、Afinal框架、xUtils、okhttp、retrofit、优有点缺点、教会选择一个框架的标准是什么?
- 2-1 常用网络框架介绍1
- 2-2 常用网络框架介绍2
- 2-3 okhttp和retrofit框架介绍
- 2-4 选择一个开源框架的标准是什么?
- 2-5 okhttp hello world 编写
- 第3章 http协议详解介绍http1.0、1.1 2.0版本和spdy协议、示例讲解请求头的应用场景、响应头的种类划分、缓存相关字段等。
- 3-1 http 协议介绍和特点
- 3-2 http 请求协议详解
- 3-3 常见的请求头和响应头详细介绍
- 第4章 okhttp3详解讲解使用 okhttp3发送同步请求异步请求 get/post/上传文件/ 支持缓存、 http协议缓存实现的原理
- 4-1 同步请求和异步请求
- 4-2 请求头和响应头
- 4-3 get请求之添加参数
- 4-4 搭建post请求的服务
- 4-5 post 请求传递参数
- 4-6 martipart 协议分析-1
- 4-7 martipart协议分析-2
- 4-8 上传文件
- 4-9 缓存原理
- 4-10 缓存机制
- 4-11 缓存实现问题-1
- 4-12 缓存实现问题-2
- 第5章 多线程下载功能设计本章讲解框架搭建,下载框架是解决的几个关键问题,与下载相关的字段示例、编写框架的核心代码、多线程使用原理。
- 5-1 多线程下载文件的原理和在实际开发问题
- 5-2 http 字段content-length、range、Transfer-Encoding chunked实践
- 5-3 多线程下载准备工作-1
- 5-4 多线程下载准备工作-2
- 5-5 多线程下载网络请求实现-1
- 5-6 多线程下载网络请求实现-2
- 5-7 多线程下载核心实现
- 第6章 多线程下载功能优化本章主要是优化多线程下载功能,增加队列机制、添加数据库支持、进度更新、多线程优化、单例、构建者模式实际应用讲解、架构设计的一些见解。
- 6-1 线程池原理和终止线程-1
- 6-2 线程池原理和终止线程-2
- 6-3 引入队列机制
- 6-4 引入greendao
- 6-5 添加数据库支持-1
- 6-6 添加数据库支持-2
- 6-7 添加进度更新支持
- 6-8 多线程优化
- 6-9 单例模式
- 6-10 volatile 关键字
- 6-11 构建者模式
- 6-12 框架设计经验谈
- 第7章 客户端设计本章开始对框架的 header进行封装、对状态码定义 request进行封装 、对response进行封装,且对抽象的工厂模式进行实际应用并编写测试用例测试核心架构的功能
- 7-1 httpheader 接口定义
- 7-2 请求头和响应头编写
- 7-3 状态码定义
- 7-4 response封装
- 7-5 request 封装
- 7-6 测试case编写
- 7-7 工厂模式封装httpRequest
- 第8章 框架拓展设计本章开始拓展支持原生HttpURLConnection 实现网络请求、增加请求的异步处理和队列机制,增加了自动类型的转换并对网络框架设计和实现的原理进行分析,以方便大家遇到具体需求是能够在此基础上灵活方便的进行拓展。
- 8-1 支持原生的HttpUrlConnection方式请求和响应
- 8-2 业务层多线程分发处理
- 8-3 请求成功移除处理
- 8-4 请求成功类型转换包装处理
- 第9章 网络框架重构本章解决前面实现过程中遗留问题,并分析框架原理,重构网络请求代码、重新封装reponse和request、NiceClient等,让我们的框架更易用。
- 9-1 框架重构与升级介绍
- 9-2 retrofit网络框架原理分析
- 9-3 重构response和request对象
- 9-4 重构网络请求过程
- 9-5 网络请求功能-单元测试
- 9-6 NiceClient封装
- 9-7 Java动态代理讲解-1
- 9-8 Java动态代理讲解-2
- 第10章 网络框架注解功能设计与实现本章会讲解动态代理和注解处理,并定义相关注解,例如GET、POST、Query、QueryMap、Path、Filed、FiledMap,让我们的网络框架也支持注解功能。支持发送json到服务器
- 10-1 框架注解定义
- 10-2 框架注解处理-1
- 10-3 框架注解处理-2
- 10-4 支持http header的设置
- 10-5 处理Query、QueryMap、Path等注解
- 10-6 处理FieldMap注解
- 10-7 实现发送对象到服务器功能-1
- 10-8 实现发送对象到服务器功能-2
- 10-9 实现发送对象到服务器功能-3
- 第11章 错误码和重连功能设计与实现本章通过注解实现重新连接功能,支持对错误码的处理功能
- 11-1 http 重试功能代码编写-1
- 11-2 http 重试功能代码编写-2
- 11-3 错误码的处理-1
- 11-4 错误码的处理-2
- 第12章 https功能设计与实现本章会讲解https的原理、常见的加密知识、重点给大家讲一下单向认证和双向认证,通过一个实际的单向认证的例子给大家讲一下客户端和服务端是如何处理https功能的
- 12-1 https内容介绍.mp4
- 12-2 加密知识讲解-1
- 12-3 加密知识讲解-2
- 12-4 https原理讲解什么是单向认证什么是双向认证
- 12-5 node.js搭建https测试server
- 12-6 客户端访问https网站
- 12-7 java 实现单向认证
- 12-8 NiceClient集成https功能
- 第13章 httpDns功能设计与实现本章给大家讲一下常见的dns劫持案例,包括dns劫持解决方案和在使用httpdns过程中遇到的问题,网络框架层增加httpDns功能,支持原生的HttpUrlConnection和okhttp3,可自定义替换httpdns功能
- 13-1 dns 案例讲解
- 13-2 httpdns常见的实现方案和使用过程中遇到的问题
- 13-3 高度抽象httpclient封装-1
- 13-4 高度抽象httpclient封装-2
- 13-5 实现HttpUrlConnenct封装
- 13-6 httpdns功能代码实现
- 13-7 在使用httpDns可能遇到一些问题
- 第14章 支持RxJava及课程总结本章会带大家为我们的框架实现rxjava功能,让我们的框架也能够支持响应式编程。本章对框架进行总结,希望大家都再次进行梳理和总结,把课程学到的知识变成自己的东西,最后祝大家学有所成,学有所获!
- 14-1 支持rxjava
- 14-2 总结回顾