前提 ThirdActivity 已經關閉,回到了MainAcitivity。應該是隻有回到了MainAcitivity的。 經過 Profiler 看到還有 ThirdActivity,那就是它有內存泄露。android
一、首先利用 Profiler GC 打點,下載 hpof。固然也能夠在Profiler中查看Activity是否有泄露,可是具體不到在哪裏。bash
二、下載 MAT eclipse.org/mat/ 單獨的一個工具 直接打開 hpof 是不行的,須要轉換一下,若是 android sdk目錄 sdk/platform-tools中沒有 hprof-conv ,那麼就下載一個放進去就行了。app
hprof-conv D:\before.hprof D:\after.hprof
複製代碼
而後就用MAT 打開就行了。 一、SQL 篩選Activity 等目標eclipse
select * from instanceof android.app.Activity
複製代碼
二、找到根節點的引用 若是還有引用那麼確定是泄露了啊,應該沒有這個 Acitity的,既然存在,那麼就有GC root 的引用,致使不能內存回收。 工具
對就是它。學習
固然分析的東西和功能不少,還有兩個 hpof 對比,找到區別點,進行定位。spa
完畢~~.net
本文屬於粗糙筆記,能夠詳細看參考文章來學習這一塊。3d
『參考文章』:code