android 图片加载笔记

1、尽可能避免内存溢出;
    a、根据图片的显示大小去压缩图片
    b、使用缓存对我们的图片进行管理(lrucache)
2、用户操作UI空间必须充分流畅;
    b、getView里面尽量不做耗时操作(异步加载加回调显示)
3、用户预期显示的图片尽可能的快;
    图片的的加载策略LIFO 也提供FIFO供用户切换

ImageLoader

 getView(){
    
    url -> Bitmap
    url -> LruCache查找
        找到返回
        找不到 url->Task->TaskQueue且
            发送一个通知去提醒后台轮训线程
}

Task->run() 根据url 加载图片:对图片进行压缩
        1、获得图片显示的大小
        2、使用options对图片进行压缩
        3、加载图片并放入Lrucache

后台轮询线程
TaskQueue->Task->线程池去执行
Handler + Looper + Message(android异步消息处理框架)

MessageQueue

LinkedList 有获得从第一个和最后一个取对象的方法

学习android 异步任务处理机制

Task ->TaskQueue->通知后台线程->把Task放入到他的内部任务队列(执行是瞬间的,所以我们之前的策略是无效的,需要引入信号量机制来acquire与release来进行控制)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值