后台保活与进程保护:弱网随进程存亡
官方文档里有一条加粗级别的注意事项:QNET 进程不能被清理,否则弱网会被关闭。这一页把「为什么」和「怎么保」讲透——它同时是测试中断的头号原因。
为什么进程一死弱网就没了
弱网的本质是 QNET 通过本地 VPN 通道接管流量(原理见QNET 的工作原理)。VPN 通道由进程持有,进程被用户划掉、被系统冻结或崩溃,通道随之拆除,所有流量瞬间回到正常网络——表现为「测着测着网速自己恢复了」。
进程被杀的四个来源与对策
| 来源 | 症状 | 对策 |
|---|---|---|
| 手动清理最近任务 | 划掉卡片后立即恢复网速 | 测试期间不划 QNET;锁定任务卡片 |
| 厂商省电策略 | 锁屏一段时间后失效 | 电池白名单、关闭自动休眠与后台冻结 |
| 内存不足被杀 | 大应用运行中偶发失效 | 关闭无关后台;低内存设备避免同时压测 |
| 应用崩溃 | 悬浮窗消失、读数中断 | 清缓存、更新版本,见测试中断或数据没保存 |
长时间测试的检查清单
- 启动弱网后把 QNET 加入电池优化白名单;
- 关闭厂商的「智能省电/应用冻结」对该应用的控制;
- 需要锁屏跑的场景,先锁屏 5 分钟验证弱网仍生效;
- 跑自动化时脚本里加状态校验(VPN 图标或延迟探测),断了立即报警,见adb 自动化实战。
一个容易误判的场景
「网络突然恢复正常」未必是进程被杀——也可能是周期弱网正好走到放行时段(见周期弱网),或者悬浮窗点了暂停(见控制悬浮窗用法)。判断顺序:先看信息悬浮窗是否还在,再看 VPN 图标,最后才怀疑进程。
adb 驱动的自动化弱网同样受此约束:QNET 进程保活是自动化的前提,见ADB 自动化总览。