Android 稳定、高效、灵活、简单易用的文件下载引擎FileDownloader,基本上开发中遇到的文件下载类任务都可以使用它来完成,少写亿行代码,又可以愉快摸鱼了。
GitHub项目地址:https://github.com/lingochamp/FileDownloader
特点
- 简单易用
- 单任务多线程/多连接/分块下载(并支持通过
ConnectionCountAdapter
定制) - 高并发
- 灵活
- 可选择性支持: 独立/非独立进程
- 自动断点续传
需要注意
- 当下载的文件大小可能大于1.99GB(2^31-1
=2_147_483_647 = 1.99GB
)的时候, 请使用FileDownloadLargeFileListener
而不是FileDownloadListener
(同理使用getLargeFileSofarBytes()
与getLargeFileTotalBytes()
) - 暂停: paused, 恢复: 直接调用start,默认就是断点续传
- 引擎默认会打开避免掉帧的处理(使得在有些情况下回调(FileDownloadListener)不至于太频繁导致ui线程被ddos), 如果你希望关闭这个功能(关闭以后,所有回调会与0.1.9之前的版本一样,所有的回调会立马抛一个消息ui线程(Handler))
- 如果没有特殊需要,直接通过配置
filedownloader.properties
将process.non-separate
置为true
,可以有效减少每次回调IPC带来的I/O。
Android 系统适配
适配 Android 8.0
从 Android 8.0 开发,后台服务的限制增强了。 因此,自 FileDownloader 1.7.6 版本开始, Android 8.0 及之后的系统上,如果在后台启动下载服务,这个服务将会是一个前台服务,同时你会看到一个标题为”FileDownloader” 的通知。
适配 Android 9.0
从 Android 9.0 (API level 28) 开始,明文请求默认被禁止。 FileDownloader 1.7.6 已经在 demo 中处理了此问题。
FOREGROUND_SERVICE
这个权限已经在 1.7.6 版本添加到 library 的 manifest 里面了。
评论 (0)