# android-download **Repository Path**: panbin/android-download ## Basic Information - **Project Name**: android-download - **Description**: 使用okdownloader下载文件的例子 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2021-04-16 - **Last Updated**: 2021-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Android使用okDownloader下载文件 ## 示例效果 主页 ![20191122145230.png](https://images.gitee.com/uploads/images/2019/1122/155037_7030c711_537431.png) 单文件下载 ![20191122145333.png](https://images.gitee.com/uploads/images/2019/1122/155050_73a7ce3a_537431.png) 文件列表下载 ![20191122145456.png](https://images.gitee.com/uploads/images/2019/1122/155037_e4160b55_537431.png) ![20191122145538.png](https://images.gitee.com/uploads/images/2019/1122/155037_6e7174c2_537431.png) 开启下载通知 ![20191122145740.png](https://images.gitee.com/uploads/images/2019/1122/155037_1481c071_537431.png) 设置下载通知 ![20191122145615.png](https://images.gitee.com/uploads/images/2019/1122/155039_67d9b9fe_537431.png) 下载文件管理 ![20191122145653.png](https://images.gitee.com/uploads/images/2019/1122/155037_ef41fd98_537431.png) ## 知识点 通知管理、service服务、广播、存储(xutils3数据库存储)、okDownloader下载插件 ### okDownloader OkDownload是一个android下载框架,FileDownloader的升级版本,也称FileDownloader2;是一个支持多线程,多任务,断点续传,可靠,灵活,高性能以及强大的下载引擎 官网[https://github.com/lingochamp/okdownload](https://github.com/lingochamp/okdownload) 参考[https://blog.csdn.net/szdenny/article/details/80332993](https://blog.csdn.net/szdenny/article/details/80332993) #### okDownloader特点   单元测试覆盖率很高,从而保证框架的可靠性。 简单的接口设计。 支持任务优先级。 Uri文件转存储输出流。 核心类库更加单一和轻量级。 更灵活的回调机制和侦听器。 更灵活地扩展OkDownload的每个部分。 在不降低性能的情况下,更少的线程可以执行相同的操作。 文件IO线程池和网络IO线程池分开。 如果无法从响应头中找到,从URL中获取自动文件名。 取消和开始是非常有效的,特别是对于大量的任务,有大量的优化 #### okDownloader使用 引入 ```xml implementation 'com.liulishuo.okdownload:okdownload:1.0.5' //核心库 implementation 'com.liulishuo.okdownload:sqlite:1.0.5' //存储断点信息的数据库 implementation 'com.liulishuo.okdownload:okhttp:1.0.5' //提供okhttp连接,如果使用的话,需要引入okhttp网络请求库 ``` #### 本实例下载流程 ```flow st=>start: 开始 op1=>operation: 下载文件 op2=>operation: 开启下载服务 op3=>operation: 继续下载 op4=>operation: 暂停 op5=>operation: 下载出错 op6=>operation: 下载完成 cond1=>condition: 开始or暂停 cond2=>condition: 是否出错 cond3=>condition: 是否继续下载 cond4=>condition: 是否重新下载 e=>end: 结束 st->op1->op2->cond1 cond1(yes)->op3 op3->cond2 cond1(no)->op4 cond2(yes)->op5 cond2(no)->op6 op5->cond4 op4->cond3 cond3(yes)->op2 cond3(no)->e op6->e cond4(yes)->op2 cond4(no)->e ``` #### demo下载地址 [https://gitee.com/hzhh123/android-download.git](https://gitee.com/hzhh123/android-download.git)