利用sysdiagnose开展IOS耗电量测试
参考:iOS 电量测试实践https://cloud.tencent.com/developer/article/1006222
iOS耗电量优化实践https://www.jianshu.com/p/bd2c1ce5c02a
sysdiagnose for iOS官方介绍文档。
Sysdiagnose:Sysdiagnose是苹果的日志系统,记录电池、第三方APP、各种系统功能和应用的所有运行情况,将Sysdiagnose导出并解压后,我们能在文件夹中找到名为powerlog_xxxxx.PLSQL的文件,用数据库可视化工具(本文使用SQLiteStudio)打开,其中详细记录了我们进行iOS耗电量测试的所需的数据。
备注:在参考其他教程时,都会让去苹果开发者网站安装对应的证书,不过,在实际操作中,发现可以通过打开iPhone的开发者功能,前往log中打开Battery选项。若还是在Sysdiagnose中未发现Powerlog_xxxx.PLSQL文件,可前往苹果开发者网站登录开发者账号下载Battery Life的profile后重试。
以“测试APP1、APP2二十分钟单通道预览耗电量”为例
一、用例执行
将手机设为固定亮度,电量最好保持在80%以上,断开电源。由于记录APP各模块耗电量的数据1h统计一次,所以我们在某一小时内(如15:00-16:00)内对同个APP只能执行一项用例,例如:15:05-15:25执行APP1的用例,15:30-15:50执行APP2的用例,并在该小时其余时间段不能运行上述APP。为方便之后进行数据查找,可以记下执行用例开始和结束的时间戳。
二、数据获取
- 触发sysdiagnose诊断。同时按住按音量+和音量-和息屏(唤醒)键1至1.5秒并释放,会触发截图或息屏并有一个短促的振动,前往设置→隐私→分析与改进→分析数据,若同时出现类似如下三个文件则说明触发成功。
- 等待诊断数据收集完成(大约10min),前往设置→隐私→分析与改进→分析数据,查找对应时间点触发的系统诊断文件 。
- 根据官方文档,我们可以同步手机数据至Windows或者macOS设备,去对应的目录下即可找到sysdiagnose文件(尝试,未成功)。除此之外,我们可以直接点击进入文件,通过右上角分享按钮,使用AirDrop或社交软件将文件传输到macOS或Windows设备。
- 将sysdiagnose文件解压,进入目录logs/powerlogs/,找到.PLSQL文件,即为我们所需要的记录电池信息的数据库文件,用SQLite可视化工具打开。
三、数据分析
几个比较重要的表(需要更多表信息可以访问参考文章链接):
表名 | 内容 |
PLAccountingOperator_EventNone_Nodes
| 该表记录了各APP包名与其对应的ID以及各硬件模块与其对应的ID
|
PLAccountingOperator_Aggregate _RootNodeEnergy
| 各个APP的详细耗电量数据,包括该APP在各个硬件上的耗电量。timestamp字段为该一小时起始时间戳(每整点一条数据)
|
PLBatteryAgent_EventBackward_Battery
| 整机的电池数据,包括电压、电流、温度、当前电池容量等(每20s一个数据)
|
PLAppTimeService_Aggregate_AppRunTime
| APP运行时长统计,若不知某APP包名,可用该表分析。(每整点一条数据)
|
四、结果统计