1

この Google IOビデオで、「performTraversals」がそのアプリケーション スレッド (ndroid.slowlist) にあることを確認しました。私のレポートでは、「performTraversals」はスレッド PID 530(android.systemui) にあります。そして、アクティビティと dlg を表す行のみがあり、このような systrace で私のアプリケーションを明示的に表すスレッドはありません(最後の行 (10440: m.jv.falcon.pro) はアプリケーション スレッドを表します) オンラインで見つけました。ただし、設定を使用してsystraceを実行すると。「android.setting」を表すスレッドを確認できました。自分のアプリケーションのアプリケーション スレッドを取得できない理由を誰か教えてもらえますか? どうもありがとう!

4

1 に答える 1

2

何がうまくいかなかったのかは、実行している Android のバージョンと、トレース タグを有効にするために何をしたかによって異なります。

各プロセスには、有効なトレース タグの独自のコピーがあります。プロセスがどのタグも有効になっていないと判断した場合、そのプロセスはトレースにデータを提供しません。タグが更新されたら、すべてのプロセスにブロードキャストを送信するか (そのインターフェースを介して更新する場合は開発者設定が行います)、adb shell stop; adb shell startタグの更新後に を使用してフレームワークを再起動する必要があります。systrace ドキュメントの例では、後者の方法を使用しています。

したがって、systemui プロセスは更新されたタグ (「gfx」と「view」) を見たように見えますが、どういうわけかアプリ プロセスは見ませんでした。systrace doc のすべての手順 (python スクリプトでタグを設定、フレームワークを再起動、アプリを起動、トレースをキャプチャ) を実行すれば、うまくいくと思います。

于 2013-07-31T23:06:32.270 に答える