android日志系統提供了記錄和查看系統調試信息的功能,日志都是從各個軟件和一些系統的緩沖區中記錄下來的,緩沖區可以通過logcat命令來進行查看和使用
開發者選項,有個選項叫做“日志記錄器緩沖區大小”,默認是256K,日志是循環寫入環形緩沖區的,在通常情況下,寫滿時最舊的日志會被刪除已給新輸出的日志留內存空間
1.緩沖區的類型
Android 日志系統為日志消息保留了多個循環緩沖區,不是所有的消息都被發送到默認緩沖區,要想查看這些附加的緩沖區,可以使用 -b選項,查看指定的緩沖區:
adb logcat [-b <buffer>]
buffer可以有如下選項:
-
- Radio 參數可以抓取Android RIL層 ,查看log包含在通信系統的log,如藍牙、wifi、打印.、網卡、3G、4G 命令:adb logcat -b radio
- Events 查看事件相關的消息,比如啟動應用,停止文件 事件.
- Main 查看主緩沖區、所有Java層的log(默認緩沖區).
- System 輸出系統組件的log(默認緩沖區).
ps:默認使用 【adb logcat】會輸出Main及System緩沖區的log信息。
加參數-v time 可以顯示每天記錄的詳細時間,如 adb logcat -b system -v time > D:\log.system.txt
2.認識輸出日志信息
輸出的日志信息格式如下圖所示:
1)日志內容由五部分組成
大概就是顯示:時間 、進程Id=1164、 線程Id=1181、優先級=D、標簽(tag)=WindowManger : message
-
- 寫下日志時的時間,如:08-11 09:45:35.209
- 優先級:日志的優先級從小到大為
V-Verbose(啰嗦,最低級別,開發調試時的一些詳細信息,僅在開發中使用,不可在發布產品中輸出)
D-Debug(調試,用於調試的信息,可以在發布產品中關閉,比較常見)
I-information(信息,一般提示性的消息)
W-warning(警告)
E-Error (錯誤,已經出現可影響運行的錯誤,比如應用crash時輸出的日志)
S(無記載)
3.標簽(tag),表明日志發起者和方便日志的過濾篩選,如上圖中的SystemServer
4.PID(進程ID),如上圖中的1760
5.正文,本日志的主體部分
2)過濾日志
如果要減少logcat 的輸出日志,可以使用如上條件進行過濾、可用多個表達一起限制
過濾表達式的格式為:tag:prority (因為同一個tag可以有不同的優先級)
如:adb logcat ActivityManager:I MyApp:D *:S
備注1:僅用於輸出標記為“ActivityManager”且優先級大於等於"I"和標記為“MyApp”,優先級大於等於"Debug"的日志。
備注2:*:S是用於設置ActivityManager:I MyApp:D輸出的日志再次過濾 ,標記這些日志的優先級為S(即只輸入ActivityManager:I MyApp:D日志,其他的不輸出)
備注3:一般都會在過濾后加上*:S以輸出符合指令的日志
adb logcat *:W // "*"是指所有的tag, "*:W"是指輸出所有的優先級為W以上的所有tag日志信息
可通過包名來過濾日志,
將程序運行在前台,通過命令查看應用包名稱:adb shell dumpsys | findstr "mFocusedActivity"
3)分析日志異常情況
發生 crash 問題,搜索關鍵字 force finishing (往上找日志:FATAL EXCEPTION—Force finish)
ANR(Application not responding)應用無響應,當應用操作一段時間內系統無法處理時,系統會彈出無響應的對話框。具體可以產看traces.txt文件,進行分析。
traces.txt文件是一個ANR記錄文件,用於開發人員調試,目錄位於/data/anr中
,無需root權限即可通過pull命令獲取,下面的命令可以將traces.txt文件拷貝到當前目錄下
通過ANR in 過濾數據 從上往下找數據
ANR需要提交的日志文件:logcat(從ANR in 開始+cpu使用之后)+Trace.txt(保存的是最后一次anr 的信息)
出現多次anr:將dropbox 下的data_app_anr 直接給開發人員
通過dropbox 收集一段時間內的異常信息(包括ANR)
/data/system/dropbox
Data_app 是第三方的app
App 發生異常
l 首先判斷是崩潰還是無響應anr(根據對話框進行)
l Adb logcat抓取日志文件 如果是ANR 取dropbox下面的data_app_anr
l 復現場景 復現步驟復現環境