RequestManager管理当前Context下所有的图片加载request, RequestManager通过创建无View的Fragment管理request的生命周期。
1、Glide的图片的加载通过com.bumptech.glide.load.engine.Engine.java的load()方法,首先从MemoryCache中开始查找,
MemoryCache的实现是LinkHashMap,LinkHashMap根据访问顺序排序,如果有缓存则删除,并组成新的缓存对象放入activeResources,
放入activeResources中标记加1, 大于0表明该缓存有被使用,等于0则表示没有被引用。
activeResources是 Map>>弱引用实现,然后通过activeResources查找缓存。
2、图片的释放,删除activeResources中的缓存图片,并存入MemoryCache中。
3、硬盘缓存,首次网络加载图片首先会从硬盘查找,如果过有则返回,没有则重新网络加载并缓存到硬盘。
4、压缩方式:采样(减少一些像素点),质量0-100,尺寸压缩方式(减少图片大小)
网友评论