2020阿里大佬总结面试题系列!大厂面试之图片(含答案+学习笔记)

本文深入探讨了Android图片处理面试重点,包括图片库对比(Picasso, Glide, Fresco)、LRUCache原理、图片加载原理、Glide源码解析及其缓存策略,以及Fresco的内存管理。作者强调了学习源码和进阶技术对于程序员的重要性,并提供了Android学习资料和面试题合集。" 80826603,7668629,SpringMVC中接收前端List集合的方法,"['Spring框架', 'Web开发', '前端后端交互', '数据传递']
摘要由CSDN通过智能技术生成

作者:爱雨浮龙

一、图片

  1、图片库对比
  2、LRUCache原理
  3、图片加载原理
  4、自己去实现图片库,怎么做?
  5、Glide源码解析
  6、Glide使用什么缓存?
  7、Glide内存缓存如何控制大小?

参考答案:

1、图片库对比

Picasso Glide Fresco

Picasso 毕加索 Square

   Picasso 没有实现本地缓存功能,交给了 Square 的另外一个网络库 okhttp 去实现,
这样的好处是可以通过请求 Response Header 中的 Cache-Control 及 Expired 控制图片的过期时间。
  • 使用简单,代码简洁
  • Square其他类库搭配兼容性好,Retrofit OkHttp

缺点:

  • 功能简单 图片加载
  • 性能(加载速度等等)较(GlideFresco)差
  • 自身没有实现"本地缓存"

Glide Google 开源

  支持 Gif WebP Video
  生命周期继承
  高效缓存策略
  • 支持MemoryDisk缓存
  • Picasso只会缓存原始尺寸图片,而Glide缓存时多种规格
  • 内存开销小,默认 RGB_565Picasso默认是ARGB_8888

缺点:

  • 使用方法复杂,实现方法较多
  • 使用比Fresco简单,但性能(加载&缓存)却比不上Fresco

Fresco Facebook

  • 大大减少OOM,底层使用C++技术解决图片缓存问题
  • 使用加单,几乎全部功能都能在xml上定制

缺点:

  • 用法变得更加复杂
  • 依赖包更大了 2~3M
  • 底层C++,阅读源码困难

juejin.im/entry/5af9a…

对比项 Picasso Glide Fresco
地址 github.com/square/pica… github.com/bumptech/gl… github.com/facebook/fr…
发布时间 2013年5月 2014年9月 2015年5月
是否支持gif false true true
是否支持webP true true true
视频缩略图 false true true
大小 100k 500 KB 2~3M
加载速度
Disk+Men Cache true true true</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值