在這個章節要來說明如何利用工具來進行程式的除錯,在Android SDK有大量的工具來幫助程式進行除錯。
在這個章節要來說明如何利用工具來進行程式的除錯,在Android SDK有大量的工具來幫助程式進行除錯,目前有下述工具可以進行程式上的除錯。
A.DDMS工具-圖形介面程式支援埠位傳送(如此要在IDE開發工具設定程式中斷點),模擬器的螢幕擷取,執行緒與堆疊資訊,以及其它功能,也可以執行Logcat取得Log資訊,有關此工具在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/ddms.html。
B.Logcat工具–轉儲系統訊息log,訊息包含模擬器發生錯誤時的堆疊追蹤,和Log訊息,有關此工具在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/ddms.html#logcat。
產生出來的訊息,如下述訊範例:
I/MemoryDealer( 763): MemoryDealer (this=0x54bda0): Creating 2621440
bytes heap at 0x438db000
I/Logger( 1858): getView() requesting item number 0
I/Logger( 1858): getView() requesting item number 1
I/Logger( 1858): getView() requesting item number 2
D/ActivityManager( 763): Stopping: HistoryRecord{409dbb20
com.google.android.home.AllApps}
C.Android的Log類別–在Android SDK有提供一個log類別可以在模擬器上將Log訊息輸出到檔案,如果執行Logcat工具,那可以及時讀取訊息。在撰寫程式碼加入少量的log方法叫用:
使用Log類別,要依訊息需求狀況來使用,可以應用的方式如下所述:
Log.v() (verbose等級)
Log.d() (debug等級)
Log.i() (information等級)
Log.w() (warning等級)
Log.e() (error等級)
等方法,如何使用此類別,如下述範例:
Log.i("MyActivity", "MyClass.getView() — Requesting item number " +position)
有關此工具在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/android/util/Log.html。
D.TraceView工具–可以使用TraceView這個圖形化介面讀取器來讀取Android所儲存檔案的log檔案,有關此工具在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/traceview.html。
E.在Eclipse使用ADT外掛–Eclipse的ADT外掛包含一些整合好的除錯工具(例如:ADB,DDMS,Logcat輸出與其它功能)。下述為在ADT外掛時,如何簡單的進行除錯:
步驟一:在專案的程式碼列的左邊設定程式中斷點(Toggle Breakpoint),先選取一段程式碼,在程式碼列的左邊的地方,按下滑鼠右鍵,就會出現選單,選取「Toggle Breakpoint」選項,那在程式碼列的左邊的地方就會出現一個中斷點的符號,如圖47所示。
圖47
步驟二:下一步,選取選單「Run」中的選取「Debug」選項,來除錯應用程式。如圖48所示。
圖48
步驟三:在Debug模式下,進行除錯時,就會出現整合時的DDMS視窗及LogCat視窗,如圖49、圖50所示。
圖49
圖50
F.除錯與測試裝置設定-Android SDK也有提供多種重要訊息的設定,例如:中央處理器使用率與顯示頻率,可以參考下一章節的說明。