Android_DDMS快速入門

概述
Dalvik調試監視服務(Dalvik Debug Monitor Service,DDMS)是由Android軟件開發包(Software Development Kit,SDK)提供的調試工具。開發人員可以使用DDMS提供的窗口來監視模擬器或真實設備的調試,包括對文件和進程的管理等。它是幾個工具的完美融合:任務管理器(Task Manager)、文件瀏覽器(File Explorer)、模擬控制檯(Emulator console)和日誌控制檯(Logging console)。如果你需要獲取其完整的特性說明,可以查看Adroid SDK提供的DDMS文檔。
獨立或結合Eclipse使用DDMS
如果你使用的是安裝了Android開發工具插件(Android Development Tools Plug-In)的Eclipse集成開發環境(Inregrated Development Environment,IDE),那麼DDMS工具已經緊密地融合到了你的開發環境中。通過DDMS視圖,你可以瀏覽任何一個在開發機上運行的模擬器實例,並且能夠查看通過USB連接的Android設備。
如果你沒有使用Eclipse,那麼DDMS也可以在單獨的進程中運行,它位於/Tools目錄下。在這種情況下,DDMS將運行在自己的進程中。
Tip
在同一時間只允許運行一個DDMS實例。其他運行的DDMS會被忽略。另外,有資料指出DDMS運行在Eclipse視圖中遠比其獨立運行要穩定。
獨立使用DDMS
 在ftp服務器路徑下載文件jdk-1_5_0_21-windows-i586-p.exe,安裝好文件後,java虛擬機的環境就搭好了。然後,再下載ddms0.1.zip,解壓該文件後,運行文件中的ddms.bat 。即可以打開Dalvik調試監視服務程序。
 
該版本的DDMS是經過了一部分漢化的,可以用來調試一下程序。以下是各個功能模塊的詳細說明。請見如下。
熟悉DDMS的關鍵特性
無論你是在Eclipse中使用DDMS,還是單獨使用它,都需要注意以下幾個關鍵特性。
在左上角,你將能夠找到處於運行狀態的模擬器和連接的設備。
文件瀏覽器允許你查看模擬器和設備上的文件(包括應用程序文件、目錄和數據庫),並且可以進行提取或添加。
LogCat窗口能夠讓你監視Android日誌控制檯(LogCat)。在這裏將顯示Log.i()、Log.e()和其他Log方法調用產生的消息。
可以查看每一個進程(堆和線程更新),也可以查看每一個線程,還可以終止進程。你可以觸發進程上的“垃圾回收(garbage collection)”,並隨後查看應用程序所使用的堆。
你可以使用Screem Capture(屏幕捕捉)按鈕來捕捉模擬器和設備上的屏幕畫面。
你隨時可以使用模擬控制檯,比如發送GPS信息、模擬來電或SMS到達等。
某些功能只有在Eclipse DDMS視圖下可用,比如你可以在模擬器或設備的某個進程上單擊,然後點擊那隻綠色的小蟲子圖標( )爲其關聯(attach)一個調試器,這樣就可以在提供了源碼的情況下調試這個進程了。
使用進程
DDMS非常有用的一個特性在於可以同進程打交道。每一個Android應用程序都是用其自己的用戶id運行在操作系統的單獨的VM(虛擬機)中。
通過DDMS左側的面板,你可以查看所在設備上運行的VM實例,每一個均以其包名稱作爲標示。
你可以:
在Eclipse中關聯(attach)並調試應用程序。
監視進程。
監視堆。
終止進程。
強制進行垃圾回收(Garbage Collection,GC)。
向Android應用程序關聯調試器
 雖然大多數情況下你會使用Eclipse調試參數來運行並調試應用程序,但你也可以使用DDMS來選擇任何需要調試的應用程序,並直接關聯和調試它。
 要爲一個進程關聯調試器,需要在Eclipse工作區中打開對應包的源代碼。然後執行以下步驟進行調試。
在模擬器或設備上,確認你想要調試的應用程序處於運行狀態。
在DDMS中,找到這個應用程序的包,並且點擊它使其高亮。
單擊綠色的小蟲圖標( )開始調試。
在必要時切換到Eclipse的調試視圖,像通常一樣進行調試。
監視Android應用程序的線程活動
 你可以使用DDMS來監視沒一個Android應用程序的線程活動。步驟如下:
