android内存溢出和内存泄漏

参考:https://www.jianshu.com/p/05a83c34a205

概念:

*内存溢出:系统会给每个App分配内存空间也就是heap size值,当app占用的内存加上申请的内存超过了Dalvik

虚拟机的最大内存时就会抛出Out of Memory异常。

*内存泄漏:当一个对象不再使用时,被应该被垃圾回收器回收,但这个对象由于被其它正在使用的对象所持有,

造成无法被回收,造成内存泄漏,内存泄漏最终会导致内存溢出。

关系:内存泄漏是造成内存溢出的主要原因之一。

危害:

*内存溢出:会触发java.lang.OutOfMemoryError,造成程序崩溃。

*内存泄漏:过多的内存泄漏会造成内存溢出或者UI卡顿现象。

内存泄漏的原因:

*大量的图片,音频,视频的不合理处理。

*非静态内部类和匿名内部类Handler,Thread,Runnable等由于持有外部类activity的引用,从而关闭activity时 ,

线程未完成造成内存泄漏。

*资源未及时关闭。(如BroadcastReceiver actiivity关闭时未注销)

*对static关键字的滥用。

*如果使用context尽量使用Application的Context。

*不要使用String进行字符串拼接。

*一些第三方库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值