2008年11月4日 星期二

深入淺出Android程式設計(20)-有關在除錯時的提示



在這個章節要來說明有關在進行應用程式除錯時的有那些有用的提示。如下文所述:

A.Quick stack dump(快速堆疊轉儲)
如何從模擬器中取得堆疊轉儲的資訊,開發人員可以在進入Dos視窗,在Android SDK安裝目錄底下的tools目錄底下執行「adb shell」登錄,用「ps」找到應用程式的行程,然後下「kill-3」,則堆疊追蹤會出現在log檔案,有關此工具在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/adb.html#shellcommands

B.在模擬器螢幕顯示有用資訊
在模擬器裝置可以顯示有用的資訊,例如:顯示CPU使用率或是顯示螢幕更新,開啟或關閉這些開發設定,請參考之前的章節「如何除錯及測試模擬裝置的設定」。

C.取得模擬器系統狀態資訊(dumstate)
開發人員可從Dalvik Debug Monitor Service 工具存取系統資訊,請參考adb主題頁的dumpsys and dumpstate,有關此工具在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/adb.html#dumpsys
上述網址,所述的動作,主要是啟動Dalvik Debug Monitor Server (DDMS)工具,在Android SDK安裝目錄底下的tools目錄的ddms.bat批次檔。
進入DDMS視窗後,先選取「Device」選單,就會出現下拉選單,再點選「Dump device state…」選項,開發人員可以取得模擬器系統狀態資訊,如圖57所示。

D. 取得模擬器程式狀態資訊(dumsys)
開發人員可從Dalvik Debug Monitor Service 工具存取程式資訊,請參考adb主題頁的dumpsys and dumpstate,有關此工具在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/adb.html#dumpsys
上述網址,所述的動作,主要是啟動Dalvik Debug Monitor Server (DDMS)工具,在Android SDK安裝目錄底下的tools目錄的ddms.bat批次檔。
進入DDMS視窗後,先選取「Device」選單,就會出現下拉選單,再點選「Run logcat…」選項,開發人員可以取得模擬器系統狀態資訊,如圖57所示。

E.Getting wireless connectivity information(取得無線連接資訊):
首先,啟動Dalvik Debug Monitor Server (DDMS)工具,在Android SDK安裝目錄底下的tools目錄的ddms.bat批次檔。
進入DDMS視窗後,先選取「Device」選單,就會出現下拉選單,再點選「Dump radio state」選項,開發人員可以取得無線連接資訊,如圖57所示。



圖57

F.記錄追蹤資料
在Activity內叫用android.os.Debug.startMethodTracing()記錄追蹤資料,請參考Running the Traceview Debugging Program,有關此工具在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/traceview.html

G.記錄無線資料
原則上系統不會記錄無線連接的資料,但是開發人員可以在Dos視窗使用以下命令來記錄無線資料:
adb shell
logcat -b radio

H.執行adb
Android SDK提供一款工具叫做adb,提供不同功能,包含了模擬器上的檔案同步與移動、傳送埠與在模擬器上執行一個UNIX Shell,請參考Using adb,有關此工具在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/adb.html

I.捕捉模擬器螢幕
首先,啟動Dalvik Debug Monitor Server (DDMS)工具,在Android SDK安裝目錄底下的tools目錄的ddms.bat批次檔。
進入DDMS視窗後,先選取「Device」選單,就會出現下拉選單,再點選「Screen capture…」選項,就可以捕捉模擬器螢幕的資訊,如圖58所示。



圖58

J.使用除錯輔助類別
Android SDK有提供二種除錯輔助類別,來協助開發人員進行除錯工作,可以讓開發人員,事半功倍。
例如:util.Log類別,有關此類別在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/android/util/Log.html
以及Debug類別,有關此類別在Android SDK 如何運作,請參考下述網址:http://code.google.com/android/reference/android/os/Debug.html,供您使用

1 則留言:

Hugh 提到...

前天開始摸Android,剛好看到你的文章,讓我受益頗多,加油!