Glide 面试原理

205 阅读1分钟

Glide with 绑定

一、with(context)

点击源码查看到是多个重载方法activity、fragment、view等等,下面用其中一个方法来展示

load(url)RequestManagerFragment.class中持有一个lifecycle,在Fragment进入关键生命周期时会主动通知lifecycle执行相关方法

 上面执行完成到这里已经拿到RequestManager对象,然后调用load(url)。看源码可知是多个重载方法,传不同类型的资源。最终拿到RequestBuilder对象

三、into(imageView)

  上一步拿到了RequestBuilder对象,调用into可知有2个重载方法。into的参数就是最终显示的控件。当into内部代码执行完成后回到 buildImageViewTarget方法,这个方法是显示使用的,Executors.mainThreadExecutor()来切主线程

2、三级缓存策略

一级缓存:活动缓存 ,当前Activity退出缓存销毁。

二级缓存:LRU内存缓存 ,APP应用退出缓存销毁。

三级缓存:LRU磁盘缓存 ,一直存在。

四 三个线程池

  • 创建网络加载线程池对象
  • 创建磁盘加载线程池对象
  • 创建动画加载线程池对象