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