一个专为 Apple Silicon Mac mini 设计的电源监控应用,实时监测设备功耗、能耗统计和电费估算。
- 🔋 实时功率监控: 通过 IOKit 获取 Mac mini 的实时功耗数据,2秒更新频率
- 📊 能耗统计: 累计能耗计算(千瓦时)和实时电费估算
- 📈 历史数据: 支持日、周、月时间范围的历史数据查看和统计分析
- 🎯 菜单栏集成: 在菜单栏显示实时功率和快捷操作,支持快捷键
- ⚙️ 集成设置: 主页面选项卡式设置界面,支持电费配置、主题切换和数据管理
- 🌙 深色模式: 支持系统深色/浅色主题自动切换
- 💾 数据持久化: 使用 UserDefaults 安全存储历史数据,支持数据导出
- 🗑️ 数据管理: 支持清除历史数据和导出CSV格式数据
- 🔄 实时更新: 历史数据页面自动刷新,数据变化即时可见
- macOS 12.0 或更高版本
- Apple Silicon Mac (M1/M2/M3 系列芯片)
- Xcode 14.0 或更高版本
- 克隆仓库:
git clone https://github.com/sulimu2/Mac-mini-PowerMonitor.git
cd Mac-mini-PowerMonitor
- 使用 Xcode 打开项目:
open PowerMonitor.xcodeproj
- 选择编译目标为 "My Mac" (使用 Apple Silicon)
- 点击运行按钮 (⌘R) 编译并运行应用
从 Releases 页面 下载最新版本的 .dmg
安装包,拖拽应用到 Applications 文件夹即可。
- 启动应用后,菜单栏会出现功率显示图标
- 点击菜单栏图标可以查看实时数据和快捷操作
- 点击"打开主窗口"查看完整的仪表盘界面
- 仪表盘标签: 显示实时功率仪表、能耗统计和电费估算
- 历史记录标签: 查看不同时间范围的历史数据图表
- 设置标签: 配置电费单价、外观主题和数据管理(集成到主页面)
- 显示当前实时功率
- 快速打开主窗口 (⌘O)
- 打开设置界面 (⌘,)
- 重置统计数据 (⌘⇧R)
- 退出应用 (⌘Q)
在设置界面中可以配置当地的电费单价(元/千瓦时),默认值为 0.6 元。
- 自动保存: 应用会自动保存最近30天的详细功耗数据
- 数据清除: 支持一键清除所有历史数据,释放存储空间
- 数据导出: 支持导出CSV格式的历史数据,方便分析和存档
- 实时同步: 所有数据变化实时同步到各个界面,确保数据一致性
- SwiftUI: 现代化声明式UI框架,支持macOS 12.0+
- IOKit: Apple官方硬件访问框架,用于获取电源信息
- Combine: 响应式编程框架,实现数据流管理
- UserDefaults: 轻量级数据持久化存储
- 数据采集层: IOKit.power_sources → PowerService (实时电源数据获取)
- 业务逻辑层: PowerMonitor → DataModel (数据处理和存储管理)
- UI展示层: SwiftUI Views + @EnvironmentObject (响应式UI更新)
- 通知系统: NotificationCenter (跨组件数据同步和状态更新)
Mac-mini-PowerMonitor/
├── PowerMonitor/
│ ├── Models/ # 数据模型层
│ │ ├── PowerMonitor.swift # 核心监控逻辑
│ │ ├── DataModel.swift # 数据持久化管理
│ │ └── SettingsManager.swift # 设置管理
│ ├── Services/ # 服务层
│ │ └── PowerService.swift # IOKit电源服务
│ ├── Views/ # 视图组件层
│ │ ├── ContentView.swift # 主界面(选项卡导航)
│ │ ├── DashboardView.swift # 仪表盘视图
│ │ ├── HistoryView.swift # 历史记录视图
│ │ ├── SettingsView.swift # 独立设置视图
│ │ └── MenuBarView.swift # 菜单栏组件
│ ├── Utilities/ # 工具类
│ │ ├── Constants.swift # 常量定义
│ │ ├── Extensions.swift # 扩展方法
│ │ └── AppDelegate.swift # 应用委托
│ └── Resources/ # 资源文件
│ ├── Assets.xcassets # 应用图标和资源
│ ├── entitlements.entitlements # 权限配置
│ └── LaunchAgent.plist # 启动代理配置
├── build.sh # 构建脚本
├── Package.swift # Swift包管理配置
├── README.md # 项目说明文档
├── CHANGELOG.md # 版本变更日志
├── INSTALL.md # 安装指南
├── RELEASE_NOTES.md # 发布说明
└── .gitignore # Git忽略规则
- 确保使用 Apple Silicon 架构编译
- 需要启用 App Sandbox 和硬件访问权限
- 查看控制台输出获取详细日志
- 使用模拟数据模式进行UI测试
- 监控内存使用情况避免泄漏
A: 请确保应用有权限访问电源信息,通常在首次运行时系统会提示授权。
A: 应用使用 UserDefaults 存储数据,位置在 ~/Library/Containers/com.tencent.PowerMonitor/Data/Library/Preferences/
A: 目前仅优化支持 Apple Silicon Mac,Intel Mac 可能无法准确获取功耗数据。
欢迎提交 Issue 和 Pull Request!请确保:
- 遵循现有的代码风格
- 添加适当的测试用例
- 更新相关文档
本项目采用 MIT 许可证,详见 LICENSE 文件。
如有问题或建议,请通过以下方式联系:
⭐ 如果这个项目对你有帮助,请给它一个 Star!