編輯:關於Android編程
1. 進入debug
- 點擊圖中紅色圓圈圈起的左邊綠色按鈕,運行app的debug模式,快捷鍵Shift+F9
- 點擊圖中紅色圓圈圈起的右邊按鈕,可以選擇正在運行的進程attach debugger
1. 打斷點:鼠標點擊編輯框左側,出現紅色圓點

這張圖可以看出斷點也有行斷點、方法斷點、字段斷點、異常斷點。其實打斷點仔細觀察也可以發現它們的標識圖片是不同的,就是上圖中每行前面的那四種不同的小紅點。
行斷點: 當執行到此行是停止執行,等待調試。 屬性斷點:打在類的成員變量上,當變量初始化或變量的值改變時觸發斷點。當然也可以配合其他用法設置過濾。
方法斷點:打在一個函數的首行,進行函數級別的調試,更可以打在JDK的源碼裡,查看函數調用。普通的斷點是不能打在源碼裡的。
異常斷點:當拋出指定異常時觸發斷點。AS可以在Breakpoints中點擊左上角 + 號,選擇Java Exception Breakpoints,來指定一個異常。

從左到右依次
跳到當前執行的斷點處、 Step Over 單步執行、 Step Into 進入正在執行的方法(必須是自定義的方法)、 Focus Step Into 可以進入源碼 Step Out 跳出正在執行的方法 Drop Frame 返回到當前方法的調用處 Run to Cursor 運行到光標處 Evaluate expression 計算選中的變量的值
從上到下依次為:
切換debugger模式 運行至下一斷點,(從暫停)恢復程序 暫停程序 關閉調試 查看斷點 隱藏斷點 查看線程堆棧點擊上一張圖中的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操作,這項強大的功能對需要不同數據進行判斷的情況提供了極大地便利。
Android中Activity切換時共享視圖元素的切換動畫(4.x兼容方案)
方案一:PreLollipopTransition首先在 build.gradle 配置文件添加這個庫依賴dependencies { compile
Android SurfaceView實戰 打造抽獎轉盤
1、概述 今天給大家帶來SurfaceView的一個實戰案例,話說自定義View也是各種寫,一直沒有寫過SurfaceView,這個玩意是什麼東西?什麼時候
Android基礎整合項目之節日群發助手(一)
本節引言: Android入門系列已經寫了大半了,學習了這麼多理論知識,不練下手怎麼行呢? 在實際的開發中我們會遇到更多的問題,
Android 從具體實例分析Bitmap使用時候內存注意點
根據Android官方提供給我們的Sample例子實實在在的分析Bitmap使用時候的注意點。在分析Bitmap的使用之前先簡單的了解下BitmapFactory 類,B