DDMS 的全稱是Dalvik Debug Monitor Service,它為我們提供例如:為測試設(shè)備截屏,針對特定的進(jìn)程查看正在運(yùn)行的線程以及堆信息、Logcat、廣播狀態(tài)信息、模擬電話呼叫、接收SMS、虛擬地理坐標(biāo)等等。
如何啟動 DDMS
DDMS 工具存放在SDK – tools/路徑下,啟動DDMS方法如下:
- 直接雙擊ddms.bat運(yùn)行;
- 在Eclipes調(diào)試程序的過程中啟動DDMS,在Eclipes中的界面如下:
選擇“Other”,界面如下:
雙擊DDMS就可以啟動了。
DDMS對Emulator和外接測試機(jī)有同等效用。如果系統(tǒng)檢測到它們(VM)同時(shí)運(yùn)行,那么DDMS將會默認(rèn)指向 Emulator。以上2種啟動后的操作有些不一樣,建議分別嘗試下。
DDMS 的工作原理
DDMS將搭建起IDE與測試終端(Emulator 或者connected
device)的鏈接,它們應(yīng)用各自獨(dú)立的端口監(jiān)聽調(diào)試器的信息,DDMS可以實(shí)時(shí)監(jiān)測到測試終端的連接情況。當(dāng)有新的測試終端連接后,DDMS將捕捉到
終端的ID,并通過adb建立調(diào)試器,從而實(shí)現(xiàn)發(fā)送指令到測試終端的目的。
DDMS監(jiān)聽第一個(gè)終端App進(jìn)程的端口為8600,APP進(jìn)程將分配8601,如果有更多終端或者更多APP進(jìn)程將按照這個(gè)順序依次類推。DDMS通過8700端口(”base port”)接收所有終端的指令。
下邊通過GUI詳細(xì)了解DDMS的一些功能
Devices
在GUI的左上角可以看到標(biāo)簽為”Devices”的面板,這里可以查看到所有與DDMS連
接的終端的詳細(xì)信息,以及每個(gè)終端正在運(yùn)行的APP進(jìn)程,每個(gè)進(jìn)程最右邊相對應(yīng)的是與調(diào)試器鏈接的端口。因?yàn)锳ndroid是基于Linux內(nèi)核開發(fā)的操
作平臺,同時(shí)也保留了Linux中特有的進(jìn)程ID,它介于進(jìn)程名和端口號之間。
在面板的右上角有一排很重要的按鍵他們分別是Debug the selected process、Update Threads、Update Heap、Stop Process和ScreenShot。
Emulator Control
通過這個(gè)面板的一些功能可以非常容易的使測試終端模擬真實(shí)手機(jī)所具備的一些交互功能,比如:接聽電話,根據(jù)選項(xiàng)模擬各種不同網(wǎng)絡(luò)情況,模擬接受SMS消息和發(fā)送虛擬地址坐標(biāo)用于測試GPS功能等。
Telephony Status: 通過選項(xiàng)模擬語音質(zhì)量以及信號連接模式。
Telephony Actions: 模擬電話接聽和發(fā)送SMS到測試終端。
Location Control: 模擬地理坐標(biāo)或者模擬動態(tài)的路線坐標(biāo)變化并顯示預(yù)設(shè)的地理標(biāo)識,可以通過以下3種方式:
- Manual: 手動為終端發(fā)送二維經(jīng)緯坐標(biāo)。
- GPX: 通過GPX文件導(dǎo)入序列動態(tài)變化地理坐標(biāo),從而模擬行進(jìn)中GPS變化的數(shù)值。
- KML: 通過KML文件導(dǎo)入獨(dú)特的地理標(biāo)識,并以動態(tài)形式根據(jù)變化的地理坐標(biāo)顯示在測試終端。
Threads、Heap、File Exporler
這幾項(xiàng),我們在其他開發(fā)工具中也經(jīng)常使用,就在不此詳細(xì)說明了。通過File Exporler可以查看Android模擬器中的文件,可以很方便的導(dǎo)入/出文件。
Locate、Console
Locate:顯示輸出的調(diào)試信息,詳見Android下如何調(diào)試程序?;
Console:是Android模擬器輸出的信息,加載程序等信息;
使用DDMS模擬發(fā)送短信,操作過程如下:
在Emulator Control"Telephony Actions 中輸入以下內(nèi)容
單擊發(fā)送后,在Android模擬器中打開Messaging,看到下面的短信:
單擊新短信,詳細(xì)查看短信內(nèi)容:
中文顯示為亂碼,在未來的開發(fā)中,我們必須要注意中文字符的問題。
總結(jié)說明
DDMS是我們開發(fā)人員最好的調(diào)試工具,它將是每個(gè)從事Android開發(fā)的人員都不可缺少的。
我的郵箱loyalcloudchen@163.com 歡迎交流