Files
MEIZU-Battery-Healthy/assets/CHANGELOG.md
T

9.5 KiB
Raw Blame History

[1.9.0] - 2026-10-11

✨ 新增功能

  • BatteryManager 实时数据接入
    • 新增原生 BatteryManagerHelper,通过 Android 官方 API 读取电池端真实功率
    • 主界面充电行改为显示电池端实时功率(1 秒刷新),反映电池实际吸收的能量
    • 充电详情页拆分为两个数据源分区:
      • BMS 日志:协议、标定档位、实际功率、电压、电流(原有)
      • BatteryManager(电池端):电池端电压、电流、功率(新增)
    • 与专业功率计(PowerZ)实测数据一致,误差在 0.02W 以内

🎨 体验优化

  • 充电行显示格式调整

    • 有线充电:充电中 · PPS · 5.98W / 7.5W(实际功率 / 标定档位)
    • 无线充电:充电中 · 无线 · 12.3W
    • USB 慢充:充电中 · USB · 2.1W
    • 瓦特单位统一为大写 W
    • 7.5W 等带小数的档位保留一位小数,其余整数值去掉 .0
  • 字体细节优化

    • 充电行数字与拉丁字母改用 Flyme 字体,中文字符保持 HarmonyOS Sans SC
    • 解决混合文本下的字体割裂感
    • 充电详情页所有功率数值同步应用 Flyme 字体

🐛 问题修复

  • 修复主界面充电行在充电器接入初期显示"读取中..."后数值迟迟不刷新的问题
  • 修复详情页功率数值字体与其它行不统一的问题
  • 修复 wired_level 解析后标定档位显示取整误差(如 ≈8W/L-1 修正为 ≈7.5W/L-1)

📝 技术说明

  • BATTERY_PROPERTY_CURRENT_NOW 读数为电池端净电流(充电器输入减去系统功耗),而非充电器输出端数据
  • 电池接近满电时数值会明显偏低(涓流阶段),属正常现象
  • 与系统状态栏显示的充电功率为不同概念,前者反映电池实际吸收,后者反映充电器输出

[1.8.0] - 2026-10-11

新增

  • 夜间模式:支持浅色 / 深色 / 跟随系统三种模式,可在右上角菜单切换
  • 主题系统重构:统一颜色抽象,所有界面颜色由主题管理

优化

  • 深色主题下潘通色系重新调色,保证对比度
  • AppBar 与内容区背景统一,消除浅色模式下的分界线

[1.7.1] - 2026-09-16

新增

  • 平均温度显示:温度面板新增平均温度,与最高/最低温度同排展示(↑ xx.x℃ ↓ xx.x℃ ⌀ xx.x℃),更直观了解电池工作温度区间

优化

  • 数据库升级至 v2:新增 temp_avg 字段,历史数据自动迁移,每日平均温度随扫描自动入库
  • 构建工具链同步:适配最新 Flutter SDK 的 Android 构建要求(AGP 9.0 / Kotlin 2.2 / Gradle 9.3)
  • Release 打包加固:补齐 ProGuard 混淆规则,release 版本构建更稳定

修复

  • 修复 Release 版本因缺少混淆规则文件导致打包失败的问题

[1.7.0] - 2026-07-31

✨ 新增功能

  • 关于页面

    • 右上角三点菜单新增“关于”入口
    • 展示应用 Logo、版本号、作者信息及版权声明
    • 支持一键跳转源码仓库(Gitea),便于用户反馈问题
  • 数据反作弊能力(紧急发布)

    • 容量数据入库前增加有效性校验,拒绝异常值污染趋势图
    • 校验规则:容量低于设计容量 60% 或高于 115% 的日志数据将被自动过滤
    • UI 层同步增加异常状态检测,容量或电压异常时相关数值自动标红警示
    • 该机制同时作用于历史日志扫描与实时数据读取,确保统计结果真实可信

🔧 问题修复

  • 修复部分机型上 url_launcher 无法正常打开链接的问题(Android 11+ 包可见性适配)

[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=Full 4700 / 5000 / 4800 mAh
魅族 21 / 21 Pro learned_cap 4800 / 5050 mAh
魅族 21 Note(新增) learned_cap 5500 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

📌 备注

  • 本次更新为 1.6.0 封版版本,后续将聚焦 1.7.0(深色模式 + 关于页面)
  • 21 Note 在 Flyme 12.6 上测试通过,日志解析正常 ✅

[1.5.3] - 2026-07-19

  • 新增:机型匹配优化

✅ 已确认完美支持

  • 魅族 20 / 20 Pro / 20 INFINITY(基于remaining_cap + status=full联合判断)
  • 魅族 21 / 21 Pro(直接读取learned_cap字段信息)

⚠️ 部分支持(测试中)

  • 魅族 18 / 18s / 18 Pro / 18s Pro(日志存在,字段解析适配中)
  • 魅族 16s(需回退原厂固件验证)

❌ 确认不支持

  • 魅族 21 Note(星纪团队固件,日志格式乱码无法识别,导致异常)
  • 魅族 22(系统未生成 mbattery_charger 目录)

📌 说明

  • 适配状态仅针对 BMS 日志可读性,与手机硬件本身无关
  • 部分旧机型(如 16 系)若无日志生成,则无法使用本工具
  • 后续若发现其他机型可用,将持续补充

[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 优化,不影响数据读取与计算逻辑

[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)

更早期日志请移步至项目Git Release页面查看