2011-06-02

Android SDK 開發指令工具介紹 ddms

Android Dalvik Debug Monitor Server ( DDMS ) 除錯監控伺服器,提供下列除錯監控功能:

  • 將應用程式在 Dalvik Runtime 執行時發生的錯誤,以 logcat 方式回報給開發人員。
  • 支援畫面擷取功能,可以將錯誤的畫面或訊息擷取下來,以方便後續除錯。
  • 提供一個 port-forwarding 服務,可以將這個除錯工具安裝到實體設備上,也就是說當一般用戶使用這些應用程式時,若是發生錯誤,可以將這些訊息攔截下來,回報給開發人員。
  • 提供設備上執行緒 ( Thread ) 和堆疊 ( Heap ) 的資訊和狀況。
  • 還有無線狀態資訊、撥進來的電話、簡訊訊息、模仿經緯度位置的資料等。

除錯工具 ADB 和除錯監控伺服器 DDMS 是互為表裡的,DDMS 或透過 ADB 銜接到實體或虛擬設備上來進行錯誤監控。

因為 Android 作業系統支援多工執行緒,因此每一個在 Android 作業系統上執行的應用程式都會有獨立的行程,建立自己獨立的 Dalvik VM,對每一個設備上的 VM 都會經由一個獨立的通訊埠 ( port ) 連接到 ddms 除錯監控伺服器,它會監聽除錯訊息。

譬如第一個 VM 進來,DDMS 會使用 port 8600 來監聽這個 VM 的訊息,下一個 VM 就會使用 8601 ,依此類推。因此同時時執多個應用程式時,每一個應用程式所發生的錯誤訊息都會由個別的 DDMS 負責監聽和記錄,不會有混淆。

可以直接使用 Eclipse 開發環境所提供的 DDMS 工具或是執行安裝在 Android SDK 系統目錄下 tools  內的 ddms.bat 檔。

如果你的 Eclipse 右上角沒有看到 DDMS 圖示,可以由選單 Windows -> Open Perspective -> DDMS 找到它並安裝。

除錯監控系統下方的 LogCat 視窗會即時顯示每一個程式透過 Dalvik VM 所傳出的即時訊息,程式是以 pid 行程號碼來表示。LogCat 視窗的右上角有五個按鈕用來選擇分類的訊息功能。

  • V: Verbose 顯示全部訊息
  • D : Debug 顯示除錯訊息
  • I : Info 顯示一般資訊
  • W : Warning 顯示警告訊息
  • E : Error 顯示錯誤訊息

也可以透過下方的 Filter 欄位過濾指定的除錯標籤 tag ,只有符合的除錯標籤的訊息才會顯示出來。

左上方的 Devices 視窗顯示目前 Android 模擬器中正在執行的所有行程名稱、號碼與通訊埠。

在 Devices 視窗下方是 Emulator Contorl 視窗,這個模擬控制視窗提供可以模擬電話狀態 ( Telephone Status ) 、電話行為 ( Telephone Actions ) 和 GPS 位置控制 ( Location control ),GPS 位置控制畫面讓你可以自由輸入位置的經緯度,選項有手動 ( Manual )  、下載 GPX 檔案和下載 Google Earth 產生的 KML 地圖檔案。

File Explorer 視窗會啟動檔案瀏覽器,讓你方便的瀏覽 SD 記憶卡目錄 /sdcard 和 Android 系統內的檔案目錄。File Explorer 視窗的右上方有三個圖示,分別為 adb pull, adb push, adb delete 。

另外 Devices 視窗的最右邊圖示 Device Screen Capture,可以直接擷取畫面用。

而 Android SDK 系統工具內的 DDMS 則是透過 ddms.bat 呼叫執行 ddms 除錯監控系統,在執行 ddms 之前,要記得先啟動模擬器。

沒有留言: