使用bugreport观察和分析系统日志,解决crash,anr等问题常用技巧

190 阅读2分钟

使用bugreport观察和分析系统日志,解决crash,anr等问题

adb shell monkey -p com.android.Launcher3 -v 100000

adb shell monkey -p com.android.Launcher3 -v 100000 是一条用于Android设备的命令,它通过ADB(Android Debug Bridge)工具来执行Monkey测试。这条命令的具体含义如下:

  • adb shell: 这是启动ADB shell环境的命令,允许你在连接的Android设备上运行shell命令。
  • monkey: 这是一个命令行工具,用来为应用程序提供伪随机的用户事件流,如点击、触摸或手势等,以进行压力测试或自动化测试。
  • -p com.android.Launcher3: 参数-p后面跟的是包名,这里指定的是com.android.Launcher3,即Android系统的Launcher应用。这意味着Monkey测试将仅限于在该应用内执行。
  • -v: 这个参数用来设置详细级别,可以多次使用以增加输出的详细程度。一个-v表示基本的详细信息,两个-v表示中等详细信息,三个-v则表示最详细的输出。
  • 100000: 这个数字指定了Monkey应该发送给目标应用的事件数量。在这个例子中,Monkey将会产生100000个随机事件。

综合起来,这条命令的作用是在Android设备上对com.android.Launcher3这个应用执行100000次随机的用户操作,同时输出基本的详细信息。这通常用于测试应用的稳定性和健壮性,确保应用能够正确处理各种可能的用户输入。

1.分析crash

adb bugreport

image-20241124205250623.png

解压之后主要看这个日志

image-20241124205408987.png

如果发生了crash 常用方法是搜索 FATAL 或者搜索Dead

image-20241124205552481.png

2.分析ANR

系统根目录下的/data/anr记录了发生anr的日志

anr发生的原因是main线程被卡住引发的,日志可以直接搜下面的关键字

image-20241124211417572.png

或者直接搜索pid,线程pid和主线程的sysTid的相等的

image-20241124211516894.png

还可以搜索bugreport里面的关键字am_anr

image-20241124211946753.png

或者也可以在bugreport里面搜索anr日志的最顶上的信息,如下

image-20241124215903738.png