您好,登錄后才能下訂單哦!
本文為大家分享了Android Studio debug功能的具體使用方法,供大家參考,具體內容如下
運行debug模式
1. 進入debug
- 點擊圖中紅色圓圈圈起的左邊綠色按鈕,運行app的debug模式,快捷鍵Shift+F9
- 點擊圖中紅色圓圈圈起的右邊按鈕,可以選擇正在運行的進程attach debugger
1. 打斷點:鼠標點擊編輯框左側,出現紅色圓點
斷點分類
這張圖可以看出斷點也有行斷點、方法斷點、字段斷點、異常斷點。其實打斷點仔細觀察也可以發現它們的標識圖片是不同的,就是上圖中每行前面的那四種不同的小紅點。
行斷點: 當執行到此行是停止執行,等待調試。
屬性斷點:打在類的成員變量上,當變量初始化或變量的值改變時觸發斷點。當然也可以配合其他用法設置過濾。
方法斷點:打在一個函數的首行,進行函數級別的調試,更可以打在JDK的源碼里,查看函數調用。普通的斷點是不能打在源碼里的。
異常斷點:當拋出指定異常時觸發斷點。AS可以在Breakpoints中點擊左上角 + 號,選擇Java Exception Breakpoints,來指定一個異常。
基本操作
從左到右依次
從上到下依次為:
高級操作和斷點過濾
點擊上一張圖中的5查看斷點可以打開下面的面板,這張面板提供了關于debug的許多高級功能:
條件過濾
右擊斷點,可以設置condition。如圖所示,設置一個變量mJoinVaule.equals(“222”),點擊Done。當在mJoinEt這個EditText中輸入222時才會觸發這個斷點。
在BreakPoints面板同樣可以設置條件斷點。
測試代碼
下面是一段測試代碼,用來測試后面的功能
package com.jnxy.arithmetic.base; /** * Created by admin on 2016/8/5. */ public class Person { int age; public void out() { System.out.println("age : " + age); } public Person(int age) { this.age = age; } public static void main(String [] args) { Person p1 = new Person(3); Person p2 = new Person(5); Person p3 = new Person(8); Man man = new Man(10, 10); Woman woman = new Woman(12, 12); Person[] persons = new Person[]{p1, p2, p3, man, woman}; for (Person person : persons) { person.out(); } } } class Man extends Person { int weight; public Man(int age, int weight) { super(age); this.weight = weight; } } class Woman extends Person{ int height; public Woman(int age, int height) { super(age); this.height = height; } }
日志斷點
斷點打在上方代碼第27行,選中代碼,同時設置Condition和Log evaluation expression,這樣只有person.age==8時斷點生效,才會在log打印表達式。當然,也可以值設置Log表達式。控制器輸出如下圖,可以看到只有age==8時才打印了toString().
實例過濾
打好斷點,并設置觸發斷點的實例
繼續執行程序,當設置的實例調用方法時斷點生效。
類過濾
首先設置Class Filter,內容為要過濾類的完整路徑,設置為只有Man類調用方法斷點生效,下圖age==10,證明確實是Man類調用的方法。
執行次數斷點
Pass Count和Condition具有相似之處,但Condition用途應該更廣泛一些。
設置變量值
調試過程中,選中一個變量右鍵可以可以進行Set Value操作,這項強大的功能對需要不同數據進行判斷的情況提供了極大地便利。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。