android——OOM异常和解决

本文探讨了Android应用中由于加载大图片导致的OOM问题,并提供了三种解决方案:使用ImageLoader进行图片加载与压缩、结合LruCache和DiskLruCache处理图片缓存、采用Facebook的fresco开源项目优化图片加载。这些方法旨在有效管理内存,防止内存溢出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OOM 异常出现的根本原因是 –运行时内存不足,一般情况是:UI中加载有大图或者大对象,然后,对大图没有进行压缩处理、也没有采用一些优化内存的机制来处理,在UI关闭销毁时没有进行回收,无用对象没有进行手动置空,这样的话底层jvm是不会自动GC的,所以,会造成UI运行时程序出现OOM问题。
一般解决思路:
多媒体对象进行压缩存储,一般图片对象是根据图片大小来做相应的压缩处理,加载时可以采用第三方加载框架来处理:
方法1: ImageLoader 来加载(强大的开源框架) +图片压缩
方法2: 结合LruCache和DisLruCache来处理图片,因为手机的一般运行内存是32MB,所以,我们一般是将运行内存的1/8大小来加载图片,利用LruCache来装在图片,内部实现的是LRU算法,所以可以实现有效的加载,防止内存溢出,大多数情况下,我们是网络加载,所以需要本地缓存,这时可以利用DisLruCache来加载,原理是一样,只是会在本地有缓存.
方法3:faceBook最新的fresco开源项目来处理图片OOM问题…
后续….

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值