文章

Android Studio Logcat 抓包教程

本文介绍如何使用 Android Studio 的 Logcat 工具进行 HTTP 请求抓包分析,适用于 Android 开发调试场景。

Android Studio Logcat 抓包教程

环境

  • 使用的Android Studio版本:2024.3.1 Patch 1
  • 项目已集成网络请求库(如 Retrofit、OkHttp、Volley 等)
  • 设备处于调试模式(真机或模拟器)

环境要求示意图

打开 Logcat

  1. 在 Android Studio 左侧工具栏找到 Logcat 标签
    • 如果未显示,可通过 顶部视图 > 工具窗口 > Logcat 打开

Logcat位置1

Logcat位置2

  1. 在设备选择下拉框中选择目标设备(真机或模拟器)

设备选择

Logcat 过滤功能详解

Logcat 提供了强大的过滤功能,支持多种过滤条件:

基础过滤字段

字段名说明示例
tag匹配日志条目的标签tag:Network
package匹配应用包名package:com.example.app
process匹配进程名称process:com.example.app
message匹配日志消息内容message:error
level匹配日志级别level:ERROR
age时间过滤age:5m

日志级别说明:

  • VERBOSE:最详细的日志信息
  • DEBUG:调试信息
  • INFO:常规信息
  • WARN:警告信息
  • ERROR:错误信息
  • ASSERT:断言信息

高级过滤语法

1. 否定和正则表达式

类型语法示例说明
否定-字段名:值-tag:MyTag排除包含指定值的日志
正则字段名~:正则表达式tag~:My.*Tag使用正则表达式匹配
组合-字段名~:正则表达式-tag~:My.*Tag排除匹配正则表达式的日志

2. 逻辑运算符

运算符说明示例
&AND(与)tag:foo & level:ERROR
|OR(或)tag:foo | tag:bar
()优先级控制(tag:foo | level:ERROR) & package:mine

3. 特殊查询

查询说明示例
package:mine匹配当前项目所有包名package:mine
is:crash匹配应用崩溃日志is:crash
is:stacktrace匹配堆栈跟踪信息is:stacktrace

过滤示例

  1. 按包名过滤:

包名过滤示例

  1. 包名+标签组合:

包名标签组合示例

根据 Thread Id 可以很容易看到请求和响应信息

Thread Id示例

实用技巧

1. 快速定位网络请求

  • 使用 Thread Id 追踪请求和响应的对应关系
  • 结合 tag 和 package 进行精确过滤
  • 使用正则表达式匹配特定格式的请求

2. 日志级别选择

  • 开发环境:使用 level:DEBUG 查看详细日志
  • 测试环境:使用 level:INFO 关注主要流程
  • 生产环境:使用 level:ERROR 监控异常

3. 时间过滤技巧

1
2
3
age:5m    // 最近5分钟的日志
age:1h    // 最近1小时的日志
age:1d    // 最近1天的日志

其他功能

Logcat 界面还提供了以下实用工具:

  • 调试工具:断点调试、变量查看
  • 屏幕截图:快速捕获设备屏幕
  • 屏幕录制:录制设备操作过程
  • ADB 调试:直接执行 ADB 命令

其他功能

注意事项

  1. 设备连接
    • 确保设备已正确连接
    • 检查设备是否处于调试模式
    • 验证 ADB 连接状态
  2. 性能考虑
    • 避免过多的日志输出
    • 合理使用日志级别
    • 注意日志对应用性能的影响
  3. 安全建议
    • 生产环境关闭详细日志
    • 避免记录敏感信息
    • 定期清理日志文件
  4. 时间同步
    • 确保设备时间正确
    • 注意时区设置
    • 验证时间戳准确性

本文由作者按照 CC BY 4.0 进行授权

热门标签