android out of memory初探

这是我2013年的第一篇技术博客.

元旦期间看了android sdk里面的docs自带的training,对加载图片引起的out ofmemory一篇仔细阅读了以下.

先这里给大家献丑,把自己读的感受写出来.

原因分析:

由于android的机制是每个app都运行在一个DVM里,android又是多任务的,所以每个DVM都有内存限制.当应用需要的内存超过DVM分配的内存时就会发生out of memory

android给了大家3个方法

1.加载图片前先获取图片的尺寸和type

    bitmapfactory的decode方法里面,有个属性设置,可以先不解压图片,而只先获取图片的宽/高和mimetype.根据获取图片的宽高和imageview控件的宽/高再决定是否对原始图片进行缩放,将图片缩放到控件合适的尺寸再进行bitmap的decode,这样可以解决一些out of memory的现象.

2.后台异步处理

   图片的deocde肯定不能放到UI线程处理,一定要进行异步处理.这样才不会出现UI等待过长,导致出现那个经典的ANR问题,而force close.

3.图片缓存.

   对于一屏需要展示多张图片及切换屏幕的,当图片不再当前屏幕时,可以进行memory cash

--------

先写道这里吧,具体的大家可以到android sdk doc里面查看.我还没有完全读懂,这里抛砖引玉了!

sdk doc是最好的学习.如果英语不好,还可以锻炼英语.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值