内存泄漏1___概念

内存泄漏,就是内存缩小

内存泄漏 ,可以这样理解, 一个对象持久引用,即持久占用内存,又不能及时被释放 ,将导致内存泄露的风险

简单地说,就是一块内存被持久占有,总内存空间减小了

内存空间减小,  导致的问题:

设备就会越来越卡,因为没有足够的空间让程序来运行, 直到内存数据溢出, 然后程序就会挂掉,再跟着操作系统也可能无响应

在Android中,

例如: 1 Broadcast广播动态注册,这种注册方式也叫非常驻型广播,受到生命周期的影响,退出页面后,就不会收到广播,我们通常运用在更新UI方面。这种注册方式优先级较高。最后需要解绑,否则会内存泄露

2  Handler 引起的内存泄漏。

解决:将Handler声明为静态内部类,就不会持有外部类SecondActivity的引用,其生命周期就和外部类无关,

如果Handler里面需要context的话,可以通过弱引用方式引用外部类

3  非静态内部类创建静态实例引起的内存泄漏。

例如在Adapter类中,一般有一个内部类  ViewHolder

解决:把内部类修改为静态的就可以避免内存泄漏了

 

 

内存泄露检测工具 ------>LeakCanary

LeakCanary本质上是一个基于MAT进行Android应用程序内存泄漏自动化检测的的开源工具,我们可以通过集成LeakCanary提供的jar包到自己的工程中,一旦检测到内存泄漏,LeakCanary就好dump Memory信息,并通过另一个进程分析内存泄漏的信息并展示出来,随时发现和定位内存泄漏问题,而不用每次在开发流程中都抽出专人来进行内存泄漏问题检测,极大地方便了Android应用程序的开发。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值