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