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<...
- 這是一篇長文,長期不定期更新 (注:如果有不能分享的,請及時聯系,我會及時處理,如果有冒犯的地方,請諒解~) 滴滴...
- 由于圖片加載是應用開發中非常常見,但是有非常容易消耗資源甚至出現問題的場景,因此出現了很多第三方圖片加載框架,...