adb 抓取ANR日志和普通日志

本文介绍如何通过ADB工具抓取Android设备上的ANR(应用无响应)日志及普通日志,包括确保设备连接、获取root权限、使用adb pull命令抓取anr日志文件等步骤,并详细解析了日志文件中的关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//确保连接设备

adb devices

//root权限

adb root

//抓日志

adb pull /data/anr D:\anr

 

其中traces文件就是anr日志文件

 

但是正常的手机是未root的,那么应该如何获取呢?

第一步:adb bugreport

这时就会在android studio的Device File Explorer的bugreports目录下也可以看到,如下图:

将其保存到电脑桌面,解压如下图:

其中bugrepo....txt文件,如果LogCat中关于anr的信息不见了,不用慌,我们可以在这个txt文件中看到和Logcat中类似的anr信息,因为这个文件比较长,可以搜索anr in关键词

其次是FS->data->anr文件,打开对应时间的,搜对应自己的包名,可以查到:

根据图中可以看到SessionFragment调用了Thread.sleep方法

信息解释如下:(注意值不对应)

线程名:main
线程优先级:prio=5
线程ID: tid=1
线程状态:Sleeping
线程组名称:group="main"
线程被挂起的次数:sCount=1
线程被调试器挂起的次数:dsCount=0
线程的java的对象地址:obj= 0x7682ab30
线程本身的Native对象地址:self=0x7bd3815c00

线程调度信息:
Linux系统中内核线程ID: sysTid=6317与主线程的进程号相同
线程调度优先级:nice=-10
线程调度组:cgrp=default
线程调度策略和优先级:sched=0/0
线程处理函数地址:handle= 0x7c59fc8548

线程的上下文信息:
线程调度状态:state=S
线程在CPU中的执行时间、线程等待时间、线程执行的时间片长度:schedstat=(1009468742 32888019 224)
线程在用户态中的调度时间值:utm=91
线程在内核态中的调度时间值:stm=9
最后执行这个线程的CPU核序号:core=4

线程的堆栈信息:
堆栈地址和大小:stack=0x7ff27e1000-0x7ff27e3000 stackSize=8MB

 

普通日志抓取:

//e表示error的信息

adb logcat *:e >d:/log.txt

回车开始抓取

ctrl+c 结束结束打印

全部龙信息

adb shell logcat > F:\log.txt

 

 

### 如何使用 ADB 抓取 Android 应用崩溃日志 当应用程序发生崩溃时,可以通过 `adb` 工具捕获相关的日志信息以便后续分析。以下是具体方法: #### 方法一:实时抓取崩溃日志 通过执行以下命令可以实时记录应用的崩溃日志并将其保存到指定位置: ```bash adb logcat -v time > D:\log\logcat.log ``` 此命令启动了一个持续监听的日志流并将带有时间戳的日志输出至文件中[^3]。 一旦发现目标应用出现崩溃情况,在确认所需数据已被记录后可通过快捷键组合 **Ctrl+C** 终止该过程。 #### 方法二:针对已发生的 Crash 进行回溯 对于那些已经发生了 crash 的场景,无需保持长时间运行上述命令。只需打开一个新的 CMD 或终端窗口,并输入如下指令立即收集当前缓冲区内的全部日志内容: ```bash adb logcat -d > D:\log\crash_log.txt ``` 这里 `-d` 参数表示从缓存中提取现有消息而不阻塞等待新事件的发生[^4]。 #### 方法三:过滤特定级别的错误信息 为了更高效地定位问题所在,还可以利用过滤器仅展示严重程度较高的警告及以上等级的消息: ```bash adb logcat *:E > D:\log\error_logs.txt ``` 这里的 `*:E` 设置意味着只接收标记为 ERROR (E) 及以上优先级的信息[^2]。 另外值得注意的是,某些情况下可能还需要关注 ANR(Application Not Responding)现象所对应的轨迹文件,它们一般位于 `/data/anr/traces.txt` 路径下。要访问这些敏感区域则往往需要具备 ROOT 权限才能完成拉取动作: ```bash adb root adb pull /data/anr/traces.txt D:\anr_traces\ ``` 最后提醒一点,不同操作系统环境下配置方式略有差异。例如在 MAC 平台上需先设置环境变量以确保能够正常使用 adb 功能[^5]。 ### 注意事项 - 确保设备已正确连接并通过 `adb devices` 验证状态正常。 - 对于部分安全性更高的机型来说,可能无法直接获取完整的 dump 数据,这时就需要借助其他调试手段配合解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值