内存泄漏也称作“存储渗漏”,用​​动态存储​​分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。        

android程序内存泄漏的原因和解决办法_analyzer

      内存泄漏简单地说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个​​系统崩溃​​​。由程序申请的一块内存,且没有任何一个​​指针​​指向它,那么这块内存就泄露了。

       从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于​​常发​​性和偶发性内存泄漏它更难被检测到。

Android应用内存泄漏的的原因有以下几个:

1查询数据库后没有关闭游标cursor 

2 构造Adapter时,没有使用 convertView 重用

3 Bitmap对象不在使用时调用recycle()释放内存

4 对象被生命周期长的对象引用,如activity被静态集合引用导致activity不能释放


内存泄漏的发现:

通过DDMS中的heap工具,去发现是否有内存溢出。


内存泄漏如何解决:

通过内存分析工具 MAT(Memory Analyzer Tool),找到内存泄露的对象



感谢您的阅读,如果文章中有错误或者您有什么好的建议,也欢迎您直接留言批评指教。Thanks,friends!