耗电量分析-Sysdiagnose

2022-12-08  本文已影响0人  辣椒切成丝

Sysdiagnose:Sysdiagnose是苹果的日志系统,记录电池、第三方APP、各种系统功能和应用的所有运行情况,将Sysdiagnose导出并解压后,我们能在文件夹中找到名为powerlog_xxxxx.PLSQL的文件,用数据库可视化工具(本文使用SQLiteStudio)打开,其中详细记录了我们进行iOS耗电量测试的所需的数据。

备注:可前往苹果开发者网站登录开发者账号下载Battery Life的profile后重试。通过隔空投送把描述文件安装到测试手机上

一、用例执行

将手机设为固定亮度,电量最好保持在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. image.png
  3. 等待诊断数据收集完成(大约10min),前往设置→隐私→分析与改进→分析数据,查找对应时间点触发的系统诊断文件 。

  4. image.png
  5. 将sysdiagnose文件解压,进入目录logs/powerlogs/,找到.PLSQL文件,即为我们所需要的记录电池信息的数据库文件,用SQLite可视化工具打开。如下:

  6. image.png

三、数据分析

image.png

我们可以根据上面的表格,来分析耗电情况,比如:

  1. PLBatteryAgentEventBackwardBattery_UI 可以分析剩余电量曲线
  2. PLBatteryAgentEventBackwardBattery 可以分析整体耗电量和温度变化
  3. PLAccountingOperatorAggregateRootNodeEnergy 和 PLAccountingOperatorEventNoneNodes 两张表,可以得到某个 Bundle ID对应的 App 在各个硬件上的耗电情况。

下面是一些数据获取的SQL语句:

  1. 查看APP运行的时间timestamp

        select ID,timestamp,datetime(timestamp, 'unixepoch', 'localtime')as time,BundleID from PLAppTimeService_Aggregate_AppRunTime where BundleID='XXX' order by timestamp
    

    2. 查看APP的NodeID

       select * from PLAccountingOperator_EventNone_Nodes where Name ='XXX'
    

    3. 查看APP的电量测试

       select ID,timestamp,datetime(timestamp, 'unixepoch','localtime')as time,Energy,NodeID,RootNodeID from PLAccountingOperator_Aggregate_RootNodeEnergy where NodeID=XXX order by time
    

    4. 查看APP某个时间点的电量求和

       select datetime(timestamp, 'unixepoch', 'localtime')as time,sum(Energy),NodeID from PLAccountingOperator_Aggregate_RootNodeEnergy where NodeID=XXX and timestamp='XXX'
    

四、RootNodeID硬件对照表

image.png
image.png
上一篇 下一篇

猜你喜欢

热点阅读