DDMS
Android SDK單獨提供了DDMS的命令,我們在[android-sdk-home]/tools目錄下輸入ddms,也會彈出獨立的DDMS窗口。這里我們還是直接使用Eclipse集成的DDMS。
DDMS 的全稱是Dalvik Debug Monitor Service,它為我們提供例如:為測試設備截屏,針對特定的進程查看正在運行的線程以及堆信息、Logcat、廣播狀態信息、模擬電話呼叫、接收SMS、虛擬地理坐標等等。
在Eclipse的右上角,可以選擇Perspective。我們選擇DDMS,Eclipse進入如下布局tools-007:
在左上角有Devices的頁簽,我們選擇當前的虛擬機:emulator-5554,顯示當前虛擬機的各項內容。在Devices頁簽的右邊,一排快捷方式里面,有個很重要的按鈕“Screen Capture”,顧名思義就是截圖,可以把當前虛擬機的圖片給截下來。如果連接的不是虛擬機,而是真機,也能把手機的當前屏幕截圖下來。如下圖:tools-008
這個不多說,知道有這么個有用的工具就行。
Devices頁簽的右邊的子窗口,有三個頁簽:Threads,Heap,File Explorer
也是顧名思義,分別可以查看手機的線程情況,內存堆棧情況,以及文件情況。
選擇File Explorer頁簽的時候,右邊有兩個很有用的按鈕,分別是上傳文件和下載文件。這個功能單獨用ADB也能實現。在這里也是個不錯的選擇。
最下面的子窗口,就是logcat,查看當前連接的手機的log。看log就不多說了。Log頁簽的右邊,有一排快捷方式。先是選擇Log等級,從Verbose到error,一共5個按鈕。再右邊就是過濾按鈕,可以設置Log的過濾條件,只看我們想看的log。點擊那個綠色的加號,得到下面的窗口:tools-009
過濾器需要取一個名字。盡量用有意義的名字,不要省事用什么aaa。
Log Tag就是在代碼里輸出Log的時候,第一個log tag參數,用以對log進行分類。我的做法一般喜歡用當前所在的Class名作為Log的tag。
pic就是所在的進程編號。在Devices子窗口,看Online的那一列,就是各個進程的pid號。
Log level就不多解釋了,打log的人應該都懂的。
我們試着建一個Log過濾器。看system_process進程的pid,是72,tag填:ActivityManager,如下圖:tools-010
點擊OK之后,我們看到的log就都是系統的Activity管理相關的Log了。
最后,中間的Emulator Control子窗口,介紹一個也是常用的功能:模擬打電話和收短信。
如下圖:tools-011
輸入10010,選擇Voice,點擊”Call”按鈕,DDMS會模擬10010這個號碼向虛擬機打了一個電話。這個時候我們可以看到,虛擬機進入來電狀態。我們可以操作虛擬機接聽電話,然后再到Emulator Control這里掛斷電話。這個操作的快感就讓讀者自己去體會了。^_^