3.4 KiB
3.4 KiB
MEIZU Battery Healthy
专机专配 · 仅针对魅族独家开发
一个简洁的手机电池健康度监测工具
通过读取 BMS 日志(/storage/emulated/0/mbattery_charger/)直接获取电池真实数据
不依赖系统 API 估算。
功能
- 读取 BMS 日志,解析
learned_cap、cycle、tbat、vbat等关键字段 - 显示电池健康度(当前容量 / 设计容量)
- 显示循环次数、电压、温度(含当日极值)
- 近 15 天容量百分比趋势柱状图
- 实时充电状态识别(有线 / 无线、PPS / SDP / EPP)
- 充电功率、电压、电流实时显示
- 充电详情页(协议 / 功率 / 电压 / 电流 / 档位)
当前状态
| 版本 | 主题 | 状态 |
|---|---|---|
| 1.5.0 | 功率计算优化 | ✅ 已发布 |
| 1.5.2 | 部分场景字体替换 | ✅ 已发布 |
| 1.6.0 | 更新日志独立页面 | 📋近期开发 |
| 1.7.0 | 适配夜间模式 | 📋近期开发 |
| 2.0.0 | 数据看板月份显示扩展等系列更新 | 📋 远景 |
| 3.0.0 | 搭配PC上位机记录充电信息等 | 📋 远景 |
环境要求
- Flutter SDK: ^3.9.2
- Android: 8.0+ (API 26+)
机型匹配情况
| 机型 | 系统版本 | 容量来源 | 设计容量 | 状态 |
|---|---|---|---|---|
| 魅族 22 | Flyme 12.x | 系统未生成 mbattery_charger 目录 |
5510 mAh | ❌ 不支持 |
| 魅族 21 | Flyme 12.x | learned_cap |
4800 mAh | ✅ 与 21 Pro 同步获得支持 |
| 魅族 21 Pro | Flyme 12.x | learned_cap |
5050 mAh | ✅ 完美支持 |
| 魅族 21 Note | Flyme 12.x | learned_cap |
5500 mAh | ✅ 1.6.0 新增支持 |
| 魅族 21 Note | Flyme 10 / 11 | 日志格式异常 | — | ❌ 不支持 |
| 魅族 20 | Flyme 12.x | remaining_cap + status=Full |
4700 mAh | ✅ 1.4.0 首次支持 |
| 魅族 20 Pro | Flyme 12.x | remaining_cap + status=Full |
5000 mAh | ✅ 1.4.0 首次支持 |
| 魅族 20 INFINITY | Flyme 12.x | remaining_cap + status=Full |
4800 mAh | ✅ 1.5.3 字段匹配 |
| 魅族 18 / 18s / 18 Pro / 18s Pro / 18X | Flyme 9 / 10 | 日志存在,字段适配中 | 4000 / 4500 mAh | ⚠️ 等待测试中 |
| 魅族 17 / 17Pro | Flyme 8 / 9 / 10 | 等待群友提供字段信息 | 4500 / 4500mAh | ⚠️ 待验证 |
| 魅族 16th / 16th Plus / 16X / 16s / 16sPro / 16Xs / 16T | Flyme 8 / 9 | 需回退原厂固件验证 | 3600 mAh | ⚠️ 待验证 |
📌 说明
- ✅ 完美支持:已通过实机验证,日志解析正常,所有字段完整
- ⚠️ 测试中:日志存在但字段格式与 20/21 系不同,需要进一步适配
- ⚠️ 待验证:理论上可能支持,需要实机反馈确认
- ❌ 不支持:系统未生成 BMS 日志目录,或日志格式无法解析
- 系统版本说明:Flyme 12.x 及以上版本日志格式统一,Flyme 10/11 及以下版本日志格式可能存在差异
目前据群友反馈已知:
- 魅族22无mbattery_charger目录生成,无法实时计算相应百分比,因此已在最近版本去除相关匹配信息
- 魅族18在后续的版本中关闭了mbattery_log生成,疑似无效,老版本可能支持
- 最完美的支持版本至少可覆盖魅族20/21系机型(20inf已确认,机型匹配ID已更新)
如果需要基于此源代码构建
# 拉取依赖
flutter pub get
# Debug 版本
flutter run --debug
# Release APK
flutter build apk --release --target-platform android-arm64