内存泄漏的情况?如何检测内存泄漏?什么是内存抖动?什么是内存溢出?如何优化内存泄漏?(一篇文章让你搞懂)

今天,咱们来讲讲内存泄漏,想必大家都可能在搬砖的过程中遇到过内存泄漏的问题。那么今天咱们就一探究竟。

目录

什么是内存泄漏?

内存 泄漏的现象:

检测内存泄漏的工具:

如何优化内存泄漏?


什么是内存泄漏?

内存泄漏:指的是在申请内存后,当该内存不需要再使用但是还无法被释放。

内存溢出:程勋运行所需的内存超过系统分配的内存,即OOM

注意:在这里很多小伙伴都会把内存泄漏内存溢出以为是一个东西,但是!!!注意区分它俩之间的区别

内存抖动:频繁创建大量的、临时的小对象

内存 泄漏的现象:

1.在单例中需要传入content,但是传入的是Activity的Content,application上下文

2.在Java中内部类会隐式持有外部类的引用,如果内部类执行了耗时操作。就可能产生内存泄漏

3.在咱们使用IO、file流等资源时要及时关闭

4.其实动画也是一个耗时任务,Activity启动属性动画,如果在销毁的时候没有调用cancle方法,可能我们看不到动画了,但是他还是会在后台播放,动画引用所在的控件,控件引用Activity,这样就造成了Activity无法正常释放。

检测内存泄漏的工具:

1.Memory和Profiler:Android Studio自带的内存分析器,实时跟踪内存分配

2.MAT是eclipse的内存分析器

3.LeakCanary检测内存泄漏

如何优化内存泄漏?

1.关闭无用的Service

2.注册监听,服务,广播页面销毁的时候记得解除注册

3.Handle页面销毁的时候removeAllMessageCallBack()

4.使用webview的时候多开一个进程运行,让持有webview的Activity独立运行在一个进程,在Activity的onestory()中关闭这个进程

5.Bitmap是大头:使用RGB_565解码图片/图片压缩/不要乱放图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值