android調(diào)試工具DDMS的使用詳解
具體可見(jiàn)http://developer.android.com/tools/debugging/ddms.html。 DDMS為IDE和emultor、真正的android設(shè)備架起來(lái)了一座橋梁。開(kāi)發(fā)人員可以通過(guò)DDMS看到目標(biāo)機(jī)器上運(yùn)行的進(jìn)程/現(xiàn)成狀態(tài),可以 android的屏幕到開(kāi)發(fā)機(jī)上,可以看進(jìn)程的heap信息,可以查看logcat信息,可以查看進(jìn)程分配內(nèi)存情況,可以像目標(biāo)機(jī)發(fā)送短信以及打電話(huà),可 以像android開(kāi)發(fā)發(fā)送地理位置信息??梢韵駁db一樣attach某一個(gè)進(jìn)程調(diào)試。 SDK tools目錄下提供了ddms的完整版,直接運(yùn)行即可。下面以Eclipse的DDMS perspective為例簡(jiǎn)單介紹DDMS的功能。
跟debug,java的perspective一樣,安裝好adt后會(huì)有一個(gè)DDMS得perspective,打開(kāi)即可。
打開(kāi)后的窗口為,
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)卡。分別顯示線(xiàn)程統(tǒng)計(jì)信息,棧信息,以及android的文件系統(tǒng)。
file explorer非常有用,他可以把文件上傳到android手機(jī),或者從手機(jī)下載下來(lái),也可以進(jìn)行刪除操作。選中file explorer選項(xiàng)卡后,按下面三個(gè)按鈕便可實(shí)現(xiàn)對(duì)android手機(jī)文件系統(tǒng)的上傳,下載,刪除操作。
emulator control也是非常重要的,通過(guò)它可以像手機(jī)發(fā)送短信, 打電話(huà),已經(jīng)更新手機(jī)位置信息。
總結(jié):
eclipse adt目前提供的的ddms功能只是真正ddms的一小部分,你 可以直接使用tools下面的ddms來(lái)使用所有功能。其中有一個(gè)查看進(jìn)程內(nèi)存分配的功能比較有用。
DDMS全稱(chēng):Dalvik Debug Monitor Service
一,DDMS的作用它提供截屏,查看線(xiàn)程和堆的信息,logcat,進(jìn)程,廣播狀態(tài)信息,模擬來(lái)電呼叫和短信,虛擬地理坐標(biāo)等等。
二,DDMS怎樣工作1,每一個(gè)Android應(yīng)用都運(yùn)行在一個(gè)Dalvik虛擬機(jī)實(shí)例里,而每一個(gè)虛擬機(jī)實(shí)例都是一個(gè)獨(dú)立的進(jìn)程空間。虛擬機(jī)的 線(xiàn)程機(jī)制,內(nèi)存分配和管理,Mutex等等都是依賴(lài)底層操作系統(tǒng)而實(shí)現(xiàn)的。所有Android應(yīng)用的線(xiàn)程都對(duì)應(yīng)一個(gè)Linux線(xiàn)程,虛擬機(jī)因而可以更多的 依賴(lài)操作系統(tǒng)的線(xiàn)程調(diào)度和管理機(jī)制。
2,DDMS在IDE與設(shè)備或模擬器之間的起著中間人的角色。
3,DDMS啟動(dòng)時(shí)會(huì)與ADB之間建立一個(gè)device monitoring service用于監(jiān)控設(shè)備。當(dāng)設(shè)備斷開(kāi)或鏈接時(shí),這個(gè)service就會(huì)通知DDMS。
4,當(dāng)一個(gè)設(shè)備鏈接上時(shí),DDSM和ADB之間又會(huì)建立VM monitoring service用于監(jiān)控設(shè)備上的虛擬機(jī)。
5,通過(guò)ADB Deamon與設(shè)備上的虛擬機(jī)的debugger建立鏈接,這樣DDMS就開(kāi)始與虛擬機(jī)對(duì)話(huà)了。
三,端口1,對(duì)于設(shè)備上每個(gè)虛擬機(jī)的debugger, DDMS都會(huì)開(kāi)啟一個(gè)監(jiān)聽(tīng)端口。端口從8600開(kāi)始。
2,8700端口
四,左邊面板1,左邊顯示了所有當(dāng)前能找到的所有模擬器或設(shè)備列表和每個(gè)設(shè)備當(dāng)前正在運(yùn)行的虛擬機(jī)列表。虛擬機(jī)是按程序的包命來(lái)顯示的。
2,通過(guò)這些列表可以找到運(yùn)行著想調(diào)試的activity的虛擬機(jī)。每個(gè)虛擬機(jī)旁邊的是“debugger pass-through”端口,鏈接到其中一個(gè)端口就會(huì)鏈接到設(shè)備上對(duì)應(yīng)的虛擬機(jī)。不管如何,在用DDMS時(shí),只需要鏈接到8700端口,因?yàn)镈DSM 轉(zhuǎn)發(fā)所有的通信到當(dāng)前選擇的虛擬機(jī)。這樣,就不用在每次切換虛擬機(jī)是重新配置debugger端口。
3,當(dāng)一個(gè)正在運(yùn)行的程序調(diào)用waitForDebugger()函數(shù)時(shí),客戶(hù)端名字旁邊會(huì)顯示一個(gè)紅色的icon,知道debugger連上對(duì) 應(yīng)的虛擬機(jī),這是debugger會(huì)變成綠色。
4,如果看到叉icon,著意味著DDMS用于不能打開(kāi)虛擬機(jī)的端口而不能建立debugger與虛擬機(jī)建立連接。如果看到所有的虛擬機(jī)是這樣, 很可能是有另外一個(gè)DDSM實(shí)例在運(yùn)行。
五,右邊面板1,info
這里顯示關(guān)于選中的VM的一般的信息,包括進(jìn)程ID,包名,和虛擬機(jī)版本。
2,Threads
線(xiàn)程視圖列出了此進(jìn)程的所有線(xiàn)程。
ID:虛擬機(jī)分配的唯一的線(xiàn)程ID,在Dalvik里,它們是從3開(kāi)始的奇數(shù)。
Tid:linux的線(xiàn)程ID,For the main thread in a process, this will match the process ID.
Stauts:線(xiàn)程狀態(tài),
running:正在執(zhí)行程序代碼
sleeping:執(zhí)行了Thread.sleep()
monitor:等待接受一個(gè)監(jiān)聽(tīng)鎖。
wait:Object.wait()
native:正在執(zhí)行native代碼
vmwait:等待虛擬機(jī)
zombie:線(xiàn)程在垂死的進(jìn)程
init:線(xiàn)程在初始化(我們不可能看到)
starting:線(xiàn)程正在啟動(dòng)(我們不可能看到)
utime:執(zhí)行用戶(hù)代碼的累計(jì)時(shí)間
stime:執(zhí)行系統(tǒng)代碼的累計(jì)時(shí)間
name:線(xiàn)程的名字
4,VM Heap
展示一些堆的狀態(tài),在垃圾回收其間更新。當(dāng)選定一個(gè)虛擬機(jī)時(shí), VM Heap視圖不能顯示數(shù)據(jù),可以點(diǎn)擊右邊面包上的帶有綠色的”Show heap updates”按鈕,然后在點(diǎn)擊”Cause GC “實(shí)施垃圾回收更新堆的狀態(tài)。
6,Allocation Tracker
在這個(gè)視圖里,我們可以跟蹤每個(gè)選中的虛擬機(jī)的內(nèi)存分配情況。點(diǎn)擊”Start Tracking”后點(diǎn)擊”Get Allocations “就可以看到。
7,Emulator Control
在這里,可以模擬一些設(shè)備狀態(tài)和行為。
Telephony Status:改變電話(huà)語(yǔ)音和數(shù)據(jù)方案的狀態(tài),模擬不同的網(wǎng)絡(luò)速度。
TelePhony Actions:發(fā)送模擬的電話(huà)呼叫和短信到模擬器。
Location Controls:發(fā)送虛擬的定位數(shù)據(jù)到模擬器里,我們就可以執(zhí)行定位之類(lèi)的操作??梢允展さ脑贛anual里輸入經(jīng)度緯度發(fā)送到模擬器,也可以通過(guò) GPX和KML文件。
六,其他1,F(xiàn)ile Explorer
通過(guò)Device > File Explorer 就打開(kāi)File Explorer。這里可以瀏覽文件,上傳上載刪除文件,當(dāng)然這是有相應(yīng)權(quán)限限制的。
2,Screen Capture
通過(guò)Device > Screen Capture 就可以截圖。
3,Exploring Processes
通過(guò)Device > Show process status ,這里的信息是通過(guò)shell命令”ps -x”輸出的。
4,Examine Radio State
通過(guò)Device > Dump radio,檢測(cè)廣播狀態(tài)。
5,Stop a Virtual Machine
通過(guò)Actions > Halt VM ,停止一個(gè)虛擬機(jī)。
- Android基礎(chǔ)之使用Fragment控制切換多個(gè)頁(yè)面
- 六款值得推薦的android(安卓)開(kāi)源框架簡(jiǎn)介
- android TextView設(shè)置中文字體加粗實(shí)現(xiàn)方法
- Android應(yīng)用開(kāi)發(fā)SharedPreferences存儲(chǔ)數(shù)據(jù)的使用方法
- Android 動(dòng)畫(huà)之TranslateAnimation應(yīng)用詳解
- android壓力測(cè)試命令monkey詳解
- Android按鈕單擊事件的四種常用寫(xiě)法總結(jié)
- Android 動(dòng)畫(huà)之ScaleAnimation應(yīng)用詳解
- Android Hilt的使用以及遇到的問(wèn)題
相關(guān)文章
Android實(shí)現(xiàn)TCP客戶(hù)端接收數(shù)據(jù)的方法
這篇文章主要介紹了Android實(shí)現(xiàn)TCP客戶(hù)端接收數(shù)據(jù)的方法,較為詳細(xì)的分析了Android基于TCP實(shí)現(xiàn)客戶(hù)端接收數(shù)據(jù)的相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下2016-04-04Android使用GridView實(shí)現(xiàn)表格分割線(xiàn)效果
這篇文章主要為大家詳細(xì)介紹了Android使用GridView實(shí)現(xiàn)表格分割線(xiàn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07Android開(kāi)發(fā)ImageView圖片無(wú)法顯示解決過(guò)程
在Android中ImageView無(wú)法顯示加載的本地SDCard圖片:過(guò)程為先調(diào)用本地照相機(jī)程序攝像,然后將拍攝的圖片加載在ImageView中顯示,具體解決方法如下,感興趣的朋友可以參考下哈2013-06-06如果你在Android Studio碰到gradle的各種問(wèn)題就來(lái)看這篇文章吧(強(qiáng)烈建議收藏)
這篇文章主要介紹了你可能會(huì)在Android Studio碰到gradle的各種問(wèn)題,完美解決關(guān)于gradle的全部問(wèn)題,切記收藏以防需要的時(shí)候找不到了哦2021-08-08詳解Android Handler機(jī)制和Looper Handler Message關(guān)系
Handler是Android線(xiàn)程之間的消息機(jī)制,主要的作用是將一個(gè)任務(wù)切換到指定的線(xiàn)程中去執(zhí)行,準(zhǔn)確的說(shuō)是切換到構(gòu)成Handler的looper所在的線(xiàn)程中去出處理。本文將詳細(xì)介紹Android Handler機(jī)制和Looper Handler Message關(guān)系。2021-06-06kotlin實(shí)現(xiàn)語(yǔ)音聊天機(jī)器人案例詳解
Android智能問(wèn)答機(jī)器人是時(shí)下非常流行的一種服務(wù),微軟“小冰”的出現(xiàn)更是讓其實(shí)實(shí)在在的風(fēng)靡了一把。那么,本文章就將帶領(lǐng)大家完整的實(shí)現(xiàn)整個(gè)問(wèn)答機(jī)器人的制作2023-02-02Android 輕松實(shí)現(xiàn)圖片倒影效果實(shí)例代碼
這篇文章主要介紹了Android 輕松實(shí)現(xiàn)圖片倒影效果實(shí)例代碼,有需要的朋友可以參考一下2014-01-01Android實(shí)現(xiàn)拖動(dòng)效果的兩種方法
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)拖動(dòng)效果的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04