Android App 常见异常
CRASH
在应用程序代码中出现了未捕获异常,导致程序异常退出,具体表现为闪退或App停止运行。
发生crash的原因:
一般是因为业务代码导致了异常,比如空指针、索引越界、内存溢出等。
ANR(Application Not Responding)
应用程序无响应,用户的输入操作在5s之内没有得到相应,此时Android系统就会判定出现了ANR,会显示一个ANR对话框,用户可以选择继续等待或者关闭应用程序。
发生ANR的原因:
Android的机制是通过主线程(UI线程)创建UI、更新UI状态及处理用户的事件操作。如果在主线程中做了其他的一些耗时操作,比如:数据库读取、文件读取、网络操作等就会主线程阻塞,导致无法及时相应用户的操作。
logcat日志
logcat是Android中用来查看日志的命令行工具,Android会在运行的时候将系统及应用程序的日志保存到 logcat 中。
adb logcat 命令格式:
adb logcat <参数> ... <过滤器> ...
logcat日志由以下部分组成:
-
写下日志时的日期时间
-
PID(进程ID)
-
TID(线程ID)
-
优先级,在Android中,日志的优先级从低到高分以下几种:
V —Verbose (啰嗦,最低级别,开发调试中的一些详细信息,仅在开发中使用,不可在 发布产品中输出)
D —Devug (调试,用于调试的信息,可以在发布产品中关闭,比较常见)
I —Info (信息,一般提示性的消息)
W —Warning