本文原創首發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.4 Log.v()spa
1.5 Log.w().net
零、前言
開發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 中止調試
在工具欄中單擊中止按鈕,即紅色的正方形:,會中止程序的調試。須要注意的是,該操做不回中止程序的運行,而是會跳過全部的調試。