android 内存溢出报错,Android应用中图片列表造成内存溢出的解决方案

摘要:

内存溢出(Out Of Memory,简称OOM)通俗理解就是内存不够,是指运行程序时要求的内存,超出了系统所能分配的范围,从而导致发生内存溢出.一般在运行大型软件时,如果所需的内存远远超出了主机内安装的内存所承受大小时就会发生这种情况.造成这种现象的原因通常有两种:第一种是内存泄露;另外一种是当需要保存多个耗用内存过大或当加载单个超大的对象时,该对象的大小超过了当前剩余的可用内存空间.本文所描述的应用环境是指在具有即时聊天功能的Android应用程序中,浏览含有大量图片信息的图片列表时,由于在内存中加载这些图片时,这些图片对象的大小超过了剩余的可用内存空间,从而发生内存溢出的意外情况.本文对此简称为Android应用中图片列表造成内存溢出.作者对Android项目的图片列表中图片信息的数据源跟踪分析,从优化下载图片和本地缓冲图片入手,提出了有效防止内存溢出的解决方案.对于该方案,作者所做的工作总结如下:1对于下载过程先后提出了单线程下载模型,双任务下载模型以及改进型多任务下载模型.以发生OOM的次数和平均响应时间为判断优劣标准,通过大量的实验数据筛选出最佳性能的下载模型.2对目前常用的本地缓冲图片的多种技术的优缺点进行分析,并结合造成Android应用程序中发生OOM的具体原因,提出三级缓冲机制.通过对含有该机制的模型进行大量实验,验证了改进后的缓冲机制对避免OOM发生的有效性.3对含有第1,2步筛选出来的最佳性能的下载模型和三级缓冲机制的综合模型进行测试,通过对大量的实验数据进行统计分析,验证了综合模型比传统模型对避免OOM发生更加高效.解决方案已成功在Android应用中付诸实践.根据用户反馈,应用程序浏览图片信息的功能比较稳定,顺畅,很大程度上避免了OOM的发生,用户体验得到了很大的提升.

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值