程序出现问题的时候,需要一些有用的错误信息。
其中logcat固然是最有用的一种,但是如果冲掉了就没用。
MTK log 也是一个办法,但是也有冲掉的风险。
然后就是 /data/anr 目录的文件有很多用处。
但是系统还有一个记录的地方就是 dropbox ,这个记录的信息比较单纯,不是详细信息,但是好处是能保存比较多的错误。
所以总结下系统出错时需要的信息:
1、MTK LOG, 如果开了,这个一定要弄下来
adb pull /sdcard/mtklog ./
2、ANR的错误信息
adb pull /data/anr ./
3、logcat 直接抓取的日志
adb shell "logcat -c;logcat -v time > /sdcard/err.log.txt"
adb pull /sdcard/err.log.txt
4、dropbox 的日志信息
adb shell "dumpsys dropbox --print > /sdcard/dropbox.log.txt"
adb pull /sdcard/dropbox.log.txt
5、如果只是单纯看看dropbox信息,去掉重定位就可以了
adb shell "dumpsys dropbox --print"
6、如果dropbox 没有信息,用adb shell bugreport >
电脑具体目录,导出日志,然后再把
adb pull /data/anr/traces.txt.bugreport ./
文件一并拷出来,但这个命令只限问题发生当时,过期就没什效果了。
再次汇总下几个有日志的目录,有的目录需要 system 权限才能获取到(即非user版的才行)
从设备/data/anr
导出的日志,保存发生anr crash 时的相关信息;
从设备 /data/data/com.android.shell/files/bugreports
导出的日志,保存发生异常时的相关系统信息,user版无法直接导出,可以通过adb shell bugreport
命令提取;
从设备 /data/system/dropbox/
导出的日志,经过dropbox服务截取的部分tombstones错误信息,user版无法直接导出,可以通过上面的命令导出
从设备/data/dontpanic/
导出的日志,保存发生Kernel Panic时的相关信息; user版命令没戏
从设备/data/tombstones/
导出的日志,保存发生Tombstone Crash时的错误信息; user版命令没戏
MonkeyScreenLog.Log:保存Monkey测试过程、应用层错误信息,发生Native Crash时,在此文件也会有记录;