Android 緩存日志Logcat導(dǎo)出與分析最佳實(shí)踐
Android 緩存日志(Logcat)導(dǎo)出與分析全攻略
為什么要導(dǎo)出緩存日志?
- 當(dāng)遇到隱形的癥狀(崩潰、異常)時,方便事后排查
- 網(wǎng)絡(luò)掉線或 USB 斷開時依然可用
- 設(shè)備端緩存日志可用于異?;厮莘治?/li>
按需過濾導(dǎo)出
1. 按進(jìn)程(PID)過濾
adb logcat -d --pid=<pid> -v threadtime > app.log
| 緩沖區(qū)類型 | 命令示例 | 用途 |
|---|---|---|
| 崩潰日志 | adb logcat -b crash > crash.log | 未捕獲異常 |
| 系統(tǒng)事件 | adb logcat -b events > events.log | 系統(tǒng) UI 事件 |
| Radio | adb logcat -b radio > radio.log | 網(wǎng)絡(luò)/通信問題 |
按日志級別過濾
adb logcat -d -v threadtime *:E > errors.log
日志級別說明:
- Verbose:全部日志
- Debug:調(diào)試信息
- Info:普通信息
- Warning:警告
- Error:錯誤
- Fatal:致命錯誤
按關(guān)鍵字過濾
adb logcat -d -v threadtime | grep "NullPointer" > crash.log
驗(yàn)證導(dǎo)出結(jié)果
# 查看日志總行數(shù) wc -l log_2025-08-08.log # 查看前20行 head -n 20 log_2025-08-08.log
自動化示例
1. 一鍵導(dǎo)出當(dāng)前前臺應(yīng)用日志
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).log2. 崩潰日志自動抓取器
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常見問題與優(yōu)化技巧
| 問題 | 解決方案 |
|---|---|
| Insufficient permissions | 授予日志訪問權(quán)限或獲取 root |
| 緩存覆蓋 | 提前導(dǎo)出,增大緩存區(qū)大小 |
| 斷連 | 保存到 /sdcard 后再拉取 |
亂碼解決
adb logcat -d | iconv -f utf-8 -t utf-8//IGNORE > clean.log
最佳實(shí)踐
- 測試階段全程后臺記錄:
adb logcat -v threadtime -f /sdcard/full.log &
- 發(fā)現(xiàn)問題立即 dump 緩存
- 結(jié)合
bugreport獲取更全面的診斷信息
到此這篇關(guān)于Android 緩存日志Logcat導(dǎo)出與分析全攻略的文章就介紹到這了,更多相關(guān)android 緩存日志logcat內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Kotlin學(xué)習(xí)教程之協(xié)程Coroutine
這篇文章主要給大家介紹了關(guān)于Kotlin學(xué)習(xí)教程之協(xié)程Coroutine的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
Android開發(fā)人臉識別統(tǒng)計人臉數(shù)
這篇文章主要介紹了Android開發(fā)人臉識別統(tǒng)計人臉數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-10-10
Android中的導(dǎo)航navigation的使用詳細(xì)步驟
在Android中,導(dǎo)航主要通過使用Navigation SDK來實(shí)現(xiàn),該SDK提供了一組工具和組件,可以幫助開發(fā)人員構(gòu)建具有一致性和可訪問性的用戶界面,這篇文章主要介紹了Android中的導(dǎo)航navigation的使用詳細(xì)步驟,需要的朋友可以參考下2024-04-04
Android使用動畫動態(tài)添加商品進(jìn)購物車
這篇文章主要為大家詳細(xì)介紹了Android使用動畫動態(tài)添加商品進(jìn)購物車,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
android 對話框彈出位置和透明度的設(shè)置具體實(shí)現(xiàn)方法
在android中我們經(jīng)常會用AlertDialog來顯示對話框。通過這個對話框是顯示在屏幕中心的。但在某些程序中,要求對話框可以顯示在不同的位置。2013-07-07
Android提高之MediaPlayer播放網(wǎng)絡(luò)音頻的實(shí)現(xiàn)方法
這篇文章主要介紹了Android的MediaPlayer播放網(wǎng)絡(luò)音頻的實(shí)現(xiàn)方法,很實(shí)用的功能,需要的朋友可以參考下2014-08-08
Android自定義View實(shí)現(xiàn)角度選擇器
前幾天在Google Photos查看照片,用了一下它的圖片剪裁功能,于是我馬上就被其界面和操作吸引。后來想模仿做一個和Google Photos裁圖頁面幾乎一模一樣的角度選擇器,本文比較基礎(chǔ),在閱讀本文前只需要掌握最基礎(chǔ)的自定義View知識和Android事件知識。下面來一起學(xué)習(xí)下吧。2016-11-11
教你3分鐘了解Android 簡易時間軸的實(shí)現(xiàn)方法
本篇文章主要介紹了教你3分鐘了解Android 簡易時間軸的實(shí)現(xiàn)方法,具有一定的參考價值,有興趣的可以了解一下2017-07-07

