WeightMainActivity.onStart() 每次进入页面都会重新执行 Weigher.init(),厂商 SDK 的静态 SensorScale 因此替换旧实例。init() 立即在主线程执行,存在初始化回调先于监听器安装的竞态。WeigherController,由 CptApplication 创建进程内唯一秤体所有者。weigher-control 线程。git diff --check 通过。SensorScale 创建或 Weigher 初始化/关闭调用。pcb_929(1c00103157408722493):冷启动仅 1 次 Weigher init true,存在唯一 weigher-control 线程并持续返回稳定重量 4392g。最终构建 5 次“设置页 → 称重主页”往返期间 PID 始终为 17357,初始化次数仍为 1,控制线程数为 1,采样期记录 111 次重量回调且无应用 FATAL。断开传感器后的软探测、重启限流和 2 小时连续运行仍需单独现场验收。本次未改版本号,未提交或推送,也未卸载或清数据。每轮清空 Logcat、执行 am force-stop 后通过 am start -W 冷启动,最多等待 20 秒首包重量;设备为 pcb_929,应用版本为 1.6.1(versionCode 24)。
| 次数 | 结果 | Activity 启动 | 首包就绪 | PID | 初始化成功/失败 | 控制线程 | 首包 | FATAL |
|---|---|---|---|---|---|---|---|---|
| 1 | 通过 | 2786ms | 3261ms | 31585 | 1 / 0 | 1 | 4127g | 0 |
| 2 | 通过 | 2744ms | 3085ms | 31810 | 1 / 0 | 1 | 4127g | 0 |
| 3 | 通过 | 2836ms | 4682ms | 32026 | 1 / 0 | 1 | 4127g | 0 |
| 4 | 通过 | 2774ms | 4485ms | 32352 | 1 / 0 | 1 | 4127g | 0 |
| 5 | 通过 | 2734ms | 3146ms | 32594 | 1 / 0 | 1 | 4127g | 0 |
| 6 | 通过 | 2725ms | 3213ms | 1040 | 1 / 0 | 1 | 4127g | 0 |
| 7 | 通过 | 2755ms | 4547ms | 1315 | 1 / 0 | 1 | 4127g | 0 |
| 8 | 通过 | 2760ms | 3123ms | 1581 | 1 / 0 | 1 | 4127g | 0 |
| 9 | 通过 | 2762ms | 3160ms | 1820 | 1 / 0 | 1 | 4127g | 0 |
| 10 | 通过 | 2793ms | 3166ms | 2096 | 1 / 0 | 1 | 4127g | 0 |
通过率 10/10;Activity 启动平均 2767ms(2725~2836ms);首包重量就绪平均 3587ms(3085~4682ms)。第 10 次继续观察后累计收到 110 包重量,最后仍持续返回 4127g,PID 保持 2096,FATAL 为 0。