0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Androidアプリのパフォーマンス 解析

Last updated at Posted at 2021-05-22

この記事では、Androidアプリのパフォーマンス改善のための、解析方法について記載します。

準備

パフォーマンスの解析にはいくつか方法がありますが、ここでは「Systraceコマンドラインツール」を使用します。

Systraceコマンドを使うにはAndroid SDKとPython(2.7)が必要です。
 https://qiita.com/yoshihiro-kato/items/1c4fb816782e6a8aba8e

カスタムイベント

処理に時間がかかっていそうな部分にカスタムログを入れます。
※どの辺に時間がかかっているかわからない場合は、広い範囲に入れてみると良いです。

カスタムログは下記のようにTrace.beginSectionとTrace.endSectionをペアで実装します。

TextViewSampleActivity.kt
class TextViewSampleActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        Trace.beginSection("TextViewSampleActivity#onCreate")
        ...
        Trace.endSection()
    }
}

Systraceの取得

まず、下記のコマンドを実行します。
※systrace.pyはSDKの中にあるので、パスは実行環境に合わせて書き換えてください。
※カスタムイベントを取得するには、プロセス名の指定(--app)が必要です。
※-oで出力ファイル名を指定します。

python /Users/yoshihiro/Library/Android/sdk/platform-tools/systrace/systrace.py --app=com.ykato.sample.kotlinsampleapplication -o mynewtrace.html sched freq idle am wm gfx view binder_driver hal dalvik camera input res

上記のコマンドを実行すると、下記がコンソールに表示されます。
下記が表示されたら、パフォーマンス解析を行いたい操作を行ってください。

Starting tracing (stop with enter)

操作が終わったら、コンソール上でエンターキーを押下してください。

Tracing completed. Collecting output...
Outputting Systrace results...
Tracing complete, writing results

Wrote trace HTML file: file:///Users/ykato/Documents/tmp/mynewtrace.html

Systraceの解析

Systraceの取得結果の解析は、下記のURLから行います。
https://ui.perfetto.dev

左のツールバーの一番上にある「Open trace file」から、結果を確認したいファイルを選択します。

取得結果はプロセス毎に表示され、画面上部の検索窓から、Trace.beginSectionで指定したsectionNameを検索することで、解析対象を簡単に見つけることが出来ます。

上記の場合は、TextViewSampleActivity#onCreateは223msかかっていることがわかります。

取得結果の表示操作の詳細は下記を参照してください。
https://developer.android.com/topic/performance/tracing/navigate-report?hl=ja#keyboard-shortcuts

補足

左のツールバーの一番上にある「Open with legacy UI」から、結果を開くことで、表示パフォーマンスに問題がある場所(フレームアラート)を特定することが出来ます。

legacy UIもプロセス毎に表示されます。
フレームアラートは丸で囲まれたFで表示され、問題ある箇所は赤と黄色で表示されます。

参考

0
5
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
0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?