在模擬器或設備上,確認你想要監視的應用程序處於運行狀態。
在DDMS中,找到應用程序的包,並且點擊它使其高亮。
單擊帶有3個箭頭的小圖標( )以顯示應用程序的線程。它們將出現在Thread標籤的右側。默認情況下,這裏顯示的數據每4s進行一次更新。
在Thread標籤中,你可以選擇某個特定的線程並且按下Refresh按鈕來深入查看這個線程。其中包含的類將會顯示在下方區域。
在Android應用程序中觸發垃圾回收(GC)
 你可以使用DDMS來強制進行垃圾回收(Garbage Collection,GC),步驟如下:
在模擬器或設備上,確認你想要進行GC的應用程序處於運行狀態。
在DDMS中,找到這個應用程序的包,並且點擊它使其高亮。
展開下拉菜單(倒三角 )並且選擇Cause GC。也可以在Heap標籤中執行這一操作。
監視Adroid應用程序的堆活動
 你可以使用DDMS來監視每一個Android應用程序的堆統計數據。在每次GC後堆的統計數據將進行更新。步驟如下:
在模擬器或設備上,確認你想要監視的應用程序處於運行狀態。
在DDMS中,找到這個應用程序的包,並且點擊它使其高亮。
單擊綠色的圓筒圖標( )以顯示該應用程序的堆信息。統計數據將出現在Heap標籤的右側。這一數據將在每次GC後予以更新。你也可以通過單擊Heap標籤中的Cause GC按鈕來觸發一個GC操作。
在Heap標籤中,你可以選擇特定類型的對象。它的使用情況圖表將顯示在Heap標籤的底部。
終止Android進程
 你可以使用DDMS來終止一個Andriod應用程序,步驟如下:
在模擬器或者設備上,確認你想要終止的應用程序處於運行狀態。
在DDMS中,找到這個應用程序包,並且點擊它使其高亮。
點擊帶有紅色停止符號的圖標( )終止該進程。
使用文件瀏覽器
你可以使用DDMS來查看並操作模擬器或設備上的Android文件系統。
表1 給出了Adroid文件系統中的某些重要區域。
 
目錄 說明   
/data/data/<packagename>/ 應用程序頂層目錄
例如:/data/data/com.androidbook.pettracker   
/data/data/<packagename>/shared_prefs/ 應用程序共享首先項目錄
命名的首選項以XML文件的方式進行存儲   
/data/data/<packagename>/files/ 應用程序文件目錄   
/data/data/<packagename>/cache/ 應用程序緩存目錄   
/data/data/<packagename>/databases/ 應用程序數據庫目錄
例如:
/data/data/com.androidbook.pettracker/databases/test.db   
/sdcard/download/ 用於存儲模擬器上的瀏覽器下載圖像   
/data/app/ 用於存儲第三方Android應用程序的APK文件 

要瀏覽Android文件系統,步驟如下:
在DDMS中,選擇你想要瀏覽的模擬器或設備。
切換到File Explorer標籤,你將看到底層顯示的目錄。
瀏覽某個文件夾或文件。
從模擬器或設備上拷貝文件
 你可以使用文件夾瀏覽器將模擬器或設備上的文件或文件夾拷貝到計算機上,步驟如下:
使用文件夾瀏覽器導航至需要拷貝的文件或文件夾,點擊使其高亮。
在文件瀏覽器的右上角,點擊Disk圖標( )提取設備中的文件。另外,你可以展開圖標旁邊的下拉菜單( )並從中選擇Pull File來執行這一操作。
鍵入計算機上用於存放這一文件或文件夾的路徑,然後點擊Save。
向模擬器或設備拷貝文件
 你可以使用文件夾瀏覽器將計算機上的文件拷貝到模擬器或設備的文件系統中,步驟如下:
使用文件夾瀏覽器導航至需要拷貝文件的文件夾,點擊使其高亮。
在文件夾瀏覽器的右上角,點擊Phone圖標( )向設備中添加文件。另外,你可以展開圖標旁邊的下拉菜單( )並從中選擇Push File來執行這一操作。
選擇計算機上待拷貝的文件,然後點擊Open。
Tip
 文件夾瀏覽器還支持鼠標拖拽。這也是唯一可以向Andriod文件系統中拷貝文件夾的操作。不過,並不推薦向Android文件系統中拷貝文件夾,因爲並沒有用於刪除它們的選項。但如果你擁有許可權限,則需要使用程序來刪除這些文件夾。總之,你可以從計算機上將一個文件或文件夾拖到文件瀏覽器中,並在適當的位置釋放它。
