-
更新日志页面 Stable
released this
2026-07-21 00:06:10 +08:00 | 11 commits to main since this release[1.6.0] - 2026-07-20
✨ 新增
-
魅族 21 Note 机型适配:新增
21 Note特征字识别,设计容量 5500mAh- 21 Note 运行 Flyme 12.6 版本,日志格式与 21 系列一致
- 支持
learned_cap字段直接读取,与 21 / 21 Pro 逻辑相同 - 已加入
DeviceMatching机型映射表
-
更新日志页面:内置
CHANGELOG.md渲染,版本历史一目了然- 使用
flutter_markdown解析,支持标准 Markdown 格式 - 滚动进度条:实时显示阅读进度,提升浏览体验
- 进入页面自动请求 120Hz 高刷新率,滑动更流畅(Flyme LTPO 适配)
- 滚动时呼吸动画维持高刷感知,停止后自动恢复省电策略
- 使用
-
AppBar 菜单重构:刷新按钮左移,右侧新增三点菜单
更新日志:已可用深色模式:占位(1.7.0 实现)关于:占位(1.7.0 实现)
-
原生层高刷控制:新增
MethodChannel通道,支持 Dart 侧动态申请/释放 120Hz- 进入更新日志页面自动触发
- 退出页面自动释放,不影响系统省电策略
✅ 已确认完美支持(更新)
机型 容量来源 设计容量 魅族 20 / 20 Pro / 20 INFINITY remaining_cap+status=Full4700 / 5000 / 4800 mAh 魅族 21 / 21 Pro learned_cap4800 / 5050 mAh 魅族 21 Note(新增) learned_cap5500 mAh ⚡ 优化
- UI 拆分:将
BatteryHealthPage的 UI 部分抽离至独立文件,降低耦合度 - 动画简化:移除复合动画控制器(
AnimationController),改用轻量AnimatedOpacity控制充电条目显隐 - 更新日志性能:缓存 Markdown 渲染结果,避免重复解析
- LTPO 适配:通过进度条微动 + 原生层
preferredRefreshRate,解决更新日志页面降频卡顿问题
🐛 修复
- 修复更新日志页面因
ListView+shrinkWrap导致的unbounded height渲染异常 - 修复充电条目动画状态残留导致的显示异常
- 修复部分
TextStyle中color与foreground混用导致的渲染断言错误
📊 影响范围
device_matching.dart:新增 21 Note 机型映射battery_health_page.dart:AppBar 重构,动画简化battery_data_layout.dart(新增):UI 布局抽离changelog_page.dart(新增):更新日志页面MainActivity.kt:新增原生高刷控制通道pubspec.yaml:新增flutter_markdown依赖,添加assets/CHANGELOG.md
📌 备注
- 已在魅族21 Note Flyme 12.6 上测试通过,日志解析正常 ✅
Downloads
-
-
针对性补充更新 Stable
released this
2026-07-19 20:17:41 +08:00 | 19 commits to main since this release机型匹配情况
✅ 已确认完美支持
- 魅族 20 / 20 Pro / 20 INFINITY
- 魅族 21 / 21 Pro
⚠️ 部分支持(测试中)
- 魅族 18 / 18s / 18 Pro / 18s Pro(日志存在,字段解析适配中)
- 魅族 16s(需回退原厂固件验证)
❌ 确认不支持
- 魅族 21 Note(星纪团队固件,日志格式乱码无法识别,导致异常)
- 魅族 22(系统未生成
mbattery_charger目录)
📌 说明
- 适配状态仅针对 BMS 日志可读性,与手机硬件本身无关
- 部分旧机型(如 16 系)若无日志生成,则无法使用本工具
- 后续若发现其他机型可用,将持续补充
Downloads
-
UI优化、字体更新 Stable
released this
2026-07-14 23:06:46 +08:00 | 25 commits to main since this release[1.5.2] - 2026-07-14
新增
- 浪漫雅圆字体,工程内文件为FlymeFont.ttf
🎨 UI 优化
- 字体体系重构:数字全局替换为 FlymeFont(浪漫雅圆),中文保留 HarmonyOS Sans SC
- 健康度百分比、容量数值、循环次数、电压/温度读数均使用 FlymeFont
- 中文/单位/符号保持 HarmonyOS Sans SC,确保阅读舒适度
- 温标符号修正:温度显示由
°C(度符号 + C)改为专用字符℃(U+2103),与 FlymeFont 原生适配 - 容量行视觉权重优化:
- 当前容量与设计容量数字使用 FlymeFont(字号 20,字重 300)
mAh单位改用 HarmonyOS Sans SC(字号 16,字重 500),与cycles保持一致- 整行颜色统一为
rgb(95, 95, 95),弱化视觉重量,突出健康度大数字
- 电压/温度极值显示优化:数值与单位统一使用 FlymeFont,箭头符号保留 HarmonyOS
🐛 修复
- 修复 FlymeFont 数字 1 在部分场景下显示为红色的问题(字体内部颜色预设)
- 修复容量行
designCap(设计容量)未正确应用 FlymeFont 的问题 - 修复部分
TextStyle中color与foreground混用导致的渲染断言错误 - 统一主界面与二级页面状态栏样式
📊 影响范围
battery_summary.dart:健康度/循环/容量显示样式重构battery_info_panel.dart:电压/温度显示字体统一charge_detail_page.dart:数值字体统一trend_chart.dart:坐标轴数字字体统一
📌 备注
- 本次更新纯 UI 优化,不影响数据读取与计算逻辑
Downloads
-
充电功率显示逻辑重构 Stable
released this
2026-07-08 23:53:33 +08:00 | 29 commits to main since this release[1.5.0] - 2026-07-09
🐛 修复
- 修复有线充电功率计算单位错误(µV × µA 计算时少除 1000,导致功率放大 1000 倍,属于潜藏bug,外面看不出问题)
- 修复魅族 21 系列
learned_cap因受status=Full限制导致容量未及时更新的问题 learned_cap优先级提升:在所有状态行中优先匹配,不再局限于status=Full
⚡ 优化
- 有线充电功率显示重构:
- 主界面:
≈{实际功率}w/{请求功率}w(例:≈30w/65w) - 二级页面:拆分为“请求档位”(
≈80w/L-10)和“实际功率”(≈30w)两行 - USB 慢充保持
≈7.5w不变
- 主界面:
- UI 统一:
- 统一主界面与二级页面状态栏背景色
- 统一主界面与二级页面 AppBar 背景色为
Colors.white - 状态栏图标保持深色(
Brightness.dark)
Downloads
-
针对20系识别问题的补充更新 Stable
released this
2026-07-07 08:35:45 +08:00 | 34 commits to main since this release[1.4.7] - 2026-07-07
🐛 修复
- 修复魅族 20 系列在「今日无充满记录」时,电压极值、温度极值、循环次数显示为 0 的问题
- 修复字段提取与容量提取耦合导致的备用机场景数据丢失
⚡ 优化
- 字段提取(cycle / tbat / vbat / 极值)与容量提取(cap)解耦
- 无论当日是否有
status=Full,均从validLines中提取常规字段 - 容量单独处理:有值则更新,无值则复制前一日数据
📊 影响范围
BatteryHealthPage.readBatteryCapacity重构CapacityExtractor保持不变(1.4.5 已优化)BatteryDataService/DatabaseService保持不变
Downloads
-
针对魅族20系的补充强化更新 Stable
released this
2026-07-05 23:47:54 +08:00 | 37 commits to main since this release1.4.5 - 2026-07-05
🐛 修复
- 修复魅族 20 系列无法识别
learned_cap导致健康度显示异常的问题 - 修复备用机场景下因不充电导致健康度每日跳动的问题
⚡ 优化
- 容量提取仅从
status=Full行采样,数据更准确(BMS 校准态) - 支持
remaining_cap单位自动识别(µAh / mAh),兼容 20/21 系列日志格式 - 无充电日自动沿用最近一次有效容量数据,健康度曲线更平滑
🧪 测试
已在魅族 20 Pro(备用机)连续四天未充电,数值稳定 ✅
等待其他同设备的朋友参与测试Downloads
- 修复魅族 20 系列无法识别
-
SAF核心更新 Stable
released this
2026-07-05 01:23:13 +08:00 | 41 commits to main since this release1.4.0 — SAF 权限改造
🚀 移除
- MANAGE_EXTERNAL_STORAGE 权限:移除全盘存储权限,符合 Android 11+ 存储规范,提升应用兼容性
✨ 新增
- SAF 文件夹授权:通过 Storage Access Framework 引导用户授权
mbattery_charger文件夹,无需申请全局存储权限 - 授权持久化:授权 URI 保存至 SharedPreferences,应用重启后自动恢复,无需重复授权
- Kotlin 原生 SAF 实现:使用
startActivityForResult+onActivityResult处理文件夹选择,兼容 Android 5.0+ - URI 跨重启恢复:通过
restoreUri方法将 Dart 端缓存的 URI 传递给 Kotlin 端,确保safUri始终有效
🐛 修复
- 20 系兼容性问题:理论上将彻底解决魅族 20 系列无法读取日志文件的问题
- 授权弹窗残留:优化对话框关闭逻辑,授权成功后自动关闭弹窗,不再残留
- 应用重启后数据丢失:修复重启后电压、温度、循环次数全部为 0 的问题
🎨 优化
- 状态栏样式:状态栏统一为白色背景、深色图标,与应用主题保持一致
- AppBar 沉浸式:AppBar 背景与页面主体颜色统一,消除视觉色差
📦 版本说明
- 开发分支:
1.3.0-dev.1→1.3.0-dev.x→ 合并为1.4.0 - 下个版本
1.5.0将开始功率计算逻辑补充
🔜 下一个版本预告
- 1.5.0:功率计算逻辑补充,档位映射完善
- 1.6.0:更新日志页面(Markdown 渲染)
- 2.0.0:数据看板扩展(月/季/年趋势、折线图)
Downloads
-
1.3.0 Stable
released this
2026-07-04 12:40:50 +08:00 | 56 commits to main since this release🐛 修复
- 0-8点跨天数据读取:统一使用 UTC 时间生成日志文件名,彻底解决凌晨时段无法读取当日数据的问题(影响所有机型)
- FLOAT 模式误标为 PPS:real_type 优先级调整为最高,FLOAT/SDP 正确显示为 USB 充电,不再错误显示 PPS
- 旧日志污染修复:时间窗口以充电插入时刻为基准向前看,排除旧日志干扰,确保充电状态准确
✨ 优化
- 时间窗口精确定位:充电开始后 3 分钟内的日志才有效,避免历史数据污染当前状态
- 插入识别逻辑优化:插入瞬间清空旧类型,显示“识别中...”,等待新日志落盘后自动刷新
📦 版本说明
- 开发分支:
1.2.0-dev.1→1.2.0-dev.3→ 合并为1.3.0 - 下个版本
1.4.0将开始 SAF 权限改造(解决 20 系兼容性)
🔜 下一个版本预告及大致展望
- 1.4.0:SAF 权限改造,彻底解决魅族 20 系列无法读取日志的问题
- 1.5.0:功率计算逻辑补充,档位映射完善
- 2.0.0:数据看板扩展(月/季/年趋势、折线图、充电曲线)
Downloads
-
1.2.0及补充更新 Stable
released this
2026-07-03 22:10:56 +08:00 | 69 commits to main since this release1.0.0:软件方向、UI定义完成
1.1.0:15天趋势显示1.2.0 (2026-07-02)
🐛 修复
- UTC 时区修正:统一使用 UTC 时间生成日志文件名,彻底解决 0 点后无法读取当日数据的问题
- 时间窗口优化:日志时间戳与系统当前时间统一采用 UTC 比较,确保 3 分钟窗口判断准确
- 电压/温度读取恢复:修复因时区错位导致的数据全零显示问题
✨ 优化
- 协议识别增强:在原先有线充电识别功能的基础上,增加无线充电
wls_type字段识别,并支持通用匹配,自动识别EPP、MZ_EPP、BPP等变体协议 - 功率计算逻辑补充:有线充电档位映射表新增 27W、33W 等档位,匹配更精准
- UI 反馈优化:充电状态提示更清晰,区分“识别中...”与“读取中...”
Downloads