读数不准确——系统 gauge 不准还是 AccuBattery 模型不准
AccuBattery 团队的态度
"All Android devices report battery data differently. Some are accurate, some are not. We try to work around the differences but sometimes the hardware just doesn't give us good data."
翻译:Android 设备电池数据的准确性差异很大,AccuBattery 尽力了但受硬件限制。
分类排查
问题一:充电 Tab 的电流波动大
- 正常情况:电流本身天生波动,亮屏时尤其剧烈。看趋势不看瞬时值
- 异常情况:插着充电器但电流是负数(在放电),说明手机在高负载下耗电比充电还快
- 不需要处理:正常波动不用管,就是这个样子
问题二:电压百分比映射不准
这是最常见的不准。Android 系统从电压反推百分比的公式各厂商不同,有时:
- 系统显示 5% 但实际还能撑很久
- 系统显示 95% 但 AccuBattery 才刚进入高电压区
AccuBattery 自己也做电压→百分比的反推(不直接信系统),但如果 Android 的 gauge 本身就不准,AccuBattery 也只能跟着不准。
怎么解:每月一次完整充满校准,让 Android 重新学习电压曲线。详见 强制充满校准。
问题三:剩余时间估算跳动大
- 新用户(< 7 天):模型还在学,不准正常
- 使用习惯突然变了(这一周天天玩游戏 vs 之前天天看书):模型需要几天来重新学习
- 某一次亮屏时间特别长:会暂时拉高平均耗电
怎么解:正常使用 7 天,不改习惯,模型自动修正。
问题四:健康度每天上下跳 1%-2%
- AccuBattery 2.0 的设计:只看最近 5 次有效会话,所以对新数据非常敏感
- 单次充电条件特殊(比如亮屏充了 2 小时)会产生离群点,暂时拉歪趋势线
- 正常现象:长期趋势(月级别)才是关键,日级别的小波动可以忽略
问题五:同一充电会话在历史里看到的 mAh 和充电 Tab 底部对不上
- 充电 Tab 底部是实时计数,拔掉充电器后就冻结
- 历史详情页也是同一份数据,但可能有四舍五入差异
- 如果差了超过 10%,可能是那次会话被系统杀掉了进程(见 App 被系统杀后台),数据不完整
极端情况:设备 gauge 完全不准
极少数设备存在严重 gauge 不准的问题——比如系统显示 50% 时实际已经 3800mV(电压接近 0%),或者显示 100% 时实际才 4.10V。
怎么判断你是不是这种情况:
- 做一次手动基准测试(进阶玩法)
- 从 AccuBattery 记录的「起点电压」和「终点电压」反推百分比变化
- 对比系统显示的起点% 和终点%
- 如果差了 10%+,说明 gauge 不准
这种情况下,AccuBattery 的容量估算模型也会受影响——因为它依赖电压反推百分比。这时候手动基准测试(从尽量低充到尽量高,最大化电压跨度)是最准的方法。
总结
| 现象 | 最可能原因 | 要不要处理 |
|---|---|---|
| 电流波动大 | 正常现象 | 不用 |
| 剩余时间不准 < 7 天 | 数据积累不够 | 等 |
| 健康度日波动 1-2% | 2.0 设计敏感 | 不用,看月趋势 |
| 百分比跳变 | gauge 不准 | 每月完整充满校准 |
| 同一会话数据对不上 | 可能被系统杀了进程 | 检查电池优化 |