Repository navigation
NetPilot 1.2.0 — 后台耗电优化 + 应用内检查更新 + targetSdk 36
NetPilot 1.2.0(versionCode 2026100501)
本版是一条性能工程线:在不改变用户可见行为、不改变降级判定语义、不改变任何默认值的前提下,把后台耗电与资源占用降下来;同时补上应用内检查更新,并把 targetSdk 升到 36。
后台耗电优化
| 机制 | 1.1.0 | 1.2.0 |
|---|---|---|
| 监控页 5 秒快采 | 打开过监控页后退到后台、关屏都不停,每 5 秒一次真实 HTTP 探测(≤720 次/h) | 只在「应用在前台 + 当前页是监控页 + 屏幕处于交互状态」时运行 |
| 引擎每轮 HTTP 探测 | 60 次/h | 「屏幕关 + 未降级 + 信号非强」时 0 次/h;强信号时仍 60 次/h(不偷懒) |
| 前台服务通知 | 每轮必发(60 次/h) | 只在「网络类型 / RSRP / ping」真变化时发 |
| 日志落盘 | 每 4 秒整体重写 SharedPreferences,且序列化在调用线程(≤900 次/h) | 每 30 秒,序列化移到专用后台线程,commit() 取代 apply()(≤120 次/h) |
| 保活心跳 | 每 15 分钟重新注册一次重复闹钟(不断重置相位、破坏 Doze 批处理) | 不再重排,只保留「服务不在就拉回来」;15 分钟心跳本身保留——它是进程被系统静默杀掉后唯一的跨进程兜底 |
| 崩溃重启间隔 | 固定 10 秒 | 指数退避 10s→20s→40s→…→15min |
| Shizuku 残留特权进程 | 实测残留 4 个 :np_service(PPID=1、存活 19–21.5 h、合计 PSS 约 201 MB) |
启动时清扫一次,稳定在 0–1 个 |
合计:待机(屏幕关、静止)场景的联网探测从最多 780 次/h 降到 0 次/h。
最关键的「探测前短路」有完整证明,不是拍脑袋放宽测量:docs/POWER_REPORT.md §3 给了全部 14 个 pingMs 消费点的普查表,以及 FakeSignalDetector.judge() 的逐分支真值表——结论是「judge() 读取 pingMs 的充要条件就是 isStrong」,所以只有「屏幕关 + 未降级 + 信号非强」三个条件同时成立时才跳过探测,判定结果不可能改变。
实现里有个容易被忽略的坑,本版一并修掉了:监控页的「是否快采」开关是靠 Compose 重组传达的,而重组要等下一帧;屏幕关闭后系统不再投递 VSYNC,只靠开关挡不住「关屏仍在探测」。采样循环里因此另加了一道每轮独立的
PowerManager.isInteractive护栏。
新增:应用内检查更新
关于页多出「检查更新」一行;首次启动按设置页的开关自动检查一次。查的是本仓库 Releases 的公开接口,只提示、不静默下载安装、不做任何后台轮询。
targetSdk 34 → 36
compileSdk 保持 37。edge-to-edge、预测性返回、specialUse 前台服务、BOOT_COMPLETED 启 FGS 的限制、16 KB 页对齐逐项复核,均无需额外改动(zipalign -c -P 16 实测通过)。
唯一有意的可见文案差异:屏幕关闭且信号非强时,Ping 行显示「已跳过探测(屏幕关闭)」而不是原来的「无响应」。原文案把「没测」和「测了没通」混为一谈,这是修正;若要完全不变可以改回去。
安装
- 本包与 1.0.1 / 1.1.0 使用同一把 release key(证书 SHA-256
34100875b45d7c4dc9928030b3329b5490869a236155f9ce08b1dc70c7434c4c),可直接覆盖安装,SharedPreferences不会被清。 - 覆盖前建议先在「设置 → 配置导入导出」导出配置,便于随时回退。
| 文件 | 大小 | MD5 |
|---|---|---|
| NetPilot-1.2.0-2026100501-release.apk | 33,141,993 B | 98bb33c01b0d9c2b832d85fea7aff207 |
minSdk 34 / targetSdk 36,compileSdk 37;变更提交 e4a4568。
⚠️ 本次没有证明的事
整机待机耗电百分比没有实测。 采集环境禁止 agent 安装 APK,设备策略也拦掉了 dumpsys batterystats / alarm / deviceidle,所以本版只能说「确定性开销大幅下降」,不宣称任何省电百分比。要把「探测次数降 100%」换算成「电池降多少」,请按 docs/POWER_REPORT.md §4.2 步骤 4 同口径(同机、同卡、同网络、屏幕关、静置 1 小时)跑前后两轮。
功能回归与专项验证的操作步骤见 docs/TESTING.md 第 16 节。