21.9.22 Android Monitor
特別申明:本文僅供自己學(xué)習(xí)記錄使用,所寫內(nèi)容來(lái)自各網(wǎng)頁(yè),如需轉(zhuǎn)載自己去查找內(nèi)容出處。如有侵權(quán)請(qǐng)聯(lián)系在下,評(píng)論、私信等不論。
目錄
一、Android Monitor
1.DDMS概念
2.ddms功能
1.Thread:查看進(jìn)程中線程情況。
2.Heap
3.File Exporler:File Exporler文件瀏覽器
?4.查看特定界面的展示及布局元素構(gòu)成
?5.Devices
6.Emulator Control
7、Screen captrue:截屏操作
8.LogCat
9.Dump HPROF file
10.原文鏈接
一、Android Monitor
1.DDMS概念
DDMS 的全稱是Dalvik Debug Monitor Service,是 Android 開發(fā)環(huán)境中的Dalvik虛擬機(jī)調(diào)試監(jiān)控服務(wù)。
它為我們提供例如:為測(cè)試設(shè)備截屏,針對(duì)特定的進(jìn)程查看正在運(yùn)行的線程以及堆信息、Logcat、廣播狀態(tài)信息、模擬電話呼叫、接收SMS、虛擬地理坐標(biāo)等等。
在集成開發(fā)環(huán)境中,有DDMS控制臺(tái)窗口。如,MyEclipse中,有個(gè)叫DDMS的Console。
?打開ddms
1、找到Android Device Moniitor
2、如果未下載便會(huì)出現(xiàn)下載界面,下載好即可打開ddms
2.ddms功能
1.Thread:查看進(jìn)程中線程情況。
做線程分析,如果發(fā)現(xiàn)有這樣的提示
“Thread updates not enabled for selected client(use toobar button to enable)”
?則需要進(jìn)行以下操作:
Windows->Preferences->Android->DDMS -> ‘Thread Updates
Enabled by Default’
重啟ADM即可。
2.Heap
查看應(yīng)用中內(nèi)存使用情況。
Retained Size(包括直接引用的和間接引用的內(nèi)存)
2.1?Start Allocaton Tracking
開始分配追蹤,第一次點(diǎn)擊可以指定追蹤內(nèi)存的開始位置,第二次點(diǎn)擊可以結(jié)束追蹤的位置。
3.File Exporler:File Exporler文件瀏覽器
查看Android模擬器中的文件,可以很方便的導(dǎo)入/出文件。例如下圖就是文件查看,在這里顯示當(dāng)前模擬器的所有文件
?
?
4.查看特定界面的展示及布局元素構(gòu)成
右邊的代碼部分可以查看布局詳情
5.Devices
查看到所有與DDMS連接的模擬器詳細(xì)信息,以及每個(gè)模擬器正在運(yùn)行的APP進(jìn)程,每個(gè)進(jìn)程最右邊相對(duì)應(yīng)的是與調(diào)試器鏈接的端口。
6.Emulator Control
實(shí)現(xiàn)對(duì)模擬器的控制,如:接聽電話,根據(jù)選項(xiàng)模擬各種不同網(wǎng)絡(luò)情況,模擬短信發(fā)送及虛擬地址坐標(biāo)用于測(cè)試GPS功能等。
7、Screen captrue:截屏操作
在這里還提供了截圖功能(截圖的是功能界面例如上幾個(gè)界面)
8.LogCat
查看日志輸入信息,可以對(duì)日志輸入進(jìn)行Filter過(guò)濾一些調(diào)試的信息篩選查看等。?
9.Dump HPROF file
點(diǎn)擊DDMS工具條上面的Dump HPROF文件按鈕,選擇文件存儲(chǔ)位置,然后在運(yùn)行hprof-conv。可以用MAT分析heap dumps啟 動(dòng)MAT然后加載剛才我們生成的HPROF文件。MAT是一個(gè)強(qiáng)大的工具,講述它所有的特性超出了本文的范圍,所以我只想演示一種可以用來(lái)檢測(cè) 泄露的方法:直方圖(Histogram)視圖。它顯示了一個(gè)可以排序的類實(shí)例的列表,內(nèi)容包括:shallow heap(所有實(shí)例的內(nèi)存使用總和),或者retained heap(所有類實(shí)例被分配的內(nèi)存總和,里面也包括他們所有引用的對(duì)象)等。
10.原文鏈接? ??必看參考
11.GC Roots
11.1 對(duì)象存活的判定:
當(dāng)一個(gè)對(duì)象不會(huì)再被使用的時(shí)候,我們會(huì)說(shuō)這對(duì)象已經(jīng)死亡。對(duì)象何時(shí)死亡,寫程序的人應(yīng)當(dāng)是最清楚的。如果計(jì)算機(jī)也要弄清楚這件事情,就需要使用一些方法來(lái)進(jìn)行對(duì)象存活判定,常見(jiàn)的方法有引用計(jì)數(shù)(Reference Counting)和有可達(dá)性分析(Reachability Analysis)兩種。
11.2 引用計(jì)數(shù)算法的大致思想是給對(duì)象中添加一個(gè)引用計(jì)數(shù)器,每當(dāng)有一個(gè)地方引用它時(shí),計(jì)數(shù)器值就加1;當(dāng)引用失效時(shí),計(jì)數(shù)器值就減1;任何時(shí)刻計(jì)數(shù)器為0的對(duì)象就是不可能再被使用的。
Java語(yǔ)言里面沒(méi)有選用引用計(jì)數(shù)算法來(lái)管理內(nèi)存,其中最主要原因是它沒(méi)有一個(gè)優(yōu)雅的方案解決對(duì)象之間相互循環(huán)引用的問(wèn)題:
當(dāng)兩個(gè)對(duì)象互相引用,即使它們都無(wú)法被外界使用時(shí),它們的引用計(jì)數(shù)器也不會(huì)為0。
11.3 可達(dá)性算法的基本思路就是通過(guò)一系列的稱為GC根節(jié)點(diǎn)(GC Roots)的對(duì)象作為起始點(diǎn),從這些節(jié)點(diǎn)開始進(jìn)行向下搜索,搜索所走過(guò)的路徑成為引用鏈(Reference Chain),當(dāng)一個(gè)對(duì)象到GC Roots沒(méi)有任何引用鏈相連(用圖論的話來(lái)說(shuō)就是從GC Roots到這個(gè)對(duì)象不可達(dá))時(shí),則證明此對(duì)象是不可用的。
11.4 Java中可以作為GC Roots的對(duì)象
? ? ? ? ?必看參考
總結(jié)
以上是生活随笔為你收集整理的21.9.22 Android Monitor的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 获取电脑的 SN 码
- 下一篇: 1031直方图