來自:http://www.moandroid.com/?p=638
   

DDMS 的全稱是Dalvik Debug Monitor Service,它為我們提供例如:為測試設備截屏,針對特定的進程查看正在運行的線程以及堆信息、Logcat、廣播狀態信息、模擬電話呼叫、接收SMS、虛擬地理坐標等等。

如何啟動 DDMS

DDMS 工具存放在SDK – tools/路徑下,啟動DDMS方法如下:

  1. 直接雙擊ddms.bat運行;
  2. 在Eclipes調試程序的過程中啟動DDMS,在Eclipes中的界面如下:
    Eclipes-DDMS
    選擇“Other”,界面如下:
    Open-Perspective
    雙擊DDMS就可以啟動了。

DDMS對Emulator和外接測試機有同等效用。如果系統檢測到它們(VM)同時運行,那么DDMS將會默認指向 Emulator。以上2種啟動后的操作有些不一樣,建議分別嘗試下。

DDMS 的工作原理

DDMS將搭建起IDE與測試終端(Emulator 或者connected device)的鏈接,它們應用各自獨立的端口監聽調試器的信息,DDMS可以實時監測到測試終端的連接情況。當有新的測試終端連接后,DDMS將捕捉到 終端的ID,并通過adb建立調試器,從而實現發送指令到測試終端的目的。
DDMS-Device
DDMS監聽第一個終端App進程的端口為8600,APP進程將分配8601,如果有更多終端或者更多APP進程將按照這個順序依次類推。DDMS通過8700端口(”base port”)接收所有終端的指令。

下邊通過GUI詳細了解DDMS的一些功能

Devices

在GUI的左上角可以看到標簽為”Devices”的面板,這里可以查看到所有與DDMS連 接的終端的詳細信息,以及每個終端正在運行的APP進程,每個進程最右邊相對應的是與調試器鏈接的端口。因為Android是基于Linux內核開發的操 作平臺,同時也保留了Linux中特有的進程ID,它介于進程名和端口號之間。
DDMS-Device
在面板的右上角有一排很重要的按鍵他們分別是Debug the selected process、Update Threads、Update Heap、Stop Process和ScreenShot。

Emulator Control

通過這個面板的一些功能可以非常容易的使測試終端模擬真實手機所具備的一些交互功能,比如:接聽電話,根據選項模擬各種不同網絡情況,模擬接受SMS消息和發送虛擬地址坐標用于測試GPS功能等。
DDMS-Control
Telephony Status: 通過選項模擬語音質量以及信號連接模式。
Telephony Actions: 模擬電話接聽和發送SMS到測試終端。
Location Control: 模擬地理坐標或者模擬動態的路線坐標變化并顯示預設的地理標識,可以通過以下3種方式:

  • Manual: 手動為終端發送二維經緯坐標。
  • GPX: 通過GPX文件導入序列動態變化地理坐標,從而模擬行進中GPS變化的數值。
  • KML: 通過KML文件導入獨特的地理標識,并以動態形式根據變化的地理坐標顯示在測試終端。

Threads、Heap、File Exporler

DDMS-THF
這幾項,我們在其他開發工具中也經常使用,就在不此詳細說明了。通過File Exporler可以查看Android模擬器中的文件,可以很方便的導入/出文件。

Locate、Console

DDMS-LC
Locate:顯示輸出的調試信息,詳見Android下如何調試程序?
Console:是Android模擬器輸出的信息,加載程序等信息;

使用DDMS模擬發送短信,操作過程如下:

在Emulator Control"Telephony Actions 中輸入以下內容
DDMS-SMS
單擊發送后,在Android模擬器中打開Messaging,看到下面的短信:
DDMS-Message
單擊新短信,詳細查看短信內容:
AVD-Message
中文顯示為亂碼,在未來的開發中,我們必須要注意中文字符的問題。

總結說明

DDMS是我們開發人員最好的調試工具,它將是每個從事Android開發的人員都不可缺少的。