一、AndroidStudio的Heap Snapshot工具
Heap Snapshot能做什么?
獲取Java堆內存詳細信息,可以分析出內存泄漏的問題
Heap Dump啟動
Paste_Image.png
點擊圖中紅色標注的按鈕,就會顯示我們的Heap Snapshot面板
Heap Snapshot面板
Paste_Image.png
該面板里的信息可以有三種類型:app heap/image heap/zygote heap.
分別代表app 堆內存信息,圖片堆內存信息,zygote進程的堆內存信息。
A區域
Paste_Image.png
B區域
當我們點擊某個類時,右邊的B區域會顯示該類的實例化對象,這里面會顯示有多少個實體,以及詳細信息。
Paste_Image.png
當你點擊某個對象時,將展開該對象內部含有哪些對象,同時C區域也會顯示哪些對象引用了該對象:
Paste_Image.png
C區域
Paste_Image.png
某對象引用樹對象,在這里面能看出其沒誰引用了,比如在內存泄漏中,可以看出來它被誰引用,比如上圖,引用樹的第一行,可以看出來,該對象被Object[12]對象引用,索引值為1,那我們展開后,可以看到,該Object[12]是一個ArrayList.
Paste_Image.png
Android studio新面板:
較之前添加了一個數據顯示方式的選擇,可以選擇類名排列或者包名排列:
Paste_Image.png