記憶體洩漏原因是:長生命週期的物件擁有短生命週期物件的引用,本該回收的物件因為引用問題無法回收。
記憶體洩漏常見原因:
1、集合類
2、靜態成員,常量
3、單例模式
4、未關閉釋放的資源
5、Handdler/Thread 非靜態內部類
記憶體洩漏排查: 步驟1:
步驟2:進入app後到處多點幾次,可以使用monkey測試。
步驟3 4:
步驟5:這裡我們知道哪幾個物件存在記憶體洩漏的問題步驟6:使用SDK工具platform-tools/hprof-conv.exe 把 a.hprof 編譯為 a_mat.hprof
步驟7:使用Eclipse外掛開啟a_mat.hprof 下載連結:https://www.eclipse.org/mat/downloads.php
步驟8: 步驟9: 步驟10:步驟11:在AS中AddfriendActivity中檢視關於BaseApp的引用
然而AddFriendActivity中程式碼並沒有找到有關BaseApp,繼續BaseActivity中找 MyApp 繼承BaseApp步驟12:解決問題
記憶體洩漏排查和修復就到這裡,更多的是需要自己細心去找。