android 通过 adb 查看电池健康

2021-12-15 14:02:02 +08:00
 skyphone001
C:\Users\Acer>adb shell dumpsys battery
Current Battery Service state:
AC powered: false
USB powered: true
Wireless powered: false
Max charging current: 500000
Max charging voltage: 5000000
Charge counter: 1564243
status: 2
health: 2
present: true
level: 77
scale: 100
voltage: 4013
temperature: 292
technology: Li-poly


通过 Charge counter 除以现在的电量 level
1564/0.77=2031 算出现在的总电量。
然后除以自己的电池容量。就是电池健康度了。
我的是小米 9.只剩下 65%左右。
9492 次点击
所在节点    Android
27 条回复
skyphone001
2021-12-16 09:26:22 +08:00
@AoEiuV020CN 是的。好像之前发过 shui 文。。
Thanch
2021-12-20 19:13:35 +08:00
我的 pixel4 算出来有 94%比 accubattery 的 99%还高。感觉还是 accubattery 的准一些。
Thanch
2021-12-20 19:14:42 +08:00
@Thanch 打错了,ac 算出来的是 90%
SGRRYRS
2021-12-20 19:51:53 +08:00
这不就 /sys/class/power_supply/battery 下的那些数据,还不如直接看 uevent 。就 Nexus 6P 和 Pixel 3XL 的数据来看,就 POWER_SUPPLY_CURRENT_NOW 一项显著的更新速度极为缓慢,基本不可用。大抵是 Nexus 6P 直接缺乏类 Summit SMB347 的电流计,真不明白为何一台旗舰不配置这些基本部件,如此看来 Nexus 6 更显旗舰本色。回到原话题上,一来此方法不准确,二是高度依赖设备硬件支持及制造商是否遵循规范。Pixel 3XL 倒是可见电池循环次数,但并未直接提供带数值的健康度。
SGRRYRS
2021-12-20 20:25:48 +08:00
仔细查看谷歌提供的文档,发现本文自始至终就出错了。“CURRENT_AVERAGE 解析度为 156.25 微安,更新周期可在 0.7 秒到 6.4 小时范围内配置,默认为 11.25 秒。
CHARGE_COUNTER (累计电流,不可扩展精度)解析度为 500 微安时(未经电量计针对库仑计数器偏移量进行调整的原始库仑计数器读数,加上来自 ModelGauge m3 算法的输入值,其中包括空值补偿)。
CHARGE_COUNTER_EXT (内核扩展精度)解析度为 8 纳安时。
当额定电压为 3.7 伏时,ENERGY_COUNTER 为 CHARGE_COUNTER_EXT 。”
skyphone001
2021-12-21 10:10:59 +08:00
@SGRRYRS 大佬就是大佬,表示看不懂。
skyphone001
2022-04-11 16:46:37 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/822360

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX