LoginSignup
6
5

More than 1 year has passed since last update.

Android アプリの ANR の解析方法

Last updated at Posted at 2022-09-10

Android アプリで ANR が発生した際の解析方法をメモします。

ANR の解析には Bugreport を使用します。

adb bugreport

bugreport コマンドを実行すると、下記のような zip ファイルが生成されます。

bugreport-sdk_phone_x86-RSR1.210210.001.A1-2022-09-10-15-05-50.zip

zip ファイルを解凍すると、下記のファイルが生成されています。

bugreport-sdk_phone_x86-RSR1.210210.001.A1-2022-09-10-15-05-50/FS/data/anr/anr_2022-09-10-15-05-30-781

※ファイル名は ANR が発生した日時になります。

ファイルを開くと下記のような、メインスレッドで何の処理が行われていたかが出力されています。

"main" prio=5 tid=1 Sleeping
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x70e9b058 self=0xe0804610
  | sysTid=9121 nice=-10 cgrp=top-app sched=0/0 handle=0xeedbf478
  | state=S schedstat=( 3911734179 4176691909 1541 ) utm=230 stm=160 core=0 HZ=100
  | stack=0xff0ae000-0xff0b0000 stackSize=8192KB
  | held mutexes=
  at java.lang.Thread.sleep(Native method)
  - sleeping on <0x03003049> (a java.lang.Object)
  at java.lang.Thread.sleep(Thread.java:442)
  - locked <0x03003049> (a java.lang.Object)
  at java.lang.Thread.sleep(Thread.java:358)
  at com.ykato.sample.kotlin.MainActivity.onStart(MainActivity.kt:76)

上記の場合は、MainActivity.onStart(MainActivity.kt:76) で処理が止まり、ANR が発生したことがわかります。

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