亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android Studio中debug功能詳解

 更新時(shí)間:2018年05月14日 15:28:24   作者:哆啦U夢(mèng)  
這篇文章主要為大家詳細(xì)介紹了Android Studio中debug功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文為大家分享了Android Studio debug功能的具體使用方法,供大家參考,具體內(nèi)容如下

運(yùn)行debug模式

 

1. 進(jìn)入debug

- 點(diǎn)擊圖中紅色圓圈圈起的左邊綠色按鈕,運(yùn)行app的debug模式,快捷鍵Shift+F9

- 點(diǎn)擊圖中紅色圓圈圈起的右邊按鈕,可以選擇正在運(yùn)行的進(jìn)程attach debugger

1. 打斷點(diǎn):鼠標(biāo)點(diǎn)擊編輯框左側(cè),出現(xiàn)紅色圓點(diǎn)

斷點(diǎn)分類(lèi)

 

這張圖可以看出斷點(diǎn)也有行斷點(diǎn)、方法斷點(diǎn)、字段斷點(diǎn)、異常斷點(diǎn)。其實(shí)打斷點(diǎn)仔細(xì)觀察也可以發(fā)現(xiàn)它們的標(biāo)識(shí)圖片是不同的,就是上圖中每行前面的那四種不同的小紅點(diǎn)。

行斷點(diǎn): 當(dāng)執(zhí)行到此行是停止執(zhí)行,等待調(diào)試。

屬性斷點(diǎn):打在類(lèi)的成員變量上,當(dāng)變量初始化或變量的值改變時(shí)觸發(fā)斷點(diǎn)。當(dāng)然也可以配合其他用法設(shè)置過(guò)濾。

方法斷點(diǎn):打在一個(gè)函數(shù)的首行,進(jìn)行函數(shù)級(jí)別的調(diào)試,更可以打在JDK的源碼里,查看函數(shù)調(diào)用。普通的斷點(diǎn)是不能打在源碼里的。

異常斷點(diǎn):當(dāng)拋出指定異常時(shí)觸發(fā)斷點(diǎn)。AS可以在Breakpoints中點(diǎn)擊左上角 + 號(hào),選擇Java Exception Breakpoints,來(lái)指定一個(gè)異常。

基本操作

 

從左到右依次

  1. 跳到當(dāng)前執(zhí)行的斷點(diǎn)處
  2. Step Over 單步執(zhí)行
  3. Step Into 進(jìn)入正在執(zhí)行的方法(必須是自定義的方法)、
  4. Focus Step Into 可以進(jìn)入源碼
  5. Step Out 跳出正在執(zhí)行的方法
  6. Drop Frame 返回到當(dāng)前方法的調(diào)用處
  7. Run to Cursor 運(yùn)行到光標(biāo)處
  8. Evaluate expression 計(jì)算選中的變量的值

 

從上到下依次為:

  1. 切換debugger模式
  2. 運(yùn)行至下一斷點(diǎn),(從暫停)恢復(fù)程序
  3. 暫停程序
  4. 關(guān)閉調(diào)試
  5. 查看斷點(diǎn)
  6. 隱藏?cái)帱c(diǎn)
  7. 查看線程堆棧

高級(jí)操作和斷點(diǎn)過(guò)濾

點(diǎn)擊上一張圖中的5查看斷點(diǎn)可以打開(kāi)下面的面板,這張面板提供了關(guān)于debug的許多高級(jí)功能:

條件過(guò)濾

 

右擊斷點(diǎn),可以設(shè)置condition。如圖所示,設(shè)置一個(gè)變量mJoinVaule.equals(“222”),點(diǎn)擊Done。當(dāng)在mJoinEt這個(gè)EditText中輸入222時(shí)才會(huì)觸發(fā)這個(gè)斷點(diǎn)。

在BreakPoints面板同樣可以設(shè)置條件斷點(diǎn)。

測(cè)試代碼

下面是一段測(cè)試代碼,用來(lái)測(cè)試后面的功能

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;
  }
}

日志斷點(diǎn)

 

斷點(diǎn)打在上方代碼第27行,選中代碼,同時(shí)設(shè)置Condition和Log evaluation expression,這樣只有person.age==8時(shí)斷點(diǎn)生效,才會(huì)在log打印表達(dá)式。當(dāng)然,也可以值設(shè)置Log表達(dá)式??刂破鬏敵鋈缦聢D,可以看到只有age==8時(shí)才打印了toString().

實(shí)例過(guò)濾

打好斷點(diǎn),并設(shè)置觸發(fā)斷點(diǎn)的實(shí)例

繼續(xù)執(zhí)行程序,當(dāng)設(shè)置的實(shí)例調(diào)用方法時(shí)斷點(diǎn)生效。

類(lèi)過(guò)濾

 

首先設(shè)置Class Filter,內(nèi)容為要過(guò)濾類(lèi)的完整路徑,設(shè)置為只有Man類(lèi)調(diào)用方法斷點(diǎn)生效,下圖age==10,證明確實(shí)是Man類(lèi)調(diào)用的方法。

執(zhí)行次數(shù)斷點(diǎn)

Pass Count和Condition具有相似之處,但Condition用途應(yīng)該更廣泛一些。

設(shè)置變量值

 

調(diào)試過(guò)程中,選中一個(gè)變量右鍵可以可以進(jìn)行Set Value操作,這項(xiàng)強(qiáng)大的功能對(duì)需要不同數(shù)據(jù)進(jìn)行判斷的情況提供了極大地便利。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論