夜神模拟器示范
一、ANR
ANR:Application Not Responding,也就是应用无响应,当操作在一段时间内系统无法处理时,系统层面会弹出ANR对话框
- ANR为用户在主线程长时间被阻塞时提供处理交互,提高用户体验
- ANR是Android系统一种自身检测机制
二、分析ANR(方法一:Logcat日志)
- 通过Logcat日志进行分析
日志格式:
ActivityManager:ANR in [进程名] ([部件名])
ActivityManager:PID:[应用进程ID]
ActivityManager:Reason:[原因提示]
[Process CPU state]
- 保存日志内容
示例:出现问题之后,执行命令,约10秒后 ctrl+c 停止,查看保存的本地文件
adb logcat -v time > E:\lemon_file\20240924\logcatanr01.txt
- 通过搜索 anr 关键字
三、分析ANR(方法二:Trace文件)
-
通过Trace文件进行分析
手机路径:/data/anr/
注:只能记录最后一次发生的ANR信息 -
通过 adb shell 命令,登录手机,查找 anr 目录,找到 traces.txt 文件
-
拉取 traces.txt 到本地电脑
注:拉取文件需退出 adb shell
语法:adb pull 手机路径 本地电脑路径
示例:
adb pull /data/anr/traces.txt E:\lemon_file\20240924
- 提交traces.txt
四、分析ANR(方法三:DropBox服务)
- 通过dropbox可以收集系统一段时间内的异常信息(包括ANR、crash)
- 手机路径:/data/system/dropbox 是dropbox指定的文件存放位置
- 通过 adb shell 命令,登录手机,进入 /data/system/dropbox 目录,查看 anr 文件
- 退出 adb shell ,再拉取dropbox文件内容到本地
语法:adb pull 手机路径 本地电脑路径
示例:
adb pull /data/system/dropbox E:\lemon_file\20240924\logs