Android 内存泄漏排查过程
前言
最近项目内存占用越来越大,在图片管理优化了一波之后,内存还是有点过大。大概率是出现内存泄漏了,不查不知道,一查吓一跳。很多地方出现了内存泄漏。这里记录一下,存当笔记。
内存泄漏
内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 —— [ 百度百科 ]
Android内存泄漏
众多周知,安卓是每个Apk都有限制内存大小的。如果内存得不到释放,则非常容易爆OOM内存溢出。所以Android的内存溢出的问题会比其他平台更为严重。如果一个Activity内存泄漏了,会导致这个Activity一直不回收。堆内存会一直持有这个Activity的引用。即使Activity destroied的,系统还是认为他还活着。Gc都无法带走它。非常恐怖。
方法一:Android内存泄漏工具-LeakCanary
这里我就不说了,网上比较多的介绍;这里推荐一个文章可以看看 [ LeakCanary 中文使用说明 ]
里面内容说的主要步骤:
//在 build.gradle 中加入引用,不同的编译使用不同的引用:
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakca