一.使用Xcode的Energy Impact
- 方法:连接真机,在Xcode中运行应用,查看Energy Impact图表,分析CPU、网络、定位、GPU等耗电情况。
- 优点:简单直观,可快速定位耗电高的代码区域。
- 缺点:仅提供定性数据,无法获取详细的耗电数值。
- 详细操作(待补充)
二.使用Sysdiagnose
- 方法:在开发者官网下载BatteryLife.mobileconfig证书并安装到测试设备,运行应用后生成诊断日志,使用Xcode分析日志中的耗电数据。
- 优点:提供详细的电量消耗、电压、电流等数据,支持对比测试。
- 缺点:需要开发者账号,操作步骤较为复杂。
- 详细操作:
1.准备工作
获取苹果开发者账号。
下载BatteryLife.mobileconfig证书,可通过苹果开发者官网的Profiles and Logs页面获取,或使用提供的网盘链接(链接: https://pan.baidu.com/s/1TSyEJL34M7nME6TQQo-yaQ 提取码: d0c4)。
将证书安装到测试设备上,可通过AirDrop等方式发送到手机并安装。
2.测试前设置
将手机电量充至80%以上,断开电源,静置10分钟。
关闭自动亮度、蓝牙、推送消息、个人热点,开启定位服务,将屏幕亮度调至最低,音量调至最低,关闭后台应用程序。
3.触发Sysdiagnose诊断
同时按住音量+键、音量-键和电源键(或Home键,取决于设备型号),持续1至1.5秒后松开。
前往“设置”→“隐私”→“分析与改进”→“分析数据”,确认出现类似以下三个文件,表示触发成功:
powerlog_*.PLSQL
powerlog_*.PLSQL.gz
powerlog_*.plist
4.执行测试用例
记录测试开始时间。
在测试设备上运行目标应用,按照设计的测试用例进行操作。
每个测试场景之间间隔1分钟,确保数据准确。
测试过程中避免充电。
5.收集诊断数据
测试完成后,静置设备约30分钟,以确保数据完全写入。
将设备连接到电脑,同步数据。
在Mac上,通过Finder访问以下路径获取诊断文件:
/var/folders/.../com.apple.sysdiagnose/
在Windows上,路径可能有所不同,请参考相关文档。
6.数据分析
解压sysdiagnose文件,找到其中的.PLSQL文件。
使用SQLite可视化工具打开.PLSQL文件,分析以下关键表:
PLBatteryAgent_EventBackward_Battery:整机电量信息,包括电流、电压、温度等。
PLBatteryAgent_EventBackward_Battery_UI:剩余电量百分比。
PLIOReportAgent_EventBackward_EnergyModel:各硬件模块(CPU、GPU、DRAM等)的耗电数据。
PLAccountingOperator_Aggregate_RootNodeEnergy:各应用的详细耗电数据。
PLAccountingOperator_EventNone_Nodes:应用和硬件模块的ID映射。
PLAccountingOperator_EventNone_AllApps:设备上安装的所有应用信息。
PLApplicationAgent_EventForward_Application:应用运行状态记录。
PLAppTimeService_Aggregate_AppRunTime:应用运行时长统计。
PLBatteryAgent_EventForward_LightningConnectorStatus:Lightning接口连接状态。
PLBatteryAgent_EventNone_BatteryConfig:电池配置信息,如容量、循环计数、寿命等。
7.结果分析与报告
根据数据分析结果,评估应用的耗电性能。
与竞品应用的数据进行对比,找出差异和改进点。
生成详细的测试报告,提出优化建议。