图片加载机制比较
Picasso、Imageloader、Fresco、Glide的优劣
Fresco:
优点:
1)图片存储在安卓系统的匿名共享内存,而不是虚拟机的堆内存中,图片的中间缓存数据也存放在本地堆内存,所以,应用程序有更多的内存使用,不会因为图片加载而导致oom,同时也减少垃圾回收器频繁调用回收Bitmap导致的界面卡顿,性能更高
2)渐进式加载JPEG图片,支持图片从模糊到清晰加载
3)图片可以以任意的中心点显示在ImageView,而不仅仅是图片的中心
4)JPEG图片改变大小也是在native进行的,不是在虚拟机的堆内存,同样减少OOM
5)很好的支持GIF图片的显示
缺点:
1)框架较大,影响apk体积
2)使用教繁琐
ImageLoader、Picasso、Glide:这三者实现机制都差不多
* ImageLoader:比较老的框架,稳定,加载速度适中,缺点在于不支持GIF图片加载,使用稍微繁琐,并且缓存机制没有和http的缓存很好的结合,完全是自己的一套缓存机制
* Picasso:使用方便,一行代码完成加载图片并显示,框架体积小,缺点在于不支持GIF(新版好像已经支持了),并且它可能是想让服务器去处理图片的缩放,它缓存的图片是未缩放的,并且默认使用ARGB_8888格式缓存图片,缓存体积大
* Glide:可以说是Picasso的升级版(?),有Picasso的优点,并且支持GIF图片加载显示,图片缓存也会自动播放,默认使用RGB_565格式缓存图片,是Picasso缓存体积的一半
Glide:
优点:
1)使用简单
2)可配置度高,自适应程度高
3)支持常见图片格式Jpg png gif webp
4)支持多种数据源 网络、本地、资源、Assets等
5)高效缓存策略 支持Memory和Disk图片缓存 默认Bitmap格式采用RGB_565内存使用至少减少一半
6)生命周期集成 根据Activity、Fragment生命周期自动管理请求
7)高效处理Bitmap 使用Bitmap Pool使Bitmap复用,主动调用recycle回收需要回收的Bitmap,减少系统回收压力
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现