LoginSignup
34
27

More than 3 years have passed since last update.

Android PからのSystem TracingとPerfettoを使ってパフォーマンスを確認しよう

Last updated at Posted at 2019-11-21

traceがいい感じに使えるようになっていたのでシェアです。
これはAndroid Dev Summitで紹介されています。
https://www.youtube.com/watch?v=9kNhB_z704I
PerfettoはUIが改善されたSystraceのUIです。Chromeをクラッシュさせずに、しかもかなり快適に動きます!

事前準備

開発者向けオプションからSystem Tracingを有効にしてShow Quick Settings tileを有効にします
image.png

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ファイルを保存することができます。

trace.gif
シェアしてファイルをGoogle Driveに共有しても良いですが、以下でtraceしたデータを取得できます。

adb pull /data/local/traces

(以下のようにしてコマンドからもtraceが取れそうだったのですが、うまく取得できませんでした :sweat: とりあえずUIから取っています。)

adb shell perfetto --time 3s --buffer 32mb --out - > out.proto

traceの確認方法

以下を開いて、"Open trace file"を押してファイルを選択します。
https://ui.perfetto.dev/#!/viewer

こんな感じで見ることができます。

image.png
そして左側から自分のパッケージのアプリを選択して、クリックして展開します。
image.png

右下に設定したMySessionがでています。
その部分を拡大して、表示することで、inflateにかかった時間や、Trace.beginSection("MySession")がいい感じに見れます。
image.png

そしてactivityStartはアプリの起動を示すところのようです。

34
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
27