通过Android systrace输出评估(Evaluating output from syst

2019-10-18 14:33发布

我目前正在追逐一些丢帧我app..I转向systrace寻求帮助,但可惜我不是从它的输出智能..

这里是我的traceview ..

我的问题基本上是在我的适配器我创造相当大的滚动列表适配器时什么都不做了一段时间items..That意味着,然后它甚至创造相当大view..And我做了很多的优化(obvi我做回收,我避免基本上所有冗余的对象实例,如..),也有一些下降frames..It必须采取比16ms的多:/

回到我的主要problem..I以为我会看到连的方法痕迹我打电话对进入getView调用过程中我的适配器。 但我看不到有。 难道我做错了什么? 你从这个traceview哪里是我的代码的主要瓶颈看到了什么? 我搞不清楚了:/

谢谢..

Answer 1:

我想你已经发现是systrace已经告诉你事情的关键:在PID 527, performTraversals正在20+毫秒。 这似乎是平分getDisplayListdrawDisplayList

如果你看看猎鹰Pro的案例研究 ,你会看到许多相似之处,但在这种情况下,大部分的时间都花在绘画(因为主要的透支)。 大多数的该文章中描述的技术一般都是有用的,; 使用traceview , hierarchyviewer和设备上的开发者选项来寻找低挂的性能问题。

如果你想看到在systrace你自己的方法,你可以添加自己的专用标签的Android 4.3开始。 有一个例子在这里 。



文章来源: Evaluating output from systrace on Android