traceがいい感じに使えるようになっていたのでシェアです。
これはAndroid Dev Summitで紹介されています。
https://www.youtube.com/watch?v=9kNhB_z704I
PerfettoはUIが改善されたSystraceのUIです。Chromeをクラッシュさせずに、しかもかなり快適に動きます!
事前準備
開発者向けオプションからSystem Tracingを有効にしてShow Quick Settings tileを有効にします
trace方法
こんな感じのActivityがあったとします。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Trace.beginSection("MySession")
Thread.sleep(1000L)
Trace.endSection()
}
こんな感じでtraceファイルを保存することができます。
シェアしてファイルをGoogle Driveに共有しても良いですが、以下でtraceしたデータを取得できます。
adb pull /data/local/traces
(以下のようにしてコマンドからもtraceが取れそうだったのですが、うまく取得できませんでした とりあえずUIから取っています。)
adb shell perfetto --time 3s --buffer 32mb --out - > out.proto
traceの確認方法
以下を開いて、"Open trace file"を押してファイルを選択します。
https://ui.perfetto.dev/#!/viewer
こんな感じで見ることができます。
そして左側から自分のパッケージのアプリを選択して、クリックして展開します。
右下に設定したMySessionがでています。
その部分を拡大して、表示することで、inflateにかかった時間や、Trace.beginSection("MySession")
がいい感じに見れます。
そしてactivityStart
はアプリの起動を示すところのようです。