Android的程序調試主要使用Logcat進行,本節主要介紹Logcat的使用。
- 開啟調試模式
使用Android Studio進行程序調試,首先需要連接虛擬Android設備或真實Android設備,設備上需要啟用調試功能。
虛擬Android設備默認情況下會啟用調試功能。對于真實Android設備,需要在設備開發者選項中啟用調試功能。Android設備的開發者選項一般在設置App里可以找到,在該界面中可以配置一些系統行為來幫助分析和調試應用性能,例如,可以啟用 USB 調試、捕獲 bug 報告、啟用點按的視覺反饋、在窗口 surface 更新時刷寫 surface、使用 GPU 渲染 2D 圖形等等。
不同版本的Android啟用開發者選項的方法不同,在 Android 4.1 及更低版本上,開發者選項界面在默認情況下處于啟用狀態。在 Android 4.2 及更高版本上,必須手動啟用此界面。
大部分Android設備啟動開發者選項的方法是找到“設置”中的“關于手機”,再找到“版本號”,連續點按版本號選項七次,直到看到 “您已處于開發者模式,無需進行此操作。” 或類似消息。
注意在某些設備上,開發者選項界面所在的位置或所用的名稱可能有所不同,具體請搜索各自品牌手機開發使用說明。
在開發者選項界面需要啟用 USB 調試,以便 Android Studio 和其他 SDK 工具能夠通過 USB 連接時識別設備,然后才能使用調試工具和其他工具,如圖1所示。
圖1 開啟開發者選項和USB調試
Android 11及以上系統還支持無線調式,無需使用數據線即可進行程序調試,無線調試開啟方法與USB調試類似,具體使用步驟讀者可查閱相關資料。
2.使用 Logcat 查看日志
Android Studio中的 Logcat 窗口會實時顯示設備日志,日志有來自在 Android 上運行的服務的消息或系統消息、當前調試應用的消息。
如需查看應用的日志消息,執行以下操作。
1)在 Android Studio中,在實體設備或模擬器上構建并運行應用。
2)從菜單欄中依次選擇 View → Tool Windows → Logcat。
3)默認情況下,Logcat 會滾動到末尾。單擊 Logcat 視圖或使用鼠標滾輪向上滾動即可關閉此功能。如需重新開啟,請單擊工具欄中的“Scroll to the End”圖標,還可以使用工具欄清除、暫停或重啟 Logcat。
如果應用拋出異常,Logcat 會顯示一條消息,后跟相關聯的堆棧軌跡,其中包含指向相應代碼行的鏈接,如圖2圖中藍色字“MainActivty.java:19”即表示錯誤出現在MainActivty.java文件的第19行,單擊該藍色字即可跳轉到出錯代碼處。
圖2 ?Logcat示例
3.搜索查詢日志
在 Android Studio中,可以直接從主查詢字段生成鍵值對搜索所需日志。以下是可以在查詢中使用的鍵:
- tag:與日志條目的 tag 字段匹配。
- package:與日志記錄應用的軟件包名稱匹配。
- process:與日志記錄應用的進程名稱匹配。
- message:與日志條目的消息部分匹配。
- level:與指定或更高嚴重級別的日志匹配,例如 DEBUG。
- age:如果條目時間戳是最近的,則匹配。值要指定為數字,后跟表示時間單位的字母:s 表示秒,m 表示分鐘,h 表示小時,d 表示天。例如,age: 5m 只會過濾過去 5 分鐘內記錄的消息。
如圖3所示,在日志搜索框中輸入tag,可以看到支持的tag匹配模式,包括精確匹配、包含、正則表達式匹配、不包含等。
圖3 ?Logcat tag鍵值匹配模式
圖4?Logcat message鍵值匹配模式
圖5 ?Logcat package:mine匹配模式
大部分其他鍵同樣有這些匹配模式,如圖4所示是message鍵的匹配模式,除此之外,還有個特殊查詢: package:mine,表示當前包名下的所有日志信息,如圖5所示。
level 查詢與 Logcat 消息的日志級別匹配,其中日志條目的級別大于或等于查詢級別。例如,level:INFO 匹配日志級別為 INFO、WARN、ERROR 或 ASSERT 的任何日志條目,級別不區分大小寫,如圖6所示。有效級別包括:VERBOSE、DEBUG、INFO、WARN、ERROR 和 ASSERT。
圖6? Logcat level:INFO匹配模式