1. 程式人生 > >android必備記錄筆記(一)記憶體洩露和各種效能優化

android必備記錄筆記(一)記憶體洩露和各種效能優化

該篇筆記來自於平時學習時,對各種學習資源的整合,如有冒犯敬請諒解,整理的不好,還望海涵指出錯誤

一、記憶體洩露

針對記憶體洩露我認為要知道下面三點:

第一:要弄清楚記憶體洩露與記憶體溢位的區別

第二:要弄清楚常規的記憶體分析方法,重點掌握Leakcanary的使用和原理

第三:要清楚記憶體洩露出現的常規場景與解決辦法

##1.什麼是記憶體洩露,什麼是記憶體溢位,它兩之間的關係?

記憶體洩露是指程式在申請了記憶體後,無法放已申的記憶體空間。(小)

記憶體溢位是指程式在申記憶體,沒有足的記憶體空供其使用。 (大)

它兩之間的關係:

記憶體的溢位是記憶體分配達到了最大值,而記憶體洩漏是無用記憶體充斥了記憶體堆;因此記憶體洩漏是導致記憶體溢位的元凶之一,而且是很大的元凶;因為記憶體分配完後,哪怕佔用再大,也會回收,而洩漏的記憶體則不然;當清理掉無用記憶體後,記憶體溢位的閥值也會相應降低。

描述說明:

有一塊記憶體,記憶體裡面有很多個物件,在記憶體回收時,有些物件不能被回收,就成了垃圾物件,即沒得用了的物件,這個垃圾物件就是我們所說的記憶體洩漏,當垃圾物件一直在累加到記憶體的最大值時,就會造成記憶體溢位,記憶體溢位的元凶就是記憶體洩露。

##2.找出記憶體洩露的方法

&&1、用MAT工具進行分析

&&2、使用studio 自帶的Memory Monitor工具

&&3、使用StrictMode (嚴格模式)

&&4、整合Leackcanary工具

@@1. MAT 分析工具    (群英傳 244頁)