FluxDown Android — Flutter 原生界面 + Rust 引擎桥接
Android 版的定位
FluxDown Android 不是桌面端的缩减版——它是一个完整的下载客户端,内置和桌面端相同的六种协议引擎。UI 用 Flutter 写(保持与桌面端 GPUI 风格一致的同时,让移动端有原生质感),引擎层通过 Dart FFI 直接调用 Rust native 库。
能力边界
和桌面端比,Android 版:
- 相同 — 六协议、分段抢速、BT/DHT、eD2K Server + Kad、HLS/DASH 质量选择、断点续传、SQLite 持久化、插件/RSS/Webhook。
- 移动端特有 — 剪贴板监听、URL Scheme 唤起、文件分享面板「用 FluxDown 打开」、通知栏下载进度。
- 略简化 — 桌面专属的浏览器扩展(Android Chrome 没 WebExtension API)、原生 GPUI 渲染层(Android 用 Flutter)。
远程控制 NAS 的场景
Android 版最有用的场景之一:出门在外手机上给 NAS 加下载任务。
NAS 上跑着 FluxDown Server(17800 端口),Android App 里填 NAS 的地址和 Access Key,之后:
- 在手机上看到的任何 URL(浏览器里、IM 里、邮件里)——Android 的剪贴板监听自动弹 FluxDown 通知。
- 点通知 → 选择「发到 NAS Server」→ 任务就进 NAS 队列了。
- 下班回家,NAS 已经下好了,手机上直接看任务状态和进度。
URL Scheme
Android 版的 URL Scheme 和桌面端一样:fluxdown://add?url=<url>。任何 Android App 只要能发 intent 就能调用:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fluxdown://add?url=" + URLEncoder.encode(url, "UTF-8")));
startActivity(intent);
文件管理
下载后的文件默认放在:
/storage/emulated/0/Download/FluxDown/
可以在「设置 → 下载目录」里改到其他位置(包括 SD 卡)。Android 11+ 的分区存储限制下,下载目录建议设在系统允许的范围内。
安装
- GitHub Releases 页面下载 APK。
- Google Play 可能暂时没有(FluxDown 不在 Google Play 上架,以 GitHub 为准)。
- 和桌面端一样,未签名 APK 安装需要允许「未知来源」。
已知限制
- BT/eD2K 并发数 — 手机 CPU/内存有限,并发 Peer 数建议设低一点(4 以下),否则手机发热明显。
- Doze 模式 — Android Doze 会在长时间锁屏后限制后台网络——大量长时间下载建议插着电、开 Doze 白名单(FluxDown App 的 Doze 豁免)。
- App 杀死后 — 和桌面端三层架构不同,Android 的「daemon」就是 App 进程本身,被系统杀死后下载会暂停,重新打开 FluxDown 会从断点续传。