利用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。为方便之后进行数据查找,可以记下执行用例开始和结束的时间戳。

二、数据获取

  1. 触发sysdiagnose诊断。同时按住按音量+和音量-和息屏(唤醒)键1至1.5秒并释放,会触发截图或息屏并有一个短促的振动,前往设置→隐私→分析与改进→分析数据,若同时出现类似如下三个文件则说明触发成功。
  2.  
  3. ios耗电量测试 苹果耗电测试软件_ios耗电量测试

  4. 等待诊断数据收集完成(大约10min),前往设置→隐私→分析与改进→分析数据,查找对应时间点触发的系统诊断文件 。    
  5. 根据官方文档,我们可以同步手机数据至Windows或者macOS设备,去对应的目录下即可找到sysdiagnose文件(尝试,未成功)。除此之外,我们可以直接点击进入文件,通过右上角分享按钮,使用AirDrop或社交软件将文件传输到macOS或Windows设备。
  6. 将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包名,可用该表分析。(每整点一条数据)

 

 

四、结果统计

ios耗电量测试 苹果耗电测试软件_ios耗电量测试_02