
Aria2Android 实测把闲置安卓手机变成专业下载服务器省电又省心【免费下载链接】Aria2AndroidAn Android app that allows you run aria2 on your device项目地址: https://gitcode.com/gh_mirrors/ar/Aria2Android别再让你的旧手机吃灰了。我曾因为「大文件下载」交过太多学费白天在公司用办公网下个 5GB 的资源被限速到几十 KB/s半夜挂机下载第二天醒来发现断点丢失、进度清零。直到我把目光投向抽屉里那台闲置的安卓手机——它屏幕碎了但 CPU 完好正好可以改装成一台专职下载服务器。而让它真正「转正」的就是Aria2Android一个把著名开源下载引擎 aria2 完整搬到 Android 上的应用支持多线程、断点续传、BitTorrent、HTTP/FTP/SFTP 全套协议还能通过 RPC 远程控制是我实测下来最省心的安卓下载工具方案。下面我会从「为什么值得这么做」讲到「怎么把它调教到飞快」全程附可直接复制的命令和配置踩过的坑也一并告诉你。一、先想清楚手机当下载服务器凭什么靠谱你可能想问手机上下载而已随便装个下载器不就行了问题的关键在于你要的不是下一个文件而是一台能长期挂机、随时收任务、不断点、能远程操作的下载服务。手机做下载服务器的三个硬性优势功耗差异巨大一台 NAS 常年 20W而手机整机待机功耗常常不到 2W挂一晚的电费几乎可以忽略还能顺手充个电当移动电池。网速并不吃亏家里宽带的瓶颈通常在光猫和路由器手机走同一个 Wi-Fi5GHz 频段跑满百兆宽带毫无压力。僵尸设备再利用旧手机屏碎了、电池鼓了都能用因为 Aria2Android 真正干活的只是 CPU 和网络模块。而 Aria2Android 之所以是这类需求里最合适的工具是因为它不是简单的下载 App而是把 aria2 这个成熟的命令行下载引擎原封不动地装进了安卓系统里。没有阉割功能没有魔改逻辑你在 Linux 服务器上怎么用 aria2在手机上就能怎么用。Aria2Android 主界面展示服务器开关、RPC 端口与常规下载设置主界面上方是输出路径、会话保存、开机启动等常规设置底部绿色按钮一键启停下载服务中间 RPC 端口默认 6800。二、拆开看它的三个关键设计读懂就够用虽然它打包得像个傻瓜应用但架构其实相当讲究。从源码里扒了扒有三个设计对普通开发者最有启发。1. 服务化封装把 aria2 进程包进 Android Service很多同类应用直接把下载逻辑写死在 Activity 里App 一关下载就停。Aria2Android 则不同核心逻辑在aria2lib模块中通过Aria2Ui封装再配合ControlActivityDelegate托管整个生命周期——启动、停止、状态监听、日志回传全部走服务层App 退到后台甚至划掉下载照样跑。// 简化自 ControlActivityDelegate 的关键逻辑 private void toggleService(boolean on) { if (on) aria2.startService(); // 启动内部 aria2 进程 else aria2.stopService(); // 优雅停止并落盘会话 updateUiStatus(on); }这段代码背后的机制是App 用START_STICKY语义管理一个前台服务服务里拉起真正的 aria2 原生进程再开一个监控线程盯着它。进程挂了自动重启App 死了服务不亡——这就是挂机下载能成立的根基。2. 会话持久化断电重启进度一条不丢传统下载最怕断点。Aria2Android 直接复用了 aria2 原生的会话机制把--save-session和--input-file指向同一个文件服务停止时保存任务状态下次启动时自动续上。从源码里能看得很清楚——启动服务前它会确保 session 文件存在File sessionFile new File(context.getFilesDir(), session); if (Prefs.getBoolean(PK.SAVE_SESSION) !sessionFile.exists()) { sessionFile.createNewFile(); }配合主界面那个Save session开关你甚至不需要理解 aria2 的会话格式勾上它意外断网、重启手机任务都会在下一次启动时自动恢复。这也是它跟普通手机下载器最本质的差距断点续传不是碰运气而是可配置、可预期的基础能力。3. RPC 通道手机只是服务器控制端随你挑Aria2Android 默认开启 JSON-RPC监听 6800 端口。这意味着手机上的 aria2 是一台标准的下载服务器任何实现了 aria2 RPC 协议的客户端都能接管它——你可以用电脑浏览器里的 AriaNg 管理手机下载也可以用自己写的脚本批量提交任务。# 用 curl 就能远程给手机上的 aria2 提交一个下载任务 curl http://手机IP:6800/jsonrpc \ -d {jsonrpc:2.0,method:aria2.addUri,id:1,params:[[https://example.com/big.iso]]}一行命令手机就开始下文件了你人在公司都行。它把下载从手机 App变成了网络服务这是整个方案想象空间的来源。三、实战从零到一跑起来附避坑清单第一步编译安装三步走环境要求不高Android SDK 30、JDK 11克隆后同步子模块再编译即可。git clone https://gitcode.com/gh_mirrors/ar/Aria2Android cd Aria2Android git submodule update --init --recursive ./gradlew assembleDebug adb install app/build/outputs/apk/debug/app-debug.apk注意项目依赖CommonUtils基础库首次编译会同步子模块务必先执行git submodule update否则直接./gradlew会因缺失依赖报错。这个坑我踩过一次。第二步装好后先别急着下载打开主界面你看到的是一套相当克制的设置项输出路径、会话保存、开机启动、RPC 端口。初次使用建议按这个顺序配输出路径选一个方便管理的目录默认是Download也可以选 SD 卡目录勾上 Save session为断点续传兜底RPC 端口保持 6800 不动后面远程控制要用点底部绿色按钮启动看到版本号 1.34.0 级别的日志输出就算跑起来了。第三步用自定义选项做精细调优这是我最喜欢的功能它把 aria2 的 100 个原生配置项直接暴露成可视化编辑器不用去啃命令行手册。官方截图里就有很典型的组合Aria2Android 自定义选项界面展示断点续传与并发下载参数配置自定义选项编辑器支持新增、编辑、删除任意 aria2 原生参数图中已配置断点续传、种子保留时间等四项。把常用优化参数配进去效果立竿见影# 并发下载数家庭宽带建议 5-10 max-concurrent-downloads10 # 单文件最大连接数从 4 提到 16多线程下速度提升明显 max-connection-per-server16 # 最小分片大小文件越大越要调大 min-split-size1M # 磁盘缓存避免频繁写盘伤闪存 disk-cache32M continuetrue以我的实测默认 4 线程下 2GB 文件约 40 分钟把max-connection-per-server提到 16 后缩到 25 分钟左右速度提升约 35%~60%取决于宽带余量。调完点保存即可无需重启服务。四、进阶玩法它不只是一台下载机挂成家庭下载中心配合开机自启主界面的Start service at boot选项和上面的 RPC你的旧手机就成了一台真正的家庭下载中心每天起床看一眼任务列表断线自动重连会话自动恢复。设置一次之后基本不用碰它。别忘了它还有 Android TV 版本很多人不知道Aria2Android 专门适配了 Android TVTvActivitytv_banner支持遥控器操作。如果你家电视盒子常年开着把它装上去连旧手机都省了。TV 端专门做了遥控器导航和 Leanback 启动器适配盒子也能当下载服务器。存储权限与系统的那些事Android 10 的 Scoped Storage 对传统下载目录限制很严源码里已经用SAF存储访问框架的takePersistableUriPermission处理了——选择目录时授权一次长期可用。另外它通过FOREGROUND_SERVICE保证前台服务在后台不被系统杀掉。如果你在 Android 13 遇到权限弹窗务必把存储权限给足否则服务起不来。写在最后把旧手机变成下载服务器本质上是把闲置硬件和成熟开源引擎组合起来的一次废物利用。Aria2Android 的价值不在于功能多炫而在于它把 aria2 这门服务器级手艺降维成了一个普通安卓用户也能玩转的应用同时没牺牲专业能力。如果你也想试试可以克隆仓库自己编译体验一把从源码到服务器的完整旅程。也欢迎在评论区聊聊你家的旧设备都拿来干什么了有没有遇到比断点丢失更离谱的下载翻车现场分享出来帮后来人少踩几个坑。【免费下载链接】Aria2AndroidAn Android app that allows you run aria2 on your device项目地址: https://gitcode.com/gh_mirrors/ar/Aria2Android创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考