探索Android DDMS工作原理
Android DDMS將為IDE搭建起與測試終端的鏈接,它們應(yīng)用各自獨立的端口監(jiān)聽調(diào)試器的信息,Android DDMS***的特性就是可以實時監(jiān)測到測試終端的連接情況,可以查看新的測試終端連接。
DDMS監(jiān)聽***個終端App進程的端口為8600,APP進程將分配8601,如果有更多終端或者更多APP進程將按照這個順序依次類推。DDMS通過8700端口(“base port”)接收所有終端的指令,打開后的窗口為:
在GUI的左上角可以看到標(biāo)簽為”Devices”的面板,這里可以查看到所有與Android DDMS連接的終端的詳細(xì)信息,以及每個終端正在運行的APP進程。每個進程最右邊相對應(yīng)的是與調(diào)試器鏈接的端口。
因為Android是基于Linux內(nèi)核開發(fā)的操 作平臺,同時也保留了Linux中特有的進程ID,它介于進程名和端口號之間。Device窗口羅列模擬器中所有的進程,右上角那一排按鈕分別為:調(diào)試某個進程,更新某個進程,更新進程堆棧信息,停止某個進程,***一個圖片按鈕時抓取android目前的屏幕。
當(dāng)你選中某個進程,并按下調(diào)試進程按鈕時,如果eclipse中有這個進程的代碼,那就可以進行源代碼級別的調(diào)試。有點像GDB attach。圖片抓取按鈕可以把當(dāng)前android的顯示桌面抓到你的機器上,也是非常有用。右邊那個窗口中有threads, heap , file explorer選項卡。分別顯示線程統(tǒng)計信息,棧信息,以及android的文件系統(tǒng)。
file explorer非常有用,他可以把文件上傳到android手機,或者從手機下載下來,也可以進行刪除操作。選中file explorer選項卡后,按下面三個按鈕便可實現(xiàn)對android手機文件系統(tǒng)的上傳,下載,刪除操作。
eclipse adt目前提供的的ddms功能只是真正ddms的一小部分,你 可以直接使用tools下面的Android DDMS來使用所有功能。其中有一個查看進程內(nèi)存分配的功能比較有用。另個要注意的是,在DDMS中模擬發(fā)送短信時,中文顯示為亂碼,在未來的開發(fā)中,我們必須要注意中文字符的問題。