[Android]Log介绍
1. Log种类
android.util.Log常用的方法有以下六个:
Log.v() Log.d() Log.i() Log.w() Log.e()以及Log.a() (android 4.0新增加的)。根据首字母对应VERBOSE, DEBUG,INFO, WARN, ERROR, Assert
1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");
2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.
3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息
4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。
5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。
6、Log.a为4.0新增加的。
优先级有下列集中,是按照从低到高顺利排列的:
- V — Verbose (lowest priority)
- D — Debug
- I — Info
- W — Warning
- E — Error
- F — Fatal
- S — Silent (highest priority, on which nothing is ever printed)
2. Log分析
1,程序异常退出,UnCausedException (Fatal)
2,程序强制关闭,ForceClosed (简称FC) (Fatal)
3,程序无响应,ApplicationNoResponse(简称ANR)
3.1 ANR出现的情况有以下两种
A 界面操作按钮的点击等待响应时间超过5秒
B HandleMessage回调函数执行超过10秒,BroadcasterReciver里的onRecive()方法处理超过10秒
4. 系统基本log信息
系统基本信息,包括 内存,CPU,进程队列,虚拟内存 , 垃圾回收等信息 。
4.1 ------MEMORY INFO (/proc/meminfo) ------
4.2 ------EVENT INFO (/proc/vmallocinfo) ------
4.3 ------VM TRACES JUST NOW (/data/anr/traces.txt.bugreport: 2011-01-1516:49:02) ------
------VM TRACES AT LAST ANR (/data/anr/traces.txt: 2011-01-15 16:49:02)------
虚拟机信息, 包括进程的,线程的跟踪信息
3.初步bug解决方案
1,如果是ANR问题, 则搜索“ANR”关键词。 快速定位到关键事件信息 。
2,如果是ForceClosed和其它异常退出信息,则搜索"Fatal"关键词,快速定位到关键事件信息 。
3,定位到关键事件信息后, 如果信息不够明确的,再去搜索应用程序包的虚拟机信息,查看具体的进程和线程跟踪的日志,来定位到代码。
用这种方法,出现问题,根本不需要断点调试, 直接定位到问题,屡试不爽 。