logcat日志文件
> android日志系统提供了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和调用
使用方式:
[adb]logcat[<option>]...[<filer-spec>]..
> logcat是以如下开头的:
1.----------- beginning of xxx
> 开发者选项,有个选项叫做“日志记录器缓冲区大小”,默认是256K,日志是循环写入环形缓冲区的,在通常情况下,写满时最旧的日志会被删除以给新输出的日志留内存空间
logcat缓冲区
android_log输出量巨大,特别是通信系统的log,因此,android把log输出到不同的缓冲区,目前定义了四个log缓冲区:
Radio:输出通信系统的log
System:输出系统组件的log
Events:输出event模块的log
Main:所有java层的log(不属于上面3层的log)
如想输出通信系统的log:adb logcat -b radio
默认log输出(不指定缓冲区的情况下)是输出System和Main缓冲区的log
logcat日志文件分析
由五部分组成:
1.写下日志时的时间adb logcat -v time
2.优先级,在Android中,日志的优先级从低到高分以下几种:
V—Verbose(啰嗦,最低级别,开发调试中的一些详细信息,仅在开发中使用,不可在发布产品)
D—Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见)
I—Info(信息,一般提示性的消息)
W—Warning(警告)
E—Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)(FATAL EXCEPTION)
3.标签(tag)标明日志发起者和方便日志的过滤筛选,如上中ActivityManager
4.PID(进程ID)
5.正文,本日志的主体日志
何为ANR?
ANR全名Application Not Responding,也就是应用无响应当操作在一段时间内系统无法处理时,系统层面会弹出ANR对话框
> 未用户在主线程长时间被阻塞时提供处理交互,提高用户体验
> Android系统一种自身检测机制
crash--搜索crash anr--搜索anr in
找出方法调用栈相关的信息 /data/anr/traces.txt
多次anr日志存放:/data/system/dropbox adb pull /data/system/dropbox
没有root权限无法进入data目录,但是可以直接外层adb pull拉出