Android 缓存日志(Logcat)导出与分析全攻略

Android 缓存日志(Logcat)导出与分析全攻略

为什么要导出缓存日志?

  • 当遇到隐形的症状(崩溃、异常)时,方便事后排查
  • 网络掉线或 USB 断开时依然可用
  • 设备端缓存日志可用于异常回溯分析

按需过滤导出

1. 按进程(PID)过滤

bash 复制代码
adb logcat -d --pid=<pid> -v threadtime > app.log
缓冲区类型 命令示例 用途
崩溃日志 adb logcat -b crash > crash.log 未捕获异常
系统事件 adb logcat -b events > events.log 系统 UI 事件
Radio adb logcat -b radio > radio.log 网络/通信问题

按日志级别过滤

bash 复制代码
adb logcat -d -v threadtime *:E > errors.log

日志级别说明:

  • Verbose:全部日志
  • Debug:调试信息
  • Info:普通信息
  • Warning:警告
  • Error:错误
  • Fatal:致命错误

按关键字过滤

bash 复制代码
adb logcat -d -v threadtime | grep "NullPointer" > crash.log

验证导出结果

bash 复制代码
# 查看日志总行数
wc -l log_2025-08-08.log

# 查看前20行
head -n 20 log_2025-08-08.log

自动化示例

1. 一键导出当前前台应用日志

bash 复制代码
pkg=$(adb shell dumpsys window | grep mCurrentFocus | awk -F'/' '{print $1}' | awk '{print $NF}')
adb logcat -d -v threadtime --pid=$(adb shell pidof $pkg) > ${pkg}_$(date +%F_%H-%M-%S).log

2. 崩溃日志自动抓取器

bash 复制代码
while true; do
  if adb logcat -d -b crash | grep -q "FATAL EXCEPTION"; then
    ts=$(date +%F_%H-%M-%S)
    adb logcat -d -v long -b crash > crash_${ts}.log
    echo "崩溃日志已保存:crash_${ts}.log"
    break
  fi
  sleep 5
done

常见问题与优化技巧

问题 解决方案
Insufficient permissions 授予日志访问权限或获取 root
缓存覆盖 提前导出,增大缓存区大小
断连 保存到 /sdcard 后再拉取

乱码解决

bash 复制代码
adb logcat -d | iconv -f utf-8 -t utf-8//IGNORE > clean.log

最佳实践

  1. 测试阶段全程后台记录:

    bash 复制代码
    adb logcat -v threadtime -f /sdcard/full.log &
  2. 发现问题立即 dump 缓存

  3. 结合 bugreport 获取更全面的诊断信息

相关推荐
传奇开心果1 天前
【Compose Multiplatform跨端声明式UI实用技术】第19课:多平台部署与发布
android·kotlin
红尘伴蝶舞1 天前
加密拦截器让抓包失效,我只能从 4KB 的 logcat 碎片里拼回 JSON
android·kotlin·ai编程
booboosui1 天前
219 个还是 0 个:读不到微信界面时,我只加不删
android
Android打工仔1 天前
Compose 中何时该用 padding,何时该用 offset
android·android jetpack
二流小码农1 天前
HarmonyOS开发助手,0代码让元服务从开发到上架
android·ios·harmonyos
limit00751 天前
三维 WebGIS 工具选型:加载、样式、分析、交付,一套界面能做完什么
android·前端·web3·安卓·webgl
骑着蜗牛撵大象3271 天前
让 Codex 值夜班:把告警排查与巡检接成可回滚的自动化链路
android·java·运维·ai·自动化·codex·智能体
2401_885885041 天前
芬兰语音通知接口怎样对接?语音提醒接入流程
android·前端·python·php·语音识别
程序猿老A1 天前
轻量应用服务器怎么用phpcms搭建网站?
android
Zhang~Ling1 天前
Redis 基础教程:从常用命令到实际业务场景
数据库·redis·缓存