概念
内存泄漏:是代码逻辑错误导致的,本应该释放的对象,由于有强引用,导致其不能被垃圾回收器回收。可以看我写的另一篇文章内存泄露(Memory Leak)
内存溢出(OOM):需要内存,可是申请不到足够的内存了,就会报错崩溃。所以内存泄漏不一定会导致OOM
内存抖动:内存频繁的分配和回收导致内存不稳定。表现就是内存忽高忽低,有短时间内快速上升和下降的趋势,内存成锯齿状。内存抖动说明是在频繁的GC。看了一些文章,意思是频繁的GC,不一定会导致卡顿,而是分配内存的速度比回收内存的速度快,当释放足够内存满足应用需求的时候,GC的时候会很长, 会导致跳帧卡顿,严重时会导致OOM。
检测
我们用Memory Profiler
Android内存分析工具 — Memory Profiler
下面这篇文章不错