• 1.9.0 125fb969e4

    1.9.0 Stable

    lxh2875931338 released this 2026-10-11 17:44:35 +08:00 | 4 commits to main since this release

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

    Downloads
  • 1.8.0 4829cd1da2

    1.8.0 Stable

    lxh2875931338 released this 2026-10-11 16:13:51 +08:00 | 6 commits to main since this release

    [1.8.0] - 2026-10-11

    新增

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

    优化

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

    1.7.1 Stable

    lxh2875931338 released this 2026-09-16 22:40:46 +08:00 | 10 commits to main since this release

    1.7.1

    新增

    • 平均温度显示:温度面板新增平均温度,与最高/最低温度同排展示(↑ 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 版本因缺少混淆规则文件导致打包失败的问题
    Downloads
  • 1.7.0 7c5bcd22f0

    lxh2875931338 released this 2026-07-31 21:18:13 +08:00 | 13 commits to main since this release

    [1.7.0] - 2026-07-31

    ✨ 新增功能

    • 关于页面

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

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

    🔧 问题修复

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

    lxh2875931338 released this 2026-07-21 00:06:10 +08:00 | 31 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=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

    📌 备注

    • 已在魅族21 Note Flyme 12.6 上测试通过,日志解析正常 ✅
    Downloads
  • 1.5.3 b390311827

    lxh2875931338 released this 2026-07-19 20:17:41 +08:00 | 39 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
  • 1.5.2 ae9bb2dfa1

    lxh2875931338 released this 2026-07-14 23:06:46 +08:00 | 45 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
  • 1.5.0 4857aa5d1b

    lxh2875931338 released this 2026-07-08 23:53:33 +08:00 | 49 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
  • 1.4.7 46f8dbc67e

    lxh2875931338 released this 2026-07-07 08:35:45 +08:00 | 54 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
  • 1.4.5 3d2f665e76

    lxh2875931338 released this 2026-07-05 23:47:54 +08:00 | 57 commits to main since this release

    1.4.5 - 2026-07-05

    🐛 修复

    • 修复魅族 20 系列无法识别 learned_cap 导致健康度显示异常的问题
    • 修复备用机场景下因不充电导致健康度每日跳动的问题

    ⚡ 优化

    • 容量提取仅从 status=Full 行采样,数据更准确(BMS 校准态)
    • 支持 remaining_cap 单位自动识别(µAh / mAh),兼容 20/21 系列日志格式
    • 无充电日自动沿用最近一次有效容量数据,健康度曲线更平滑

    🧪 测试

    已在魅族 20 Pro(备用机)连续四天未充电,数值稳定 ✅
    等待其他同设备的朋友参与测试

    Downloads