FastDownloader 使用指南:3 步跑起 Android 多线程下载器
【免费下载链接】FastDownloader基于Okhttp, 结合Retrofit,使用Okio ,简化处理I/O操作,加入多种设计模式,实现基于链式的android平台多线程下载利器!项目地址: https://gitcode.com/gh_mirrors/fa/FastDownloader
FastDownloader 是一个基于 OkHttp 和 Okio 的 Android 多线程下载器,把断点续传、任务持久化、通知栏进度这些麻烦事都封装好了。适合想给 App 快速接入下载能力的开发者:仓库自带演示应用,改几行配置就能跑,还能直接抄它写代码的方式。
跑起来:如何快速启动 FastDownloader 演示
先拿到代码,在终端执行:
git clone https://gitcode.com/gh_mirrors/fa/FastDownloader.git仓库根目录只有一个simple模块(由 settings.gradle 引入),它就是演示 App。用 Android Studio 打开根目录,同步后直接运行 MainActivity。主界面是几个按钮:任务列表、添加下载、基础下载、单任务下载,点哪个就能看哪种下载效果。
跑通后你会发现核心就两件事:
- 在 Application 里完成一次全局初始化,配置并发上限、回调监听和底层客户端;
- 需要下载时用链式 Builder 描述任务,调
start()即可。
初始化长这样(摘自 DownApplication):
new Download.ConfigBuilder<>() .addMaxCount(5) .downloadListener(new DLDownloadListener(this.getBaseContext())) .baseClient(DLClientFactory.createClient(Type.NORMAL, getBaseContext())) .newbuild(this, downloadAdapter);而一次下载则浓缩成一条链,文件名、路径、优先级、是否显示通知栏都能定制:
new Download.Builder() .url("https://example.com/app.apk") .priority(Priority.HIGH) .savepath("downloads") .isImplicit(false) .build(this) .start();不传参数也行:只给url就会自动抓文件名,默认存到「包名 /tamic/downloads/」下,中优先级、通知栏自动更新。
拆开看:项目内部都装了什么
这一节按职责讲清目录,方便你之后改代码时知道往哪下手。
入口层:一个 Application 加五个页面
所有下载行为都从 DownApplication 出发,它在onCreate里调用 DownloadInit 完成下载模块装配(注册监听、默认回调、加载持久化任务),再执行上面的全局配置。页面端是五个 Activity:MainActivity做导航入口;DownLoadAddActivity提供「粘贴 URL 开始下载」的表单;DownLoadListActivity展示全部任务并可暂停、取消;SingleSimpleActivity和DownloadSimpleActivity则分别演示单任务和基础任务的各种参数组合。五个页面都是「按钮触发一次 Builder 链」的写法,是最直观的 API 用法教材。
配置层:老项目,动这里要谨慎
根目录 build.gradle 锁定了 AGP 1.3.0,simple/build.gradle 里 compileSdk 23、minSdk 21,依赖用的是已废弃的compile关键字,仓库源还是 jcenter(该源已下线)。下载能力本身来自远程 Maven 包com.tamic.fastdownloader:Android-FastDownloader:1.0.3,所以核心引擎并不在这个仓库里,这里更多是「调用示例 + 列表 UI」。另注意 simple/gradle.properties 里写死了一组内网代理地址,同步失败时先检查它。
资源层:列表 UI 的配套积木
simple/.../widget/下是一套自写的 RecyclerView 基础设施:PracticalRecyclerView、DownloadAdapter、空态/错误/加载中布局等,服务于任务列表页。res/layout里对应着页面布局,res/drawable是各文件类型(apk、视频、zip、图片)和下载状态(成功、失败、暂停)的图标。这部分只影响演示外观,与下载引擎无关。
上手建议与常见问题
- 改保存位置和文件名:优先用 Builder 的
name()、savepath()指定;想控制重复下载行为,用mode(DownMode.SINGLE/TOP/NEW_TASK)区分「复用任务」和「新建任务」,配合tag()做任务标识,之后才能暂停、取消。 - 构建同步失败:大概率是代理和老版本问题。删掉
simple/gradle.properties里的systemProp.http.proxy*两行;若仍失败,说明 AGP 1.3 与你本机 Gradle 不匹配,需换用对应老版本 Android Studio,或把build.gradle的仓库源改成mavenCentral()并升级依赖版本。 - 任务「丢了」或没恢复:下载数据是持久化的,启动时
RxDownLoadCenter.loadTask()会恢复历史任务;演示页有个「扫描默认目录」按钮(scanDefaultFolder()),可把磁盘上已有文件重新登记进列表。
下载器真正的价值不在这几十行演示代码,而在它替你管好并发、断点和持久化——接进自己的 App,记住「先全局配置、后链式 start()」这一条主线就够了。
【免费下载链接】FastDownloader基于Okhttp, 结合Retrofit,使用Okio ,简化处理I/O操作,加入多种设计模式,实现基于链式的android平台多线程下载利器!项目地址: https://gitcode.com/gh_mirrors/fa/FastDownloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考