android-图片加载 Picasso 设计及优点
来源:互联网 发布:辽宁省农产品出口数据 编辑:程序博客网 时间:2024/06/02 16:30
总体设计及流程
上面是 Picasso 的总体设计图。整个库分为 Dispatcher,RequestHandler 及 Downloader,PicassoDrawable 等模块。
Dispatcher 负责分发和处理 Action,包括提交、暂停、继续、取消、网络状态变化、重试等等。
简单的讲就是 Picasso 收到加载及显示图片的任务,创建 Request 并将它交给 Dispatcher,Dispatcher 分发任务到具体 RequestHandler,任务通过 MemoryCache 及 Handler(数据获取接口) 获取图片,图片获取成功后通过 PicassoDrawable 显示到 Target 中。
需要注意的是上面 Data 的 File system 部分,Picasso 没有自定义本地缓存的接口,默认使用 http 的本地缓存,API 9 以上使用 okhttp,以下使用 Urlconnection,所以如果需要自定义本地缓存就需要重定义 Downloader。Picasso 优点
(1) 自带统计监控功能
支持图片缓存使用的监控,包括缓存命中率、已使用内存大小、节省的流量等。
(2) 支持优先级处理
每次任务调度前会选择优先级高的任务,比如 App 页面中 Banner 的优先级高于 Icon 时就很适用。
(3) 支持延迟到图片尺寸计算完成加载
(4) 支持飞行模式、并发线程数根据网络类型而变
手机切换到飞行模式或网络类型变换时会自动调整线程池最大并发数,比如 wifi 最大并发为 4, 4g 为 3,3g 为 2。
这里 Picasso 根据网络类型来决定最大并发数,而不是 CPU 核数。
(5) “无”本地缓存
无”本地缓存,不是说没有本地缓存,而是 Picasso 自己没有实现,交给了 Square 的另外一个网络库 okhttp 去实现,这样的好处是可以通过请求 Response Header 中的 Cache-Control 及 Expired 控制图片的过期时间。
- android-图片加载 Picasso 设计及优点
- picasso Android图片加载
- Picasso--Android图片加载开源库
- Android图片加载框架Picasso
- Android加载图片框架Picasso
- android Picasso----图片加载和缓存
- android 图片加载和缓存开源项目 Picasso
- android 图片加载框架picasso流程解读
- Android图片加载库:Picasso详解
- android 图片加载和缓存开源项目 Picasso
- Android Picasso图片加载库源码剖析
- Android中使用Picasso加载图片
- Android:图片加载库Glide VS Picasso
- android 图片加载框架 之 Picasso
- android 图片加载和缓存开源项目 Picasso
- Android图片加载框架Picasso(一)
- Android图片加载库:Picasso讲解
- Android图片加载库Picasso和Glide
- 我的音乐收藏 http://www.xiami.com/u/45574524
- 使用 Gradle 与 Travis CI 进行简单持续集成 II
- javascript引用类型
- 2016年华为秋招机试题——2.字符串排序(200分)
- 使用文件来保存程序中的数据
- android-图片加载 Picasso 设计及优点
- Swift基础之代理与传值(一)
- java设计模式_策略模式
- Zephyr OS 基础篇: 系统简介
- 移动端transition闪烁问题的解决方案
- HDU 5480 Conturbatio 树状数组
- 越狱的手机显示时间出错
- LINUX进程优先级的设置和一些注意地方
- 深度体感设备