android.util.Log
常用的方法有以下5个:
Log.v()
Log.d()
Log.i()
Log.w()
Log.e()
根据首字母对应
VERBOSE
DEBUG
INFO
WARN
ERROR
另外,Log太多时用来过滤和标识分类log信息。
Java Crash
Java Crash是我们最为常见的严重错误了,log中很容易可以找到其报错的地方通过其标注的位置开始检查代码。
ANR
Application No Response 应用响应超时
Native Crash
一般是由Dalvik错误、状态监视调试器、C层代码以及libc的一些问题导致的。当系统发生Native Crash的时候,kernel首先会上报一个严重的警告信号(serious signal)
Memory Leak
内存泄漏,一般会报java.lang.OutOfMemoryError
Kernel Panic
内核发生不可恢复的错误,一般会重启
Java Crash
关键字: “Exception”(一般在main log) 有时在system log 中。
内存泄漏问题,搜索 java.lang.OutOfMemoryError
常见的严重错误有如下几类:
NullPointerException : 空对象错误
IllegalStateException:非法状态,比如在View没有刷出来的时候去触摸。
IndexOutOfBoundsException
IllegalArgumentException
ExceptionInInitializerError
ClassCastException
RuntimeException
UnknownFormatConversionException
UnsupportContentTypeException
CursorIndexOutOfBoundsException
发生 java crash 一般直接找 FATAL 关键字就可以定位问题了,log中有详细的文件名和行号。
ANR错误
关键字: “ANR ”(system log)
ANR :Application Not Responding,即应用程序无响应。
ANR一般有三种类型:
KeyDispatchTimeout、(5 seconds)
BroadcastTimeout、(10 seconds)
ServiceTimeout。(20 seconds)
发生ANR后在systemlog中 搜“ANR”关键字
可以得到当前发生ANR的应用程序和最近时间内CPU使用率