到目前为止,okhttp系列课程,我们讲解了http基础知识、webdemo的基本编程实现、okhttp基本框架源码解读、okhttp框架搭建、okhttp基本请求响应实现、okhttp拦截器的实现,本章,我们实现okhttp下载功能。
1.需求思考
实现一个下载模块,我们需要有哪些功能?
- 单线程下载、多线程下载
- 下载进度回调
- 断点下载
- 下载依赖的框架,允许外界自定义修改,例如可以依赖okhttp,后续我也可以修改为volley等框架
- 下载缓存模块,使用什么数据结构进行url-cache的数据缓存,并且支持自定义
2.下载框架设计
2.1 外观的设计
下载封装模块,为了方便用户使用,那么最好设计为一个单例类,用户关心的就是需要输入url(下载链接)、downloadcallback(下载进度和数据回调)、threadnum(线程数量),目前我们仅仅考虑到这些。
package com.itbird.okhttpstudy.download