应用区域

应用区域展示了采集数据时运行的所有进程,对于App来说,我们关心的是待测应用的进程,如图6.30所示。

应用区域 - 图1 图6.30 应用区域

在新版的Systrace中,系统对进程每次绘制的Frame都增加了一个带F的小圆圈标记。按住F键,即可将这一帧展开;按住M键,即可显示每一帧的总时间,如图6.31所示。

应用区域 - 图2 图6.31 查看单帧数据

同时,带F的小圆圈标记的颜色也代表着不同的含义。

  • 绿色:该Frame绘制流畅。
  • 黄色:该Frame绘制有小幅延迟。
  • 红色:该Frame绘制严重延迟。

当显示该Frame绘制有问题时,系统在下面的提示框中也会显示具体的绘制时间、延迟原因,甚至会给出一些解决方案,如图6.32所示。

应用区域 - 图3 图6.32 提示解决方案

在应用的数据面板中,可以找到一些开发者非常熟悉的方法,例如performTraversals方法(该方法用于绘制整个View树),还可以看见绘制一个View树具体花费了多少时间,如图6.33所示。

应用区域 - 图4 图6.33 绘制详细

除了上面展示的关于ListView的性能卡顿提示外,还有一个非常常见的提示——Scheduling delay,如图6.34所示。

应用区域 - 图5 图6.34 性能提示信息

下面的系统分析提示:Scheduling delay,即调度延迟。当一帧的绘制时间超过19ms时,就会触发这个提示。当前图中的这一帧已经有20.264ms,因此触发了这个警告。Scheduling delay的主要原因是绘制线程在绘制的时候,在很长一段时间都没有分配到CPU时间片,从而无法继续绘制工作。当出现这个问题后,就需要检查当前CPU具体被分配到了哪些进程中,分析是哪些进程占用了过多的CPU时间而造成Scheduling delay。