ADB打印设备日志相关
1. 基础日志命令
# 实时打印全部设备日志
adb logcat# 保存完整日志到文件(带时间戳)
adb logcat -v time > full_log.txt# 仅保存崩溃日志
adb logcat -b crash > crash_log.txt# 仅保存ANR日志(应用无响应)
adb logcat -v time | grep "ANR" > anr_log.txt
2. 多设备操作
# 获取已连接设备列表
adb devices -l# 输出示例:
# List of devices attached
# emulator-5554device product:sdk_gphone_x86 model:Android_SDK_built_for_x86 device:generic_x86
# 5c1b5a3edevice usb:336592896X product:walleye model:Pixel_2 device:walleye# 获取设备序列号
adb get-serialno# 默认设备
adb -s emulator-5554 get-serialno# 指定设备# 指定设备执行命令
adb -s emulator-5554 logcat# 指定设备抓日志
3. 高级日志过滤
# 排除调试信息(只显示Error及以上级别)
adb logcat *:E# 按标签过滤日志
adb logcat -s AndroidRuntime# 仅显示运行时错误
adb logcat -s MyAppTag# 仅显示自定义标签日志# 按进程ID过滤
adb shell ps -A | grep "myapp"# 查找进程ID
adb logcat --pid=1234# 仅显示指定进程日志
4. 系统诊断命令
# 获取完整系统报告(包含所有日志和状态)
adb bugreport > system_report.zip# 提取ANR跟踪文件
adb pull /data/anr/traces.txt anr_traces.txt# 查看当前顶层Activity
adb shell dumpsys activity top | grep ACTIVITY
# 输出示例:ACTIVITY com.example.myapp/.MainActivity 12345abc pid=6789
5. 崩溃监控技巧
# 持续监控运行时崩溃
adb logcat -b main -b system -b crash | grep -E "FATAL|CRASH"# 监控Native崩溃信号
adb logcat | grep -E "SIGSEGV|SIGABRT|SIGILL"# 自动保存最新崩溃日志
while true; do
adb logcat -d -b crash > crash_$(date +%s).txt
sleep 5
done
安装与配置说明
Windows安装:
- 下载Platform-Tools
- 解压zip文件
- 添加路径到系统环境变量:
我的电脑 > 属性 > 高级系统设置 > 环境变量
- 命令行验证:
adb version
macOS/Linux安装:
# macOS
brew install android-platform-tools# Ubuntu/Debian
sudo apt install adb fastboot# 验证安装
adb --version
USB调试启用:
- 手机进入设置 > 关于手机
- 连续点击"版本号"7次启用开发者模式
- 返回设置 > 系统 > 开发者选项
- 启用"USB调试"和"USB安装"
提示:
- 使用
adb logcat -c
清除旧日志- 崩溃日志保存在
/data/tombstones/
目录(需root)- 对于ANR问题,同时检查
/data/anr/
目录内容- 无线调试命令:
adb tcpip 5555 && adb connect <设备IP>