内存泄露OOM

在我们进行编程的时候,会遇到内存泄露的问题,以下我列举了几点和解决方案,希望对大家有用

1.Bitmap过大
解决办法:
二次采样:第一次采样
第一次采样我主要是想要获得图片的压缩比例,假如说我有一张图片是200200,那么我想把这张图片的缩略图显示在一个5050的ImageView上,那我的压缩比例应该为4,那么这个4应该怎么样来获得呢?这就是我们第一步的操作了,我先加载图片的边界到内存中,这个加载操作并不会耗费多少内存,加载到内存之后,我就可以获得这张图片的宽高参数,然后根据图片的宽高,再结合控件的宽高计算出缩放比例。

第二次采样
在第一次采样的基础上,我来进行二次采样。二次采样的时候,我把第一次采样后算出来的结果作为一个参数传递给第BitmapFactory,这样在加载图片的时候系统就不会将整张图片加载进来了,而是只会加载该图片的一张缩略图进来,这样不仅提高了加载速率,而且也极大的节省了内存,而且对于用户来说,他也不会有视觉上的差异。
2.列表中图片过多,快速滑动时
解决办法:
通过滑动距离和时间判断滑动的速度,当速度过快的时候停止图片框架加载,当速度恢复慢速的时候开始加载
3.内存抖动:
短时间创建和销毁大量对象,造成内存频繁增加和销毁
常见场景:for循环 while循环 频繁刷新的view中onDraw方法里

三级缓存分为:
1.内存缓存 :优先加载,速度最快
2.本地缓存 :次优先加载,速度较快
3.网络缓存 :最后加载,速度较慢
二、使用图片缓存的原因
1.提高用户体验:如果每次启动都从网络下载图片,势必会加载很慢,图片无法显示,或需要很久才能完全显示,用户体验及其不好
2.节约流量:如果每次加载页面,甚至只是滑动控件浏览就会下载的话,会消耗很多流量,占用网络资源的同时,也会因为应用耗流量而用户数量级受到影响

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

内存泄露OOM

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 内存泄露OOM
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