adb、logcat

目录说明

                                                                                                        
00_mtk_dump         --  mtk dump文件                                                                               
01_qcom_dump        --  qcom dump文件                                                                              
02_data_log         --  data/log目录下的内容    
		*hilog     --  流水日志   一般根据发生事件查看
		*eventlog  --  声明周期
03_log_partition    --  log分区下的文件                                                                            
04_system_log       --  Android 系统log,包括anr、tombstone、lowmem、apanic、wtf等 
		*anr       --  应用无响应日志
		*dropbox   --  根据应用包名打印自身相关的日志
05_modem_log        --  modem 运行过程中产生的log,从cp-log、diag_logs导出                                         
06_hwzd_logs        --  hwzd log                                                                                   
07_RunningTest_log  --  RunningT log,包括/data/data/com.huawei.runningtestii/shared_prefs、                       
                        /data/log/rt下的内容在data-log里面                                                         
08_MMI_log          --  MMI测试log,包括/data/data/com.huawei.mmitest/log目录下的内容                              
09_sdcard_log       --  sdcard目录下文件                                                                           
10_sec_storage_data --  安全相关的log                                                                              
11_aee_exp          --  mtk可靠性相关的minidump文件                                                                
11_dumplog          --  qcom可靠性相关的minidump文件                                                               
12_mtk_pstore       --  mtk pstore日志                                                                             
13_vendor_log       --  data/vendor日志                                                                            
14_mtk_privatelog   --  mtk 私有相关日志                                                                           

日志的抓取方法

获取手机里日志
  • 【删除log
    adb shell rm -rf data/log/hilogs
    adb shell rm -rf data/log/dropbox
    adb shell rm -rf data/log/LogService
    
    【pull log
    adb pull data/log/hilogs/  .
    adb pull data/log/dropbox  .
    adb pull data/log/LogService .
    
logcat获取
  • logcat获取
    • adb logcat > xxx.log
      adb logcat -b [main/system/event/radio...] > xxx.log
      默认adb logcat获取的是main log;
      
    • 通过在mainlog或者bugreport中搜索关键字am_anr,ANR in可以得到ANR发生的时间、对应的进程、原因描述等、
      CPU占用和iowait时间,有时也需要确定内存情况,可以通过在bugreport中查找mem info信息获取到;
      
bugreport获取
  • bugreport获取

    • adb bugreport
      该命令执行完成,会出现一个进度条,耐心等待到100%即可;
       有时候会由于adb版本较低,上述命令不能正常执行,可以执行如下命令,也可以得到所需文件;
      adb bugreport > bugreport.txt
      bugreport包含main、system、event、kernel**log**信息,还有设备的一些dump信息,内容较多、较完全;
      

    通过在mainlog或者bugreport中搜索关键字am_anr,ANR in可以得到ANR发生的时间、对应的进程、原因描述等、
    CPU占用和iowait时间,有时也需要确定内存情况,可以通过在bugreport中查找mem info信息获取到;

    
    
    
ANR获取
  • ANR获取

    • Android系统有自身的设计,在应用运行时出现无响应时,会将该信息记录保存到data/anr/目录下,即为所需的trace文件,
      所以获取该文件的方式也就特别简单,执行如下命令即可;
      adb pull /data/anr/
      上述命令执行完成,在当前目录会有anr文件夹,里面就是所以的文件;
      
  •   通过第一步已经查找到所在进程,接着在trace文件中找到对应进程的堆栈信息,方便更进一步定位问题;
      
      "main" prio
### 使用 `adb logcat` 的方法及相关日志信息 #### 基本命令 可以通过以下基本命令来捕获 Android 设备的日志输出: - 将日志输出到终端: ```bash adb logcat ``` 这条命令会实时显示设备上的日志消息[^1]。 - 将日志保存到指定文件中: ```bash adb logcat > log.txt ``` 此操作将日志数据写入名为 `log.txt` 的文件中,适合后续分析使用[^1]。 - 添加时间戳以便更清晰地了解每条日志的时间点: ```bash adb logcat -v time > log.txt ``` `-v time` 参数会在每条日志前附加具体的时间戳,便于追踪事件发生的具体时刻[^1]。 #### 高级功能 为了更好地管理和筛选日志,可以利用一些高级选项: - **按优先级过滤日志** 日志分为不同的等级,从低到高的顺序为:Verbose (V), Debug (D), Info (I), Warn (W), Error (E), Fatal (F),Silent (S)[^5]。例如,仅显示错误及以上级别的日志可执行如下命令: ```bash adb logcat *:E ``` - **针对特定标签或包名过滤日志** 如果只想查看某个应用(假设其包名为 `com.example.app`)产生的日志,则可以用以下方式: ```bash adb logcat | grep "com.example.app" ``` 或者直接设置标签过滤器: ```bash adb logcat com.example.app:D *:S ``` 上述命令表示只显示来自 `com.example.app` 的调试信息,并屏蔽其他来源的消息[^2]。 - **后台运行日志记录** 当需要在 U 盘模式或其他情况下继续收集日志时,可以让 `logcat` 在后台持续工作并将结果存储至本地路径下的文件里: ```bash adb shell "logcat -v time > /sdcard/mylog.txt &" ``` 即使 ADB 断开连接后,该进程仍将继续运行直到手动终止[^3]。 #### 示例代码片段 以下是几个常见的实际应用场景对应的脚本实例: ##### 场景一:捕捉崩溃堆栈信息 当应用程序异常退出时快速定位原因。 ```bash adb logcat --pid=$(adb shell pidof -s com.yourapp.package) | tee crash_log.txt ``` ##### 场景二:监控网络请求活动 对于 HTTP/HTTPS 请求感兴趣的开发者来说非常有用。 ```bash adb logcat -b radio ``` ##### 场景三:长期稳定测试期间保持日志滚动更新而不丢失旧有内容 适用于长时间压力测试环境之中。 ```bash nohup adb logcat -v threadtime >> long_test_logs.log & ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值