第一章 工欲善其事 必先利其器—Android SDK工具(4)

來源:互聯網
上載者:User

標籤:

1.4 Android調試—調試工具( DDMS)

DDMS 的全稱是Dalvik Debug Monitor Service,它為我們提供了許多有用的服務,例如:可以為裝置截屏;針對特定的進程查看正在啟動並執行線程以及堆資訊;Logcat資訊;廣播狀態資訊;類比撥打電話;接收SMS;虛擬地理座標等等,是我們在開發過程當中十分重要的工具之一。

DDMS 工具存放在Android-sdk/tools/路徑下,直接雙擊ddms.bat運行DDMS,如果是在eclipse中,則通過Window->Open Perspective->Other->DDMS開啟DDMS。

圖1-18 DDMS視窗

 

DDMS的工作原理:

DDMS搭建起IDE與我們測試終端(模擬器或真機)的連結,它們使用各自獨立的連接埠來監聽調試器的資訊,DDMS可以即時監控測試終端的連結情況。當有新的測試終端連結後,DDMS將捕捉到終端的ID,並通過ADB建立調試器,從而實現發送指令到測試終端的目的。

DDMS是一座橋樑,它為IDE和Emultor(or GPhone)架起來了一座橋樑。開發人員可以通過DDMS看到目標機器上啟動並執行進程/線程狀態;可以讓Eclipse程式串連到開發機上運行;可以看進程的heap資訊、logcat資訊、進程分配記憶體情況;可以像目標機傳送簡訊、發送地理位置資訊以及打電話;可以像gdb一樣attach某一個進程調試。

DDMS介紹:

1)Device選項卡

1-19所示。

圖1-19 Device選項卡

 

Device中羅列了模擬器或真機中所有的進程,選項卡右上方那一排按鈕分別為:調試進程、更新進程、更新進程堆棧資訊、停止某個進程,最後一個圖片按鈕是抓取Emulator目前的螢幕。當你選中某個進程,並按下調試進程按鈕時,如果eclipse中有這個進程的代碼,那就可以進行原始碼層級的調試。有點像gdb attach。圖片抓取按鈕可以對當前Android裝置的顯示介面進行,也是非常有用的。
    2)Threads選項卡

顯示線程統計資訊,1-20所示。

圖1-20 Threads選項卡

 

3)Heap選項卡

顯示棧資訊,1-21所示。

圖1-21 Heap選項卡

 

經驗分享:

    Heap選項卡在做應用的記憶體最佳化的時候,會發揮著重要的作用。具體的,會在後面的章節中仔細說明。

 

4)File Explorer選項卡

顯示檔案資訊,1-22所示。

 

圖1-22 FileExplorer選項卡

 

顯示Android裝置或模擬器上的檔案系統資訊。FileExplorer非常有用:它可以把檔案上傳到Android裝置或模擬器;或者從裝置上下載檔案;也可以進行檔案刪除操作。選項卡右上方有上傳、下載、刪除三個按鈕。一般情況下,File Explorer會有如下三個目錄:data、sdcard、system。

data對應手機的RAM,會存放Android OS運行時的Cache等臨時資料(/data/dalvik-cache目錄);沒有root許可權時apk程式安裝在/data/app中(只是存放apk檔案本身);/data/data中存放Emulator或GPhone中所有程式(系統apk+第三方apk)的詳細目錄資訊。

sdcard對應sd卡。

system對應手機的ROM,OS以及系統內建apk程式等存放在這裡。

DDMS監聽第一個終端App進程的連接埠為8600,APP進程將分配8601,如果有更多終端或者更多APP進程將按照這個順序依次類推。DDMS通過8700連接埠(“base port”)接收所有終端的指令。

5)Emulator Control選項卡

類比控制選項卡,1-23所示。

圖1-23 EmulatorControl選項卡

 

通過它可以類比出向手機傳送簡訊、打電話、更新手機位置資訊。

在Emulator Control\Telephony Actions 中輸入以下內容,1-24所示。

圖1-24 類比傳送簡訊

 

點擊Send按鈕後,則向Android模擬器傳送簡訊,開啟模擬器,則有一條簡訊通知,點擊開啟後,1-25所示。

圖1-25 接收簡訊

 

6)Logcat選項卡

可以在程式中,通過使用Log類來向LogCat列印資訊。樣本請見圖1-26。

圖1-26 Logcat選項卡

 

我們可以通過點擊右上方的“+”按鈕添加Log Filter來過濾來查看Log資訊,例如,我們只想查看“System.out”的日誌資訊,則為我們添加一個filter1-27所示。

圖1-27 添加Log Filter

 

點擊“OK”按鈕後,則添加了一個Log Filter,裡面顯示的全是System.out列印出來的Log資訊。


第一章 工欲善其事 必先利其器—Android SDK工具(4)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.