电流读数从哪儿来 — Ampere 怎么拿到 mA 数据
Ampere 不自己做硬件测量
Ampere 本身没有任何硬件电路,它是一个纯软件读取工具。它的数据来源是手机内置的电池管理系统(Battery Management System, BMS) —— 每个智能手机的电源管理芯片里都有一个电流传感器,实时监测电池的充放电电流。
App 启动后会向 Android 系统请求访问电池 API,然后读取 BMS 提供的电流数值,加上自己的统计处理后展示给用户。
为什么会有读数不准的时候
因为 Android 系统的电池 API 设计初衷不是为了精确电流测量,而是为了估算电量百分比。手机厂商给 BMS 传感器的精度和刷新频率也参差不齐,所以 Ampere 的读数会受到以下因素影响:
| 因素 | 影响 |
|---|---|
| 手机厂商固件 | 有些厂商(如部分三星机型)固件里直接返回的是额定最大值,不是实际测量值 |
| Android 版本 | 早期版本 API 不完善,新版本有所改善但也不统一 |
| 电池管理策略 | 某些省电模式下传感器会降频或关闭 |
| 充电方式 | 无线充电、快充协议的电流路径和有线不同,传感器可能捕捉不准 |
读数的真正用途
Ampere 自己在应用描述里也强调了一点:不要把读数当作绝对科学数据。但它完全胜任以下场景:
- 同一台手机、同一电量下,对比不同充电器的实际电流输出
- 同一台手机、同一充电器下,对比不同数据线的电流衰减
- 监测充电/放电电流的相对变化(比如充电变慢了、放电变快了)
在"条件相同、对比不同"这个场景里,Ampere 的参考价值很高。
打开 App 后那 10 秒在干什么
App 刚启动时显示"正在检测",这不是等待传感器就绪,而是在做采样统计:连续读取多次电流值,然后去掉最高的 10 个和最低的 10 个,用剩下的中间值取平均,最后把这个稳定值显示出来。这个设计是为了过滤掉充电时的瞬时电流尖峰(插上的一瞬间电流会跳一下)。

下一页讲不同颜色代表什么状态,然后在 采样原理 里详细拆解 50 次采样的处理方式。