Android Studio DeBug
額,之前都是用log日誌輸出,自己想要的東西.搞得代碼到處都是Log.i()…
突然有一天,,,自己get到了,Android 斷點….調試….,
世界就變得不一樣了….
這篇文章,算是自己閱讀和實戰後的筆記吧~
1.adb連接後,打開debug
2.debug斷點的設置
3.debug的面板分析
在你,點擊第一步的ok之後, 會彈出debug的窗口.其中的界面如下.
區域分別爲
- 單步調試區
- 斷點管理區
- 求值表達式
- 線程幀棧區
- 對象變量區
- 變量觀察區
4.debug,演示操作
5.debug操作姿勢–單步調試區
該區提供了調試的主要操作,和你所熟知的一樣的,主要有:Step over、step into、force step into、step out、drop frame。
5.1 全局數值監視 watch
5.2 變量變化 variables
5.3 交互式解釋器Evaluate expression
你可以執行任何你想要執行的表達式進行求值操作
5.4 Force Run to Cursor
可以忽視已經存在的斷點,跳轉到光標所在處.
如現在第10行,此時我想調試18行而又不想一步一步調試,能不能一次到位呢?我們只需要將光標定位到相應的位置,然後執行Force Run to Cursor即可:
5.5 Get thread dump這裏寫圖片描述
6.斷點的分類
斷點是調試器的功能之一,可以讓程序暫停在需要的地方,幫助我們進行分析程序的運行過程
方法斷點
單行斷點
條件斷點
日誌斷點
異常斷點
屬性斷點
6.1 方法斷點
最常用,略過
6.2單行斷點
最常用,略過
6.3條件斷點
條件斷點,就是某種特定條件下,纔會發生的斷點.比如,現在我們有個list中,其中包含了q,1q,2q,3q四個元素,我們希望在遍歷到2q時暫停程序運行,那麼需要進行如下操作:
在需要的地方添加斷點,如下:
斷點處左鍵單擊,在Condition處填寫過濾條件.此處我們只關心2q,因此填寫s.equals(“2q”)
6.4日誌斷點
該類型的斷點不會使程序停下來,而是在輸出我們要它輸出的日誌信息,然後繼續執行。具體操作如下:
同樣在斷點處左鍵單擊,在彈出的對話框中取消選中Suspend。
在彈出的控制面板中,選中Log evaluated expression,然後再填寫想要輸出的日誌信息,如下:
當調試過程遇到該斷點將會輸出結果,如下:
6.5#屬性斷點 Filed WatchPoint
Filed WatchPoint是本質上是一種特殊的斷點,也稱爲屬性斷點:當我們某個字段值被修改的時候,程序暫停在修改處。通常在調試多線程時尤爲可用,能幫我們及時的定位併發錯誤的問題。
參考:
江湖人稱小白哥的 Android Studio代碼調試大全,寫的確實很好,大家可以去 看下,一片足以讓你掌握Android調試的文章