刪除模擬器或設備上的文件夾
 你可以使用文件瀏覽器來刪除模擬器或設備上的文件(但不能刪除文件夾),步驟如下。
使用文件瀏覽器導航至需要刪除的文件,點擊使其高亮。
在文件瀏覽器的右上角,點擊紅色的減號圖標( )來刪除文件。
警示:執行這一操作時你需要特別小心,因爲沒有任何確認提示,文件將立即刪除並且沒有辦法恢復。
使用模擬器控制
你可以通過DDMS的“Emulator Control (模擬控制) ”標籤來操作模擬器實例,在此之前必須選中需要操作的模擬器。可以針對下面的目的使用模擬器控制標籤:
修改通話(telephony)狀態;
模擬語音通話呼入;
模擬SMS接收;
發送位置座標。
模擬語音來電
 要使用模擬器控制標籤來模擬語音呼入,執行以下步驟:
在DDMS中,選擇想要撥打的模擬器。
切換到Emulator標籤,你將使用Telephony Actions。
輸入模擬呼入的電話號碼,它可以包括任意數字、“+”和“#”。
選擇Voice單選項。
點擊Call按鈕。
模擬器將會接收到呼入並響鈴。接聽電話。
模擬器可以像正常情況一樣掛斷電話,也可以使用DDMS中的Hang Up按鈕終止通話。
模擬短消息接收
 DDMS提供了最穩定的向模擬器發送SMS的方法。其過程同模擬語音來電類似。要使用模擬器控制標籤模擬發送SMS,步驟如下:
在DDMS中,選擇需要接收SMS的模擬器。
切換到Emulator標籤,你將使用Telephony Actions。
輸入模擬發送電話號碼,它可以包括任意數字、“+”和“#”。
選擇SMS單選項。
鍵入SMS消息的正文。
單擊Send按鈕。
模擬器將會接收到SMS並顯示通知。
發送位置座標
 向模擬器發送GPS座標,只需要在模擬器控制標籤中簡單地輸入GPS座標,點擊Send,然後就可以使用模擬器上的Maps應用程序接收當前位置了。
使用應用程序日誌
DDMS中融合了LogCat工具,它爲DDMS用戶界面中底部的一個標籤。你可以通過點擊內含字母的圓圈圖標( )來控制信息的顯示量。默認的 代表Verbose(即顯示所有信息),其餘可選圖標包括 (Debug,調試)、 (Infornation,信息)、 (Warning,警告)和 (Error,錯誤)。
你還可以創建自定義過濾標籤以顯示僅與調試標記(Debug Tag)相關的LogCat信息。可以通過“+”按鈕來添加一個過濾標籤以顯示僅與特定標記匹配的日誌信息。對你的應用程序創建專有的調試標記將非常有用,這樣,你就可以過濾LogCat,以保證只顯示與你的應用程序相關的日誌活動。例如,在你的應用程序中有如下代碼:
public static final String DEBUG_TAG=”MyFirstAppLogging”;
Log.i(DEBUG_TAG,”This is info about MyFirstAdroidApp.”);
那麼,你可以使用 按鈕創建LogCat過濾器。將過濾器命名爲“Logging My App”並且設置標記爲“MyFirstAppLogging”。這樣,你就擁有了一個名爲“Logging My App”的LogCat標籤,它將只顯示帶有你的應用程序標籤的日誌信息。
在模擬器或者目標設備上截屏
你可以在DDMS中截取模擬器或設備的屏幕顯示。設備屏幕對於調試來講非常有用,它使DDMS工具特別適合QA人員,並且受到開發人員的歡迎。要進行屏幕截取,可以執行以下步驟:
在DDMS中,選擇需要截屏的模擬器或設備。
在模擬器或設備上,確認屏幕顯示的正是你想要截取的畫面。
點擊帶有方形彩色圖案的圖標( )進行截屏。此時將啓動一個截屏窗口。
在截屏窗口中,單擊Save按鈕保存屏幕截圖。
推薦的git資料
如果需要獲取其完整的特性說明,可以查看Adroid SDK提供的DDMS文檔:
 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章