目标
实现一套统一的 Android 电池健康度评估体系:
- 三星设备优先使用系统 Fuel Gauge 数据
- 非三星设备使用通用估算方案
- 输出统一的健康评分
- 输出可信度(Confidence)
- 避免大量设备集中在同一个分数段(例如大量 84 分)
输出结果
{
"healthScore": 92,
"healthLevel": "Good",
"confidence": 100
}
字段说明:
| 字段 | 说明 |
|---|---|
| healthScore | 电池健康评分(0~100) |
| healthLevel | 健康等级 |
| confidence | 结果可信度(0~100) |
总体架构
┌──────────────┐
│ Android Device │
└───────┬──────┘
│
是否为 Samsung?
│
┌───────────────┴───────────────┐
│ │
Yes No
│ │
▼ ▼
ASOC + FCC + CycleCount Capacity + Cycle + Thermal
│ │
▼ ▼
Samsung Health Generic Health
│
▼
Final Health Score
Samsung 设备方案
设计原则
三星设备可以从 Fuel Gauge 获取真实老化数据:
- ASOC
- FCC
- CycleCount
这些指标的准确度远高于估算值。
因此三星设备采用专项算法。
指标一:ASOC
权重:
55%
读取节点:
/sys/class/power_supply/battery/fg_asoc
备用:
/sys/class/power_supply/battery/batt_asoc
含义:
Actual State Of Capacity
表示 Fuel Gauge 估算的电池健康度。
示例:
100 = 新机
95 = 轻微损耗
90 = 正常使用
85 = 明显老化
80 = 较差
ASOC 是三星方案最重要指标。
指标二:FCC
权重:
25%
读取:
/sys/class/power_supply/battery/batt_full_capacity
含义:
Full Charge Capacity
表示当前满充容量。
示例:
设计容量:
5000mAh
当前FCC:
4700mAh
则:
FCC健康度
=
4700 / 5000
=
94%
用于反映真实容量衰减。
指标三:CycleCount
权重:
15%
读取:
cycle_count
battery_cycle
battery_cycle_count
什么是 Cycle
Cycle ≠ 充电次数
定义:
累计消耗100%电量
=
1个完整循环
例如:
100→50
50%
再:
100→50
50%
累计:
50% + 50%
=
100%
增加:
1 Cycle
衰减规则
0~200 100分
500 85分
800 70分
1200+ 55分
采用非线性衰减。
因为锂电池老化并非线性过程。
指标四:Consistency
权重:
5%
用于校验:
ASOC
与
FCC
是否一致。
正常情况:
ASOC = 94
FCC = 93%
结果:
Consistency = 100
异常情况:
ASOC = 95
FCC = 70%
结果:
Consistency = 50
用于发现异常数据。
Samsung 最终公式
HealthScore
=
ASOC × 55%
+
FCC × 25%
+
Cycle × 15%
+
Consistency × 5%
示例:
ASOC = 93
FCC = 94
Cycle = 90
Consistency = 100
结果:
≈93
输出:
{
"healthScore": 93,
"healthLevel": "Good"
}
非三星方案
原因
大部分 Android 厂商无法获取:
ASOC
FCC
因此采用估算方案。
Capacity
优先读取:
charge_full
charge_full_design
计算:
Capacity
=
charge_full
/
charge_full_design
×100
表示:
当前最大容量
/
设计容量
CycleCount
如果系统提供:
cycle_count
参与评分。
否则忽略。
Thermal
当前温度评分。
示例:
25℃ = 100
35℃ = 90
40℃ = 80
45℃ = 70
仅作为辅助项。
Generic 最终公式
HealthScore
=
Capacity
+
CycleScore
+
ThermalScore
取平均值
Confidence
表示:
当前结果可信程度
不是健康度。
全部指标可获取:
ASOC
FCC
CycleCount
结果:
{
"confidence": 100
}
只有 ASOC:
{
"confidence": 60
}
说明:
结果可参考
但准确性下降
健康等级
95~100
Excellent
90~94
Good
80~89
Normal
70~79
Aging
<70
Replace
示例:
97 → Excellent
92 → Good
85 → Normal
75 → Aging
65 → Replace
方案优势
三星设备
使用 Fuel Gauge 原始数据:
- ASOC
- FCC
- CycleCount
准确度高。
通用 Android
兼容:
- Xiaomi
- OPPO
- vivo
- OnePlus
- HONOR
- Motorola
- Pixel
等设备。
评分分布合理
避免:
83
84
84
85
84
大量集中。
能够自然分布:
95~100 新机
90~95 状态优秀
80~90 正常使用
70~80 开始老化
<70 建议关注
结论
本方案采用:
三星:
ASOC + FCC + CycleCount + Consistency
非三星:
Capacity + CycleCount + Thermal
实现统一健康度评估。
其中三星方案优先依赖 Fuel Gauge 提供的真实老化数据,准确度明显高于传统估算方案,适合作为生产环境长期维护的电池健康评分体系。
这份文档基本可以作为你这套电池健康度算法的正式设计说明。
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/22939,转载请注明出处。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/22939,转载请注明出处。



评论0