在这段谷歌IO视频中,我观察到"performTraversals"在其应用程序线程(ndroid.slowlist)上。而在我的报告中,"performTra弗斯"在线程PID 530(android.systemui)上。并且只有代表活动和dlg的行,在systrace中没有像这样明确表示我的应用程序的线程(表示应用程序线程的最后一行(10440:m.jv.falcon.pro))。然而,如果我使用设置进行系统跟踪。我可以观察到一个代表"android.setting"的线程。有人能告诉我为什么我不能为自己的应用程序获取应用程序线程吗?非常感谢!
到底出了什么问题取决于您运行的Android版本以及您为启用跟踪标记所做的操作。
每个进程都有自己的已启用跟踪标记副本。如果进程认为没有启用任何标记,那么它将不会向跟踪提供任何数据。更新标签时,您需要向所有进程发送广播(如果您通过该接口更新,开发人员设置将执行此操作),或者在更新标签后使用adb shell stop; adb shell start
重新启动框架。systrace文档中的示例使用了后一种方法。
因此,看起来systemui进程看到了更新的标签("gfx"one_answers"view"),但不知何故,你的应用程序进程没有看到。我希望,如果你完成了systrace文档中的所有步骤(用python脚本设置标签、重新启动框架、启动应用程序、捕获跟踪),它会起作用。