移动端「下载更新」失败不再崩溃(P11-265)。用户在移动端设置页下载更新时,如果网络
中途断开,应用会直接崩溃并重启(表现为「重载」)。
变更
- 崩溃修复:下载重试耗尽后
UpdateManager.download()会把异常重新抛出。TV 端一直有
try/catch,移动端MobileSettingsScreen没有,异常从rememberCoroutineScope().launch
逃逸成FATAL EXCEPTION: main。现补上与 TV 一致的处理:失败只弹 toast,不再杀进程。 - 下载日志:新增
BiliMT:Update日志 —— 开始(包名 / 大小 / URL)、每次尝试失败
(异常类型 + 已下字节)、成功(耗时 + 平均 KB/s)、最终放弃。此前下载路径零日志,
失败和慢速都无法取证。 callTimeout单位修正:原代码把毫秒值按TimeUnit.SECONDS传入,整调用上限实际
是 600000 秒(约 7 天),兜底形同虚设;改为毫秒,保持 10~30 分钟。- 下载效率:读缓冲 8KB → 64KB;进度回调从「每 8KB 一次」改为 200ms 时间节流,
减少读循环与设置页高频重组的互相拖累。 - 判读文档:
docs/update-download-notes.md记录本次崩溃链、慢速归因(设备所有出站
请求走本地代理127.0.0.1:10808)与日志判读方法。
真机判据
- 断网或代理异常时点击「下载更新」:只出现下载失败 toast,应用不崩溃、不重启;
- 正常网络下载一次成功,实时日志出现
download complete ... avg=...KB/s; - 断流场景日志出现
attempt=n/5 failed ... partial=x/y,续传后字节数继续增长。