Systrace |应用程序线程上没有“performTraversals”或没有应用程序线程

时间:2013-07-31 00:16:26

标签: android performance-testing systrace

在这个Google IO video中,我发现“performTraversals”在其应用程序线程(ndroid.slowlist)上。在我的report中,“performTraversals”在线程PID 530(android.systemui)上。并且只有代表活动和dlgs的行,没有在systrace中明确表示我的应用程序的线程,如one(代表应用程序线程的最后一行(10440:m.jv.falcon.pro))我发现线上。但是,如果我使用设置进行systrace。我可以观察一个代表“android.setting”的线程。任何人都可以告诉我为什么我不能为自己的应用程序获取应用程序线程?非常感谢!

1 个答案:

答案 0 :(得分:2)

究竟出了什么问题取决于您正在运行的Android版本以及您启用跟踪代码的操作。

每个进程都有自己的已启用跟踪标记的副本。如果进程认为没有启用任何标记,则它不会向跟踪提供任何数据。更新标记时,您需要向所有进程发送广播(如果通过该接口更新它们,开发人员设置将执行此操作),或者在更新标记后使用adb shell stop; adb shell start重新启动框架。 systrace documentation中的示例使用后一种方法。

所以看起来systemui进程看到了更新的标签(“gfx”和“view”),但不知怎的,你的应用程序进程没有。我希望,如果你完成了systrace doc中的所有步骤(使用python脚本设置标签,重启框架,启动应用程序,捕获跟踪),它就可以工作。