Android Studio中的斷點除錯功能很好用,可謂是強大,用的好,不僅可以一定程度上提高開發進度,還能提高逼格。首先從最開始的來吧。
啟動Debug
啟動Debug有兩種方法,一是Debug啟動APP;二是Attach Debugger。
設定斷點
設定斷點比較簡單,在除錯處滑鼠單擊左鍵行號即可。當程式執行到該行將停下來,同時我們可以在Debug除錯面板上可以看到該斷點所處的類、方法和變數等資訊
簡單除錯1、Step Over (F8)點選該按鈕或快捷鍵F8,會直接跳到下一行,儘管該行有方法,也會執行完方法後執行到下一行。有個小技巧:滑鼠左鍵點選行號,會直接執行到該行
2、Step Into (F7)
3、Force Step Into (Alt+Shift+F7)Force Step Into和Step Into作用是一樣的,區別是Step Into只能進入我們自己定義的方法,遇到JDK的方法如圖的String.length(),不會進入;而Force Step Into可以進入自定義和JDK的方法中。
4、Step Out (Shift+F8)跳出方法:如果我們除錯進入了String.length(),可以通過該操作跳出length()執行下一步
5、Run to Cursor (Alt+F9)執行到下一個斷點,比如下圖中,程式執行到55行時我們點一下按鈕,則直接執行到57行,再點一下會執行到61行
以上是平時的一些基礎用法... ...
更高階的玩法1、條件斷點非常有用的一個操作,設想我們的斷點打在一個迴圈中,而我們只想驗證某個值,常規做法是Step Over(可能想哭)和日誌輸出,但是有了條件斷點就方便很多了。直接在紅點上右鍵,然後在條件框中輸入我們的條件,如i==50,只有i等於50的時候,程式才會暫停執行。
2、方法斷點除了紅點形狀不一樣外,感覺用法沒什麼不同(哈哈,看來還沒達到一定的境界)
3、異常斷點有時候應用出現了異常,如最常見的NullPointerException,問題的定位通常是抓日誌打斷點再分析,但是學會了異常斷電後,我們可以粗暴的運用該技巧,系統直接定位到拋該異常的位置並暫定執行。寫個例子,強行丟擲NullPointerException。
操作步驟:點選位置1處彈出Breakpoints面板-》點選位置2處+號-》選擇3.Java Exception Breakpoints-》在彈框中鍵入異常型別如NullPointerException即可
好處是我們不用去打斷點,系統會自動定位到拋該異常的位置,並且程式暫停執行,非常好
4、Evaluate Expression (Alt+F8)計算表示式視窗:可以動態檢視和修改某個變數的值。比如例子中的isAdd初始值是false,通過該操作,不僅可以檢視變數的執行到該步驟的值,而且還能修改值,如圖,將isAdd改成true後,if條件不成立,可以實現我們臨時修改某一狀態的目的。
5、View Breakpoints (Ctrl+Shift+F8)可以看到程式中所有打了斷點的位置,這裡我們可以快速取消某個斷點,也可以選擇執行執行緒中的或全部的斷點,甚至可以設定條件,滿足條件才暫停執行
6、Watches
如果想動態觀察某個值的變化,而Variables面板的變數又太多,這是我們可以使用Watches;點選 + 按鈕,在輸入框輸入或下拉選擇歷史記錄,就可以觀察到該變數的值了。
當然也有快捷操作,直接在程式碼中選中該變數,右鍵選擇Add to Watches,同樣能將該變數新增到Watches面板。如果想在Watches面板中移除該變數,右鍵Remove Watches即可
常用的基本就這些了,如果有哪裡不恰當的,請大家指出