Heap Viewer工具
1.Heap Viewer能做什么人断?
1.1 實時查看App分配的內(nèi)存大小和空閑內(nèi)存大小
1.2 發(fā)現(xiàn)Memory Leaks
2.Heap Viewer使用條件
2.1 5.0以上的系統(tǒng)吭从,包括5.0
2.2 開發(fā)者選項可用
3.Heap Viewer啟動
3.1 可以直接在Android studio工具欄中直接點擊小機器人啟動:
3.2 還可以在Android studio的菜單欄中Tools也可以:
4.Heap Viewer面板
按上圖的標記順序按下,我們就能看到內(nèi)存的具體數(shù)據(jù)恶迈,右邊面板中數(shù)值會在每次GC時發(fā)生改變涩金,包括App自動觸發(fā)或者你來手動觸發(fā)。
總覽:
詳情:
內(nèi)存泄漏
英文名:Memory Leaks
標準解釋:無用的單純暇仲,但是還是沒GC ROOT引用的內(nèi)存
通俗解釋:該死不死的內(nèi)存
檢測
那么如何檢測呢步做?Heap Viewer中的數(shù)值會自動在每次發(fā)生GC時會自動更新,那么我們是等著他自己GC么奈附?既然我們是來看內(nèi)存泄漏全度,那么我們在需要檢測內(nèi)存泄漏的用例執(zhí)行過后,手動GC下桅狠,然后觀察data object一欄的total size(也可以觀察Heap Size/Allocated內(nèi)存的情況)讼载,看看內(nèi)存是不是會回到一個穩(wěn)定值,多次操作后中跌,只要內(nèi)存是穩(wěn)定在某個值咨堤,那么說明沒有內(nèi)存溢出的,如果發(fā)現(xiàn)內(nèi)存在每次GC后漩符,都在增長一喘,不管是慢增長還是快速增長,都說明有內(nèi)存泄漏的可能性嗜暴。
實例
1.剛打開首頁,手動GC一下:
2.首頁到詳情頁10遍凸克,最后回到首頁,手動GC一下,直到數(shù)值不再變化:
3.首頁到詳情頁10遍闷沥,最后回到首頁萎战,手動GC一下:
從data object一欄看到該類型的數(shù)值會在不斷增長,可能發(fā)生了內(nèi)存泄漏舆逃,而我們也可以從上面三個圖的標紅部分來看蚂维,Allocated分別增加了2.418M和1.084M,而且你繼續(xù)這么操作下去路狮,內(nèi)存依然是增長的趨勢