Android Crash 监控方式
Java crash:
实现 Thread.UncaughtExceptionHandler 接口
Thread.setDefaultUncaughtExceptionHandler 设置 ExceptionHandler
有异常时会回调 uncaughtException, 在这方法中可以做错误日志收集,上传等操作
Native crash:
通过 breakpad 工具获取
捕获取 native 异常日志后,需要 minidump_stackwalk 解析,该工具在 Android Studio 的安装目录下的 bin\lldb\bin
使用 minidump_stackwalk 工具解析 dump 文件:
minidump_stackwalk xxxx.dump > crash.txt
使用 Android NDK 里面提供的 addr2line 工具(目录:Sdk/ndk/21.0.6113669/toolchains)将寄存器地址转换为对应符号。addr2line 要用和自己 so 的 ABI 匹配的目录,同时需要使用有符号信息的 so(一般 debug 的就有)。
aarch64-linux-android-4.9 对应 64 位;
arm-linux-androideabi-4.9 对应 32 位
工具使用命令 i686-linux-android-addr2line.exe -f -C -e libbugly.so 0x1feab
natvie crash 日志
Operating system: Android0.0.0 Linux 3.18.31+ #15 SMP PREEMPT Tue Apr 24 16:39:23 CST 2018 aarch64CPU: arm64 ==》cpu 架构 8 CPUsGPU: UNKNOWNCrash reason: SIGSEGVCrash address: 0x0Process uptime: not availableThread 0 (crashed)0 libnative-lib.so + 0x27db4
评论