NoActive 网速识别 - 网络传输期间智能免冻结
网速识别功能
开启网速识别后,应用在后台持续上传或下载数据时会自动免冻结。
触发阈值
NoActive 设置了明确的网速阈值,连续 2 秒满足以下任一条件即认定为"正在传输":
| 传输方向 | 阈值 |
|---|---|
| 上传 | ≥ 32 KB/s |
| 下载 | ≥ 64 KB/s |
检测逻辑
开始免冻结
应用在后台连续 2 秒内,上传速率达到 32KB/s 或下载速率达到 64KB/s → 认定为正在传输 → 免去冻结。
恢复冻结判定
应用被识别为网络传输后,连续 2 秒内上传低于 32KB/s 且下载低于 64KB/s → 认定为停止传输 → 满足冻结条件。
设计思路
为什么设两个阈值
下载阈值(64KB/s)高于上传阈值(32KB/s),因为:
- 下载通常是批量的、持续的,需要较高阈值过滤瞬时波动
- 上传相对零散,较小的数据量可能代表重要操作(如表单提交、文件上传)
为什么有 2 秒窗口
2 秒窗口可以过滤瞬时的网络抖动(如网络切换、DNS 查询等),避免频繁切换冻结状态带来的开销。
适合配置的应用
- 云盘上传/下载:百度网盘、OneDrive、坚果云——大文件传输期间需要保持活跃
- 浏览器:下载文件或加载网页时需要保持活跃
- 开发者工具:ADB 调试、Git 同步等
- 图片/视频备份:Google Photos、腾讯相册管家等
与常驻通知的配合
网速识别可以与常驻通知配合使用,形成更精细的免冻结策略:
- 常驻通知 → 粗粒度(有通知就不冻结)
- 网速识别 → 细粒度(有实际网络活动才不冻结)
与其他配置的优先级
| 配置项 | 触发条件 | 检测窗口 |
|---|---|---|
| 白名单 | 始终 | - |
| 后台播放 | 有音频输出 | 暂停后 10s |
| 常驻通知 | 有前台服务 | 通知移除后 3s |
| 网速识别 | 上传/下载达阈值 | 传输停止后 2s |
注意事项
网速识别的阈值目前硬编码在模块中,暂不支持用户自定义。如果需要更精细的控制,只能通过白名单或其他配置组合来间接实现。
→ 继续 网络解冻功能