评估 Android 上系统跟踪的输出



我目前正在我的应用程序中追逐一些掉落的帧。我向系统跟踪寻求帮助,但不幸的是,从它的输出来看我并不聪明。

这是我的踪迹视图..

的问题基本上是在我的适配器中我正在创建相当大的列表项。这意味着当滚动适配器时,在一段时间内什么都不做,然后它必须创建相当大的视图。甚至我做了很多优化(obvi我做回收,我基本上避免了所有冗余对象实例化,..),有一些丢帧。它必须超过16ms:/

回到我的主要问题..我想我甚至会看到我在 getView 调用期间直接调用适配器的方法的痕迹。但我在那里看不到。我做错了什么吗?您是否从此跟踪视图中看到我的代码的主要瓶颈在哪里?我迷路了:/

谢谢。。

我想你已经发现了systrace必须告诉你的关键事情:在pid 527中,performTraversals需要20+毫秒。 这似乎在getDisplayListdrawDisplayList之间平均分配。

如果你看一下Falcon Pro的案例研究,你会发现许多相似之处,尽管在这种情况下,大部分时间都花在了绘图上(因为主要的过度绘制)。 不过,该文章中描述的大多数技术通常都很有用;使用 TraceView、HierarchyViewer 和设备上的开发人员选项来查找低挂的性能问题。

如果您想在 systrace 中查看自己的方法,可以从 Android 4.3 开始添加自己的应用专用代码。 这里有一个例子。

相关内容

  • 没有找到相关文章