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算法的缓存,最近最少使用的会被淘汰,即一直没访问的对象,将放在队头,即将被淘汰。而最近访问的对象将放在队尾,最后被淘汰
Glide面试
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 面试官:为什么用Glide,而不选择其它图片加载框架? 链式调用,生命周期,解耦 面试官:有看过它的源码吗?跟其它...
- 1: RequestManager with = Glide.with(this);RequestBuilder<...
- 这是一篇长文,长期不定期更新 (注:如果有不能分享的,请及时联系,我会及时处理,如果有冒犯的地方,请谅解~) 滴滴...
- 由于图片加载是应用开发中非常常见,但是有非常容易消耗资源甚至出现问题的场景,因此出现了很多第三方图片加载框架,...