在这个 Google IO视频中,我观察到“performTraversals”在其应用程序线程(ndroid.slowlist)上。在我的报告中,“performTraversals”位于线程 PID 530(android.systemui)上。而且只有代表活动和dlgs的行,没有像这样在systrace中明确代表我的应用程序的线程(最后一行(10440:m.jv.falcon.pro)代表应用程序线程)我在网上找到。但是,如果我使用设置进行 systrace。我可以观察到一个代表“android.setting”的线程。谁能告诉我为什么我不能为自己的应用程序获取应用程序线程?非常感谢!
问问题
623 次
1 回答
2
究竟出了什么问题取决于您运行的 Android 版本以及您为启用跟踪标签所做的工作。
每个进程都有自己的已启用跟踪标记副本。如果一个进程认为没有启用任何标签,它就不会向跟踪提供任何数据。更新标签时,您需要向所有进程发送广播(如果您通过该接口更新它们,开发人员设置将执行此操作),或者adb shell stop; adb shell start
在标签更新后用于重新启动框架。systrace 文档中的示例使用后一种方法。
所以看起来 systemui 进程看到了更新的标签(“gfx”和“view”),但不知何故你的应用程序进程没有。我希望,如果您完成了 systrace 文档中的所有步骤(使用 python 脚本设置标签、重新启动框架、启动应用程序、捕获跟踪),它将起作用。
于 2013-07-31T23:06:32.270 回答