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