學了一年的Android,還不會調試?你白學了!

本文原創首發CSDN,本文連接 https://blog.csdn.net/qq_41464123/article/details/107141182,做者博客https://blog.csdn.net/qq_41464123 ,轉載請帶上本連接,尤爲是腳本之家、碼神島等平臺,謝謝配合。java


目錄android

零、前言程序員

1、 使用 Log 類來輸出日誌信息eclipse

1.1 Log.i()編輯器

1.2 Log.e()ide

1.3 Log.d()工具

1.4 Log.v()spa

1.5 Log.w().net

2、 Android程序調試線程

2.1 加斷點

2.2 簡單調試

2.3 單步跳過

2.4 單步跳入

2.5 跳到下一斷點

2.6 中止調試


零、前言

開發Android程序時,不只要注意程序代碼的準確性和合理性,還要處理程序中可能出現的異常。Android SDK爲咱們提供了Log類來獲取程序的日誌信息,也提供了LogCat管理器,用來查看程序運行的日誌信息及錯誤日誌。本文將詳細的講解如何在android studio中,對Android程序進行調試以及DDMS工具的使用

 

 

1、 使用 Log 類來輸出日誌信息

Android SDK中提供了Log類來獲取程序運行時的日誌信息,該類在android.util包中,它繼承了java.lang.Object類。Log類提供了一些方法,用來輸出日誌信息,經常使用的是如下幾個:

方法 解析
Log.i() 輸出INFO程序日誌信息
Log.e() 輸出ERROR錯誤日誌信息
Log.d() 輸出DEBUG調試日誌信息
Log.v() 輸出VERBOSE冗餘日誌信息
Log.w() 輸出WARN警告日誌信息

上表中列出的Log類的這些方法都有多種重載形式,下面將介紹常常用到的重載形式:


1.1 Log.i()

Log.i()主要用來輸出INFO程序日誌信息。程序員常常用到的重載形式語法:

public static int i (String key,String value)

key:String字符串,用來爲日誌信息指定標籤,程序員常常將他命名爲該類的名稱,加以區分。

value:String字符串,用來表示要輸出的字符串信息。

INFO程序日誌在DDMS的LogCat面板中,通常使用綠色的文字來表示。


1.2 Log.e()

Log.e()方法主要用來輸出ERROR錯誤日誌信息。程序員常常用到的重載形式:

public static int e (String key,String value)

key:String字符串,用來爲日誌信息指定標籤,程序員常常將他命名爲出現錯誤的類名稱,加以區分。

value:String字符串,用來表示要輸出的字符串信息。

ERROR錯誤日誌在DDMS的LogCat面板中,通常使用紅色的文字來表示。


1.3 Log.d()

Log.d()方法主要用來輸出DEBUG調試日誌信息。程序員常常用到的重載形式:

public static int d (String key,String value)

key:String字符串,用來爲日誌信息指定標籤,程序員常常將他命名爲可能出現DEBUG的類名稱,加以區分。

value:String字符串,用來表示要輸出的字符串信息。

DEBUG調試日誌在DDMS的LogCat面板中,通常使用藍色的文字來表示。


1.4 Log.v()

Log.v()方法主要用來輸出VERBOSE冗餘日誌信息。程序員常常用到的重載形式:

public static int v (String key,String value)

key:String字符串,用來爲日誌信息指定標籤,程序員常常將他命名爲可能出現冗餘的類名稱,加以區分。

value:String字符串,用來表示要輸出的字符串信息。

VERBOSE冗餘日誌在DDMS的LogCat面板中,通常使用黑色的文字來表示。


1.5 Log.w()

Log.w()方法主要用來輸出WARN警告日誌信息。程序員常常用到的重載形式:

public static int w (String key,String value)

key:String字符串,用來爲日誌信息指定標籤,程序員常常將他命名爲可能出現警告的類名稱。

value:String字符串,用來表示要輸出的字符串信息。

WARN警告日誌在DDMS的LogCat面板中,通常使用橘黃色的文字來表示。


咱們能夠在MainActivity.java中輸入如下代碼

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Log.e("zwz01","錯誤信息");
        Log.w("zwz02","警告信息");
        Log.i("zwz03","普通訊息");
        Log.d("zwz04","調試信息");
        Log.v("zwz05","冗餘信息");

    }
}

 打開DDMS工具,單機LogCat日誌面板,能夠在面板內看到以下信息。

 

2、 Android程序調試

 

在程序開發過程當中,程序員會不斷體會到程序調試的重要性。爲了驗證Android的運行情況是否和本身想的同樣,程序員通常都會在某個方法調用開始和結束的位置,依次使用Log.i()方法輸出必定的信息,並根據這些輸出信息來判斷程序的執行情況。固然這是一種很是過期的程序調試方法,並且會常常形成程序代碼混亂,下面來介紹使用Android studio自帶的調試工具來調試Android應用程序的方法。


本文原創首發CSDN,本文連接 https://blog.csdn.net/qq_41464123/article/details/107141182​​​​​​​,做者博客https://blog.csdn.net/qq_41464123 ,轉載請帶上本連接,尤爲是腳本之家、碼神島等平臺,謝謝配合。


2.1 加斷點

下面將詳細講解使用 Android Studio 內置的Android調試器調試Android程序的方法,使用該調試器能夠設置程序的斷點、實現程序的但不執行、在調試過程當中查看變量和表達式的值等調試操做,這樣能夠避免上述所說的使用Log.i()方法輸出調試信息。

使用 Android Studio 的Android調試器須要先設置程序斷點,而後使用單步調試分別執行程序代碼的每一行。

設置斷點是程序調試中必不可少的有效手段,和java代碼在eclipse中調試同樣,Android調試器在每次遇到程序斷點的時候,都會將當前線程掛起,也就是說暫停當前程序的運行。在 Android Studio中,能夠在Android編輯器中單擊顯示代碼行號的位置,就能夠添加或者刪除當前行的斷點,以下圖所示:

 

2.2 簡單調試

爲程序設置斷點後,單擊工具欄的Debug按鈕,或者右擊代碼區域,選擇Debug MainActivity.java,將在Android Studio 的底部顯示調試面板,查看到當前相關變量的值,以下圖所示:

 

 

在調試面板中,能夠經過工具欄上的按鈕執行相應的調試操做,好比單步跳過、單步跳入等等。經常使用的調試操做以下:

2.3 單步跳過

 

在工具欄中單擊 單步跳過,或者按下F8,將執行單步跳過操做,即運行單獨的一行程序代碼,可是不進入調用方法的內部,而後跳到下一個可執行點。

若是運行a + b程序,代碼以下:

public class MainActivity extends AppCompatActivity {

    public static int add (int x,int y){
        return x + y;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        int a = add(1,2);

        int b = add(-1,-2);
    }
}

在int a = add(1,2);處加上斷點

 

而後按下F8,咱們能夠看到,程序直接運行到第20行,而沒有進入add()方法。

 

 

若是不斷地執行單步跳過操做,會每次執行一行的程序代碼,直到程序結束或者等待用戶操做(如輸入)。

 

2.4 單步跳入

在工具欄點擊 單步跳入 , 或者按下F7鍵,就會跳入到調用方法或對象內部單步執行程序

仍是剛剛的 a + b 的例子,在第18行斷點處,按下F7,則會進入到add()方法的內部。

 

2.5 跳到下一斷點

在工具欄中單擊 跳到下一斷點 按鈕,或者按下F9,會繼續向下執行,直到下一個斷點的位置。若是程序中沒有斷點或者拋出了異常,將直接運行到程序結束。

 

2.6 中止調試

在工具欄中單擊中止按鈕,即紅色的正方形:,會中止程序的調試。須要注意的是,該操做不回中止程序的運行,而是會跳過全部的調試。

相關文章
相關標籤/搜索