5

Android 抓取 ANR 日志终极办法

 3 years ago
source link: https://droidyue.com/blog/2021/03/07/view-android-anr-stacktrace/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在 Android 开发中,有时会遇到 ANR,一旦出现 ANR 我们就需要拿到对应的trace 文件来分析并解决。本文将介绍两种获取 ANR 的方法。

直接查看/data/anr/traces.txt的内容,如下

adb shell cat  /data/anr/traces.txt

或者类似使用拷贝到电脑上查看,比如

adb shell cp /data/anr/traces.txt /sdcard
adb pull /sdcard/traces.txt ./

但是这种方法在某些手机上由于权限原因,无法进行,就需要了使用下面的方法了。

这种方法就是进行adb bugreport,没有权限限制问题。具体步骤是

生成 bugreport 文件

adb bugreport
/data/user_de/0/com.android.shell/files/bugreports/bugreport-sailfish-QP1A.191005.007.A3-2021-01-12-15-30-21.zip: 1 file pulled, 0 skipped. 30.6 MB/s (3897489 bytes in 0.121s)
Bug report copied to /private/tmp/bugreport-sailfish-QP1A.191005.007.A3-2021-01-12-15-30-21.zip

进行解压文件

unzip bugreport-sailfish-QP1A.191005.007.A3-2021-01-12-15-32-54.zip
Archive:  bugreport-sailfish-QP1A.191005.007.A3-2021-01-12-15-32-54.zip
  inflating: version.txt
  inflating: proto/SurfaceFlinger_CRITICAL.proto
  inflating: proto/activity_CRITICAL.proto
  inflating: proto/window_CRITICAL.proto
  inflating: FS/data/anr/anr_2021-01-12-14-59-10-559
  inflating: FS/data/misc/recovery/last_log
  inflating: FS/data/misc/recovery/last_kmsg
  inflating: FS/data/misc/recovery/ro.build.fingerprint
  inflating: FS/data/misc/recovery/proc/version
  inflating: FS/data/misc/update_engine_log/update_engine.19700914-172433
  inflating: FS/proc/1/mountinfo
  inflating: FS/proc/642/mountinfo
  inflating: FS/proc/643/mountinfo
  inflating: FS/proc/934/mountinfo
  inflating: FS/proc/2592/mountinfo
  inflating: FS/proc/2619/mountinfo
  inflating: FS/proc/2882/mountinfo
  inflating: FS/proc/3011/mountinfo
  inflating: FS/proc/3031/mountinfo
  inflating: FS/proc/3053/mountinfo
  inflating: FS/proc/3198/mountinfo
  inflating: FS/proc/3255/mountinfo
  inflating: FS/proc/3409/mountinfo
  inflating: FS/proc/3476/mountinfo
  inflating: FS/proc/3584/mountinfo
  inflating: FS/proc/3605/mountinfo
  inflating: FS/proc/3637/mountinfo
  inflating: FS/proc/3664/mountinfo
  inflating: FS/proc/3673/mountinfo
  inflating: FS/proc/3706/mountinfo
  inflating: FS/proc/3732/mountinfo
  inflating: FS/proc/3782/mountinfo
  inflating: FS/proc/3802/mountinfo
  inflating: FS/proc/3832/mountinfo
  inflating: FS/proc/3906/mountinfo
  inflating: FS/proc/3930/mountinfo
  inflating: FS/proc/4582/mountinfo
  inflating: FS/proc/5746/mountinfo
  inflating: FS/proc/6563/mountinfo
  inflating: FS/proc/7454/mountinfo
  inflating: FS/proc/7717/mountinfo
  inflating: FS/proc/8349/mountinfo
  inflating: FS/proc/8367/mountinfo
  inflating: FS/proc/8396/mountinfo
  inflating: FS/proc/8748/mountinfo
  inflating: FS/proc/8838/mountinfo
  inflating: FS/proc/8862/mountinfo
  inflating: FS/proc/8896/mountinfo
  inflating: FS/proc/8941/mountinfo
  inflating: FS/proc/10157/mountinfo
  inflating: FS/proc/10412/mountinfo
  inflating: FS/proc/26397/mountinfo
  inflating: FS/proc/26468/mountinfo
  inflating: FS/proc/27133/mountinfo
  inflating: FS/proc/27518/mountinfo
  inflating: FS/proc/29094/mountinfo
  inflating: FS/proc/29279/mountinfo
  inflating: FS/proc/29701/mountinfo
  inflating: FS/proc/31908/mountinfo
  inflating: lshal-debug/[email protected]::ICameraService_default.txt
  inflating: lshal-debug/[email protected]::IDisplayService_default.txt
  inflating: lshal-debug/[email protected]::ISchedulingPolicyService_default.txt
  inflating: lshal-debug/[email protected]::ISensorManager_default.txt
  inflating: lshal-debug/[email protected]::IStats_default.txt
  inflating: lshal-debug/[email protected]::IAtraceDevice_default.txt
  inflating: lshal-debug/[email protected]::IEffectsFactory_default.txt
  inflating: lshal-debug/[email protected]::IDevicesFactory_default.txt
  inflating: lshal-debug/[email protected]::IBiometricsFingerprint_default.txt
  inflating: lshal-debug/[email protected]::IBluetoothAudioProvidersFactory_default.txt
  inflating: lshal-debug/[email protected]::IBluetoothHci_default.txt
  inflating: lshal-debug/[email protected]::IBootControl_default.txt
  inflating: lshal-debug/[email protected]::ICameraProvider_legacy_0.txt
  inflating: lshal-debug/[email protected]::IMediaCasService_default.txt
  inflating: lshal-debug/[email protected]::IMediaCasService_default.txt
  inflating: lshal-debug/[email protected]::ISurfaceFlingerConfigs_default.txt
  inflating: lshal-debug/[email protected]::ISurfaceFlingerConfigs_default.txt
  inflating: lshal-debug/[email protected]::IContexthub_default.txt
  inflating: lshal-debug/[email protected]::ICryptoFactory_clearkey.txt
  inflating: lshal-debug/[email protected]::ICryptoFactory_default.txt
  inflating: lshal-debug/[email protected]::ICryptoFactory_widevine.txt
  inflating: lshal-debug/[email protected]::IDrmFactory_clearkey.txt
  inflating: lshal-debug/[email protected]::IDrmFactory_default.txt
  inflating: lshal-debug/[email protected]::IDrmFactory_widevine.txt
  inflating: lshal-debug/[email protected]::ICryptoFactory_clearkey.txt
  inflating: lshal-debug/[email protected]::ICryptoFactory_widevine.txt
  inflating: lshal-debug/[email protected]::IDrmFactory_clearkey.txt
  inflating: lshal-debug/[email protected]::IDrmFactory_widevine.txt
  inflating: lshal-debug/[email protected]::ICryptoFactory_clearkey.txt
  inflating: lshal-debug/[email protected]::IDrmFactory_clearkey.txt
  inflating: lshal-debug/[email protected]::IGatekeeper_default.txt
  inflating: lshal-debug/[email protected]::IGnss_default.txt
  inflating: lshal-debug/[email protected]::IComposer_default.txt
  inflating: lshal-debug/[email protected]::IHealth_backup.txt
  inflating: lshal-debug/[email protected]::IHealth_default.txt
  inflating: lshal-debug/[email protected]::IKeymasterDevice_default.txt
  inflating: lshal-debug/[email protected]::ILight_default.txt
  inflating: lshal-debug/[email protected]::IComponentStore_software.txt
  inflating: lshal-debug/[email protected]::IOmx_default.txt
  inflating: lshal-debug/[email protected]::IOmxStore_default.txt
  inflating: lshal-debug/[email protected]::IMemtrack_default.txt
  inflating: lshal-debug/[email protected]::INfc_default.txt
  inflating: lshal-debug/[email protected]::INfc_default.txt
  inflating: lshal-debug/[email protected]::IPower_default.txt
  inflating: lshal-debug/[email protected]::IPower_default.txt
  inflating: lshal-debug/[email protected]::IOemHook_slot1.txt
  inflating: lshal-debug/[email protected]::IRadio_slot1.txt
  inflating: lshal-debug/[email protected]::ISap_slot1.txt
  inflating: lshal-debug/[email protected]::IRadio_slot1.txt
  inflating: lshal-debug/[email protected]::ISap_slot1.txt
  inflating: lshal-debug/[email protected]::ISensors_default.txt
  inflating: lshal-debug/[email protected]::ISoundTriggerHw_default.txt
  inflating: lshal-debug/[email protected]::ISoundTriggerHw_default.txt
  inflating: lshal-debug/[email protected]::ISoundTriggerHw_default.txt
  inflating: lshal-debug/[email protected]::IThermal_default.txt
  inflating: lshal-debug/[email protected]::IThermal_default.txt
  inflating: lshal-debug/[email protected]::IUsb_default.txt
  inflating: lshal-debug/[email protected]::IUsb_default.txt
  inflating: lshal-debug/[email protected]::IVr_default.txt
  inflating: lshal-debug/[email protected]::ISupplicant_default.txt
  inflating: lshal-debug/[email protected]::ISupplicant_default.txt
  inflating: lshal-debug/[email protected]::ISupplicant_default.txt
  inflating: lshal-debug/[email protected]::IWifi_default.txt
  inflating: lshal-debug/[email protected]::IAllocator_ashmem.txt
  inflating: lshal-debug/[email protected]::IBase_AtCmdFwdService.txt
  inflating: lshal-debug/[email protected]::IBase_ashmem.txt
  inflating: lshal-debug/[email protected]::IBase_backup.txt
  inflating: lshal-debug/[email protected]::IBase_clearkey.txt
  inflating: lshal-debug/[email protected]::IBase_legacy_0.txt
  inflating: lshal-debug/[email protected]::IBase_slot1.txt
  inflating: lshal-debug/[email protected]::IBase_software.txt
  inflating: lshal-debug/[email protected]::IBase_widevine.txt
  inflating: lshal-debug/[email protected]::ITokenManager_default.txt
  inflating: lshal-debug/[email protected]::INetd_default.txt
  inflating: lshal-debug/[email protected]::INetd_default.txt
  inflating: lshal-debug/[email protected]::IKeystore_default.txt
  inflating: lshal-debug/[email protected]::IAtCmdFwd_AtCmdFwdService.txt
  inflating: lshal-debug/[email protected]::IQcRilAudio_default.txt
  inflating: dumpstate_board.txt
  inflating: proto/activity.proto
  inflating: proto/incident.proto
  inflating: proto/stats.proto
  inflating: bugreport-sailfish-QP1A.191005.007.A3-2021-01-12-15-32-54.txt
  inflating: main_entry.txt
  inflating: dumpstate_log.txt

查看 ANR stacktrace 文件

文件路径通常为FS/data/anr,具体可以根据日期来确定哪一个文件。

cat FS/data/anr/anr_2021-01-12-14-59-10-559

droidyue_gzh_green_png.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK