在开发者选项中,有个选项叫做“日志记录器缓冲区大小”,默认是256K,日志是循环写入到缓冲区的,环形循环,给新的日志留存空间。
logcat缓冲区:log输出量很大,特别是通信系统的log,因此adroid把log输出到不同的缓冲区,目前定义了4个log的缓冲区:
- radio:输出通信系统的log,通信系统如:蓝牙,wifi,3g、4g等。 - system:输出系统组件的log,系统组件的权限比较高,和系统相关的都会产生日志。 - events: 输出event模块的log, 这个是事件模块,只有是手机对手机的操作都会产生事件。 - main : 所有java层的log,只要是java语言编写的,都是产生log,不属于上面的3层内容。
备注:默认log输出(不指定缓冲区的情况下)是输出system和main缓冲区的log。
日志格式
优先级,在Android中,日志的优先级从低到高分以下几种
- V---Verbose(啰嗦,最低级别,开发调试中一些详细的信息,在开发中使用,不可在发布产品中使用) - D---Debug(调试,用于调试信息,可在发布产品中关闭,比较常见) - I---info(信息,一般是提示性的信息) - W---Warning(警告) - E---Error(错误,已经出现可影响运行的错误,如应用crash时输出的日志)
表现为:“xxx”已经停止运行
提取崩溃日志:adb logcat -v time > > f:crash.log
定位日志:搜索exception这个关键字三、anr事件
表现为:“xxx”无响应,需要提交logcat文件和tracse文件
日志文件:adb logcat -v time >d:anr.log
tracse文件:data/system/dropbox
定位日志:搜索ANR in
dropbox目录文件:
system_app_anr:system-app无响应 system_app_crash:system-app崩溃 system_server_native_crash:system进程native出现崩溃 system_server_wtf:system进程发生严重错误 system_server_lowmem:system进程内存不足



