Ghost Downloader

Android

安卓端与桌面端共享同一下载引擎,本页说明安卓特有的权限、后台保活和已知限制。

Ghost Downloader 的安卓端不是功能阉割版。它和桌面端编译自同一套业务引擎代码,支持多协议下载、直播录制、可选文件、Revive、浏览器扩展配对等全部核心能力。

本页只写安卓端与桌面端不同的部分。桌面端已有文档的功能(任务草稿、可选文件、浏览器扩展配对等)不再重复。

权限

存储权限

首次启动时,屏幕顶部会出现横幅「未授予存储权限,下载到公共目录将失败」("Storage permission not granted, downloads to public directories may fail"),点击「去授权」("Grant Permission")跳转系统设置。

  • Android 11+(API 30+):需要授予「所有文件访问权限」(MANAGE_EXTERNAL_STORAGE),否则无法向 /storage/emulated/0/Download 等公共目录写入文件。
  • Android 10(API 29):请求的是传统 WRITE_EXTERNAL_STORAGE 权限,清单中已声明 requestLegacyExternalStorage,授权后行为与旧版本 Android 一致。

未授权时,点击 + 按钮新建任务会被拦截,并弹出提示「需要存储权限」("Storage permission required")。

通知权限

如果通知权限未开启,顶部会出现第二条横幅「未开启通知权限,下载完成后将无法提醒」("Notification permission not enabled, you will not be notified when downloads complete")。

通知权限影响两件事:

  • 任务完成时的系统通知
  • 后台下载时状态栏的常驻通知(前台服务通知)

电池优化

应用启动时会自动请求系统忽略电池优化(ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)。这是为了防止系统在后台杀死下载进程。如果你在弹窗中拒绝了,后台下载可能被系统中断。

后台下载

工作原理

有任务正在下载或浏览器扩展处于连接状态时,应用会启动一个前台服务(KeepAliveService),在状态栏显示常驻通知。通知文本会实时显示当前下载速度;无下载任务但浏览器扩展在线时,显示「浏览器扩展已连接」("Browser Extension Connected")。所有任务完成且扩展断开后,前台服务自动停止。

下载期间还会持有 PARTIAL_WAKE_LOCK,保证息屏后 CPU 不休眠。锁在所有任务完成后释放。

国产 ROM 被杀后台

MIUI/HyperOS、ColorOS、OriginOS 等国产 ROM 的后台管理会主动杀死前台服务。如果你发现息屏后下载中断,需要手动将 Ghost Downloader 加入系统的「自启动」或「后台不限制」白名单。具体路径因品牌和系统版本不同,通常在「设置 → 应用管理 → Ghost Downloader → 省电策略」或「设置 → 电池 → 后台耗电管理」中。

按返回键不会终止下载

在安卓端按系统返回键不会退出应用——它会把应用切到后台(moveTaskToBack),下载继续进行。这是刻意的行为:直接退出会杀死下载进程。

文件存储

默认下载目录是 /storage/emulated/0/Download。可以在「设置」("Settings")中修改。

应用数据(配置、日志、任务记录)存储在应用私有目录,卸载时会被清除。日志文件路径为 <应用数据目录>/GhostDownloader.log

分享接收

Ghost Downloader 注册了 Android 的分享接收 intent。从其他应用(浏览器、文件管理器等)「分享」以下内容时,Ghost Downloader 会出现在分享目标列表中:

  • 纯文本:应用会从文本中提取 HTTP/HTTPS/FTP/magnet 链接,自动创建任务
  • .torrent 文件:直接创建 BT 任务
  • M3U8/MPD 播放列表文件:直接创建流媒体任务

支持单个和批量分享(ACTION_SENDACTION_SEND_MULTIPLE)。

已知限制

无法注册为系统默认下载器

Android 没有像桌面浏览器那样的「外部下载管理器」协议。在安卓浏览器中点击下载链接时,浏览器不会弹出「选择下载器」对话框——这是 Android 系统层面的限制,与 Ghost Downloader 无关。

替代方案:

  • 在浏览器中长按链接 → 复制链接 → 回到 Ghost Downloader 粘贴
  • 在浏览器中使用「分享」功能将链接发送到 Ghost Downloader
  • 在桌面端安装浏览器扩展,通过配对令牌将任务推送到安卓端(安卓端支持浏览器扩展的 WebSocket 服务端,配对方式与桌面端相同)

横屏 / 平板适配

当前版本强制竖屏显示,尚未适配平板横屏布局。

设置页操控

安卓端的设置页中,滑动条(如「分片线程数」)在触屏上可能出现拖动不稳的情况。控件已针对窄屏做了纵向重排,但部分交互体验仍在优化中。

本页目录