Android Studio調試

有人說Android 的調試是最坑的,那我只能說是你不會用而已,我可以說Android Studio的調試是我見過最棒的。


好了開始寫一個簡單的調試程序,我們先來一個for循環

?
1
2
3
4
5
6
7
8
<code class="language-java hljs ">for (int i = 0; i < 10; i++) {
//獲取當前i的值
    int selector = i;
    //打log查看當前i的值(此步多餘,實際開發請忽略)
    Logger.e("for當前的i的值:" + i);
    //調用方法
    stepNext(i);
}</code>

設置斷點(點擊紅點位置添加或取消斷點)

這裏寫圖片描述

點擊debug模式運行<喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjwvYmxvY2txdW90ZT4NCjxwPjxpbWcgYWx0PQ=="這裏寫圖片描述" src="/uploadfile/Collfiles/20150616/20150616083835148.png" title="\" />

查看調試面板

這裏寫圖片描述

一、簡單調試


1. step over:一步步往下走

這裏寫圖片描述

當前程序運行的位置,我們看到i的值已經在程序代碼中展示出來了,黃色的代碼處,這個是AS的功能,對於我們調試來講,這簡直是非常大的福利了。

這裏寫圖片描述

點擊單步調試按鈕或按快捷鍵F8,看看效果。這裏我們看到selector變量的值已經出來了selector:0,我們在看看黃色位置i的當前值是0。

這裏寫圖片描述

這時我們繼續F8,我們切換到logcat查看日誌,我打印出的i的值是0,

這裏寫圖片描述

我們在切回道Debugger面板,可以看到Variables顯示面板中,有i的值是0,selector的值是0。以及我們可以看到Frames控制面板中可以顯示出當前程序的位置在:onCreate():28,第28行。

這裏寫圖片描述

2. step into:看到方法往裏走

比如我們的for循環當中調用了一個stepNext(int i)方法,當我們走到這裏想看看這個方法裏面的運行過程的時候我們可以這樣,當走到這個方法的時候我們可以按下F7,或者如下圖的圖標。

這裏寫圖片描述

這時就走到了stepNext方法當中。

這裏寫圖片描述

在這裏打印了一個log,我們再按一下F8我們來看看Logcat, 這裏我打印的log都是爲了做教程用,調試我們就不用打log了直接看顯示面板就OK了

這裏寫圖片描述

3. force step into :所有方法看完整

這個是可以看到你所調用的所有方法的實現會讓你跟着它走一遍,研究源碼使用非常方便

這裏寫圖片描述

4. step out :有斷點下一個,走完斷點繼續走

這裏如果我們的一個流程當中,包括調用的方法,如果有斷點走到下一個斷點,如果沒有斷點,而是在一個調用的方法當中,會跳出這個方法,繼續走。

這裏寫圖片描述

這裏理解比較難,舉個例子:
這裏寫圖片描述

(上圖)我現在程序位置在第一個斷點位置(24行),我調用的stepNext方法中也有一個斷點,此時我按下step out按鈕會走到stepNext中的斷點處(39行)我此時如果再按一下step out 會走到stepNext方法的調用出的下一個可執行代碼(30行)

這裏寫圖片描述

(上圖)如果我現在程序位置在stepNext的方法中,如果我此時按下step out,會走到stepNext方法的調用出的下一個可執行代碼(30行)

5. run to Cursor :下個斷點我們見

這裏的意思就是說,會很快執行到下一個斷點的位置,而且可以靜如任何調用的方法

這裏寫圖片描述

二、高級調試


1. 跨斷點調試

如果我們設置了多個斷點,現在我們需要直接跳轉到下一個斷點,那麼直接點擊下圖就可以了

這裏寫圖片描述

2.觀察變量

如果我們想觀察1個或者幾個變量的值的變化,如果我們在Variables顯示面版中觀察如果我這裏有太多太多的自定義變量和系統變量了,那麼就難觀察了,我們可以做如下操作:
點擊Watches,點擊+號,然後輸入變量的名稱回車就OK了,而且會有歷史記錄哦

這裏寫圖片描述

如果變量名比較長我們可以這樣:
選擇[Variables]中的變量名然後點擊[右鍵],選擇[Add to Watches],然後Watches面板中就有了

這裏寫圖片描述

3.設置變量的值

在程序中有很多的條件語句和循環語句,調試也是比較耗時的,我們可以通過快速設置變量的值來加快調試速度,我們可以做如下操作:
選擇[Variables]中的變量名然後點擊[右鍵],選擇[Set Value..]或者選擇之後直接F2(如上圖)(下圖爲Variables面板)

這裏寫圖片描述

4.查看斷點

這裏寫圖片描述

點擊之後我們可以看到所有的斷點,以及位置代碼,也可以設置一些屬性
這裏寫圖片描述

5.停止調試

要注意的是這裏的[停止調試]不是讓程序停止,而是跳過所有調試
這裏寫圖片描述

到這裏我們的Android Studio的斷點調試和高級調試就完畢了。


有興趣的童鞋可以關注我的Blog,我的專欄會持續更新Android Studio 教程,以及2015 I/O大會上的NDK的配置和編譯,我也全部會分享給大家。
並且我收到了CSND 的講師邀請,後期我會把這些Android Studio的使用教程錄製成視頻發佈在CSDN學院。


1
2
3
4
5
6
7
8
9
10
11
12
13
<code class="language-java hljs ">/**
 * --------------
 * 歡迎轉載   |  轉載請註明
 * --------------
 * 如果對你有幫助,請點擊|頂|
 * --------------
 * 請保持謙遜 | 你會走的更遠
 * --------------
 * @author zsl
 */
</code>

Debug模式啓動

  1. 1

    啓動Android Studio打開一個demo程序,如圖:

    怎樣在Android Studio中調試
  2. 2

    點擊工具欄的調試按鈕

    或者

    點擊菜單“Run”-“Debug...”,如圖:

    怎樣在Android Studio中調試
    怎樣在Android Studio中調試
  3. 3

    在”Choose Device“對話框中,選擇設備,如圖:

    怎樣在Android Studio中調試
  4. 4

    設置好斷點,然後讓應用程序斷下來。(注:設置斷點的時機可以隨便選,只要符合自己的需求就可以了),如圖:

    怎樣在Android Studio中調試
    END

Attach方式調試

  1. 1

    點擊菜單”Run“-”Attach debuger to Android process“,如圖:

    怎樣在Android Studio中調試
  2. 2

    在”Choose Process“對話框中,選擇需要attach的進程,如圖:

    怎樣在Android Studio中調試
  3. 3

    設置好斷點,然後讓應用程序斷下來。

    怎樣在Android Studio中調試


?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章