Glide面试

Q:glide是怎么使用的
A:Glide.with(this).load(url).into(imageview)
Q:Glide会不会导致内存泄漏
A:不会,原因:Glide能感知activity的生命周期,当activity结束的时候,glide就不会再加载
Q:怎么感知的?
A: RequestManager能够管理生命周期,通过RequestMangerRetriever创建一个无UI的Fragment,并将这个Fragment的生命周期绑定到RequestManager
具体的就是在glide.with方法中,为传入的activity创建一个无UI的fragment,并且将fragment的生命周期绑定到RequestManager上,当acitity触发onStop等方法的时候,会隐式的调用fragment的onStop方法,再通过fragment的onstop调用RequestManager的onstop方法
Q:在load方法之前有别的方法调用么?
A:Begin方法,然后调用load
Q:load之后怎么拿数据
A: 首先去活动缓存(正在使用的图片用弱引用缓存)中去获取数据,如果获取不到去内存缓存中获取,如果获取不到会通过缓存的线程池中获取本地的硬盘数据,如果获取不到本地的,通过网络获取网络图片
Q:说一下缓存机制:
A: 三级缓存,分别是活动缓存、内存缓存、磁盘缓存、
正在使用的图片用弱引用缓存,使用完之后到内存缓存(Lrucache缓存)再到磁盘缓存(DisLruCache)
Q:你知道Lrucache缓存么
A:LruCache是一种根据Lru算法的缓存,最近最少使用的会被淘汰,即一直没访问的对象,将放在队头,即将被淘汰。而最近访问的对象将放在队尾,最后被淘汰

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容