Repository navigation
Releases: ShawnRn/CandyMonitor
Releases · ShawnRn/CandyMonitor
Release list
CandyMonitor v1.0.21
⚡ 深度性能优化与能耗瘦身
- SQLite 复合索引注入:为采样数据自动构建复合索引,解决数十万条历史采样导致的磁盘全表扫描,单次查询耗时由 83.5ms 直降至 0.08ms(提升 > 1,000 倍)。
- 彻底消除视图死循环与多重重排:优化主视图自适应布局,消除 ScrollView 内部布局测量震荡,修复主线程持续卡顿。
- 内存堆积彻底根治:重构采样过滤机制,杜绝闭包内高频生成集合;结构体驱动会话列表渲染,消除数千次托管对象属性反射;整体常驻内存从 300MB 降至 30MB 级别。
- 菜单栏渲染与图片智能缓存:无功率状态采用系统原生模板渲染,有功率状态采用步进图片缓存,杜绝每秒无谓 CoreGraphics 重绘。
- 动态自适应轮询:空闲与未连接设备时平滑降频,待机能耗降低 50% 以上,CPU 占用降至 0.0% ~ 2.0% 极低水平。
CandyMonitor 1.0.20
新增特性 & 深度重构 (v1.0.20)
🎮 ADB 智能绑定重构与原生 PD 掌机/PC 防误绑自愈
- 真实充电状态排他原则:自动绑定候选设备严格校验
isOnline && isCharging,放电中(!isCharging)的 Android 手机绝不参与任何物理充电口的自动绑定。 - 原生 USB-PD 电池遥测排他:针对 ASUS ROG Ally、Steam Deck、联想拯救者掌机、Switch 及主流笔记本电脑等设备,通过小电拼 USB-PD 协议原生读取底层电池数据,严禁此类端口误绑定 ADB。
- 物理冲突实时自愈(Auto-Healing):端口大功率供电($\ge 1.5\text{W}$)但绑定的 ADB 设备处于放电中,或端口已具备原生 PD 电池数据时,系统立即自动解除误绑。
- 会话历史清洗自愈:误绑解除后同步清洗活跃会话的
boundAndroidSerial,并将此前被污染的设备名称自动恢复为标准充电桩/PD 设备名。 - 会话级手动解绑防回潮黑名单:用户点击【解除绑定】后记入防回潮黑名单,物理拔线前彻底锁定,杜绝下一秒轮询再次误绑回潮。
⚡️ ADB 版本在线更新检测与一键全自动升级
- 官方渠道版本比对:自动异步查询 Homebrew Cask 官方元数据并展示官方发布日志链接,支持语义化版本检测。
- 一键自动化更新:在「无线调试」环境检测卡片中一键触发终端自动运行 Homebrew 升级,无需手动复制粘贴命令。
- 智能优选最高版本:扫描系统环境变量、Android SDK、Homebrew 等多处路径并按版本降序排列,默认智能选取最高版本(如
37.0.1),支持即时服务平滑热切换。
📱 无线 ADB 设备管理与独立电量/电池监控
- ADB 独立电池监控(解耦端口模式):支持脱离具体物理充电端口,仅记录 Android 设备的电量、电压与温度变化曲线,满足移动场景、无线充电及纯放电续航评测需求。
- iPhone 端口彻底物理级解耦:检测到 Apple 设备时直接通过小电拼原生 PD 报文读取电池状态,与 Android ADB 彻底物理隔离,保护设备隐私与数据纯净度。
📊 专业级充电性能分析(ChargerLAB 风格)
- 100% (UI) 与实际充满(涓流结束)时间精准区分:
- 严格区分“手机 UI 显示 100%”与“涓流充电彻底截止”两个核心时间节点;
- 引入智能涓流截止算法:在 100% 之后持续监测功率,首次跌破 <= 0.8W 稳定底噪(或接收到系统 battery_full 广播)时判定为实际充满;
- 实时交互:当达到 100% 但仍有充入电流时,卡片高亮呈现“涓流中...”,让充电进程一目了然。
- 动态起充电量自适应里程碑:
- 自动读取真实起充电量(如 28% -> 50%、28% -> 80%、28% -> 100% (UI)),告别固定从 0% 开始的生硬展示;
- 具备起充防倒灌保护与阶段功率边界校验。
🚀 极速平滑与长时记录性能飞跃
- 双向 EMA 零相位滤波算法:彻底消除 Android 系统 1% 整数跳变带来的阶梯状粗糙锯齿,图表输出如丝般平滑顺畅,悬停游标保持原始保真读数。
- 智能时间桶降采样:将 Swift Charts 绘制点数约束在 260 点以内,GPU/CPU 渲染负担瞬降 90% 以上。
- 纯值驱动与 Equatable 缓存优化:500+ 条历史记录列表滚动彻底告别卡死,滑动帧率恢复至极致流畅的 120Hz ProMotion。
- 节流持久化与空载样本保护:SwiftData 落盘节流至 5~15 秒一次,消除通知风暴;修复独立记录结束时的 0W 误剪裁问题。
CandyMonitor 1.0.19
新增特性 & 性能优化 (v1.0.19)
⚡️ 深度性能与 CPU 优化
- SwiftData 批量缓冲持久化 (Batch Save):从原先每秒高频落盘改为 30 秒/15 次采样批量提交,消除长时间挂机导致的磁盘 I/O 和 SQLite 频繁写入卡顿。
- 图表降采样与重绘解耦:限制 SwiftCharts 绘制点上限,避免高频数据更新时主线程高 CPU 占用与掉帧。
- 后台 Task 健壮生命周期管理:完善设备切换和断开连接时的 Task 清理,避免后台空转泄漏。
⏱️ 长时间记录与涓流超时自动结束
- 超时保护机制:支持设置长时间持续记录上限(如 180 分钟)及长时间涓流充电上限(如低功率持续 30 分钟)。
- 倒计时提示与交互:触发超时时,应用内顶部弹出醒目倒计时横幅(默认 30 秒),用户可选择“继续记录”或“立即结束”。
- macOS 原生通知集成:支持向系统通知中心发送提醒,并在倒计时归零未操作时自动安全保存并结束会话。
- 全新配置选项:在设置页中提供了会话超时、涓流阈值、倒计时时长的完整自定义面板。
CandyMonitor 1.0.18
更新日志
- 设备图示手动选择:设置中支持自定义设备图示型号(CoCan Mirror / 02S / 02 Ultra / 自动识别)。
- 菜单栏弹窗优化:预览图表紧贴主弹窗侧边边缘;隐藏未接入的空闲端口。
- 大数据量性能提升:优化长时间(20h+)采样与数据库查询性能,极大降低 CPU 与内存开销。
CandyMonitor 1.0.17
更新日志
- 修复了 iPhone 充电时即使有功率记录曲线也会提前意外结束的问题。
- 增加了自适应的涓流充电阈值,大功率设备(如手机/平板,峰值功率 >= 5.0W)使用 1.0W 判定阈值,小功耗设备(如手环/耳机,峰值功率 < 5.0W)使用 0.3W 判定阈值,且设备不断开但功率回升到 >= 2.5W 时将自动重新激活记录。
- 引入双阈值滞后防抖算法解决充电末期低功率时菜单栏功率数字频繁闪烁(反复出现和消失)的问题(总功率 > 0.8W 开启显示,跌破 0.3W 时自动隐藏,避免在 0.5W 临界值抖动)。
CandyMonitor 1.0.16
更新日志
- 🚀 支持 MCP SSE 与局域网(LAN)地址双栏独立配置
- ⚡️ 实现局域网数据刷新源优先读取,无法连接时自动无感降级到 MCP
- 🐞 修复添加小电拼弹窗点击卡片对 MCP 地址的覆盖干扰
- 🛠 修复右上角加号按钮在界面重绘时产生动画偏移乱飞的 Bug
- 📦 打包升级:使用 create-dmg 自动生成带拖拽背景和 Applications 快捷方式的 DMG
CandyMonitor 1.0.15
更新日志
- 🛠 修复功率拓扑主卡片高度对齐问题(修复连接中状态下高度缩水,自动占满对齐右侧栏)
- 🔋 优化断网自动重连逻辑,避免无限 Connecting 重试循环
- ⚡️ 提高菜单栏图标与刷新频率的响应速度
- 📝 优化异常场景的 Schema 反序列化诊断日志
CandyMonitor 1.0.14
更新日志
- 彻底修复主窗口关闭后,通过 Dock 或状态栏通知无法重新唤醒的问题 (重新设计了通知观察者生命周期)
- 恢复菜单栏弹窗为系统原生的 MenuBarExtra 窗口样式
- 优化数据遥测单行展示逻辑,防止分钟数过多时发生折行
- 优化首页全程充电记录卡片布局,极大提升紧凑感与美观度
CandyMonitor 1.0.13
更新日志
- 恢复菜单栏弹窗为系统原生的 MenuBarExtra 窗口样式
- 优化数据遥测单行展示逻辑,防止分钟数过多时发生折行
- 优化首页全程充电记录卡片布局,极大提升紧凑感与美观度
CandyMonitor 1.0.12
更新日志
- 优化首页全程充电记录卡片布局,极大提升紧凑感与美观度
- 优化数据遥测单行展示逻辑,防止分钟数过多时发生折行
- 修复主窗口关闭后无法通过 Dock 或应用图标重新拉起的问题