android内存泄漏总结



一、Android内存泄露:

  

   内存泄露也称作“存储渗漏”,用动态储存分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元,直到程序结束。即所谓内存泄露。内存泄露简单地说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。


二、造成内存泄漏的原因有那些呢?

  1、查询数据库后没有关闭Cursor
  2、构造Adapter时,没有使用convertView重用
  3、Bitmap 对象不在使用时调用recycle()释放内存
  4、对象被生命周期长的对象引用,如activity 被静态集合引用导致activity不能释放



三、内存泄漏有什么影响呢?
它是造成应用程序OOM的主要原因之一。由于android系统为每个应用程序分配的内存有限,当一个应用中产生的内存泄漏比较多时,就难免会导致应用所需要的内存超过这个系统分配的内存限额,这就造成了内存溢出而导致应用Crash。


四、内存泄漏总结:

平时注意代码书写、养成使用完成后对资源的释放的编码好习惯。

通过内存分析工具 MAT(Memory Analyzer Tool),找到内存泄露的对象  当其不在使用时候将其释放。

如果一个内部类实例的生命周期比Activity 更长,那么不要使用非静态内部类,可以使用静态内部类,然后在该类里使用弱引用来指向所在的Activity



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值