標籤:android blog http 使用 2014 io
前言新買的筆記本E431裝了最新版的Eclipse,搞定了Android開發環境,但是logcat裡查看東西竟然只顯示level,沒有錯誤的詳細資料。我本身也不是一個願意折騰圖形介面,更喜歡純命令列的操作,因此今天在明昊師兄的建議下,果斷放棄Eclipse的logcat,投奔adb shell下執行logcat。
adb logcatAndroid日誌系統提供了logcat命令可以讓我們跟蹤和查看系統日誌緩衝區。基本文法如下:
[adb] logcat [<option>]... [<filter-spec>]
可以直接在命令列通過如下命令查看日誌輸出:
adb logcat
也可以通過adb shell登入到開發機後,直接執行如下命令:
logcat
option選項
我一般使用-s執行tag標籤,例如:
進階功能在rom porting或者其他debug的場合,需要結合過濾功能才能從logcat中擷取真正需要的資訊,接下來介紹logcat兩種過濾實現方法。
過濾adb logcat提供了附加功能,基於日誌優先順序來過濾日誌。使用文法如下:
adb logcat *:#
其中,#為下列選項之一:
- V 詳細,表示所有可能的日誌,預設層級
- D 調試,表示所有合理的調試日誌
- I 資訊,表示正常使用時的日誌
- W 警告,表示可能有問題,但是還沒發生錯誤
- E 錯誤,表示有問題,並且導致錯誤
所有優先順序都自動包含比它高的優先順序,例如logcat *:I,包含了資訊、警告、錯誤等資訊。因此,當應用崩潰時,更應該集合logcat *:E來查看導致錯誤的原因,必須費力去查看不著邊際的調試日誌。
grep對於adb logcat輸出的日誌內容,我們還可以結合grep實現進一步的過濾操作。例如,我需要搜尋錯誤報表中包含“wangzhengyi”關鍵詞的日誌,可以採用如下命令:
adb logcat *:E | grep -i 'wangzhengyi'