淺談圖片三級緩存

時間不會停下來等你,我們現在過的每一天,都是余生中最年輕的一天。

首先,說一下為什么要實現圖片的三級緩存

1:提高用戶體驗:,App進行頁面展示的時候,如果在沒有網絡的情況下,圖片可能展示過慢,甚至還會有圖片加載失敗的現象,影響用戶體驗
2:節約流量:當用戶進入一個App的時候,App內部圖片會進行頁面顯示,而這些圖片如果每次進入頁面都要進行網絡請求顯示的話,會大大增加用戶流量的消耗

第二,什么是三級緩存呢

1:內存緩存 優先加載,速度最快
2:磁盤緩存 次于內存緩存加載,速度快
3:網絡緩存 最后加載,速度較慢

緩存策略

為什么使用緩存策略

上面從用戶角度考慮了為什么要使用圖片緩存,此外,從開發人員角度看,Bitmap的創建非常消耗時間和內存,可能導致頻繁GC,使用緩存策略能夠高效加載Bitmap,減少卡頓,從而減少讀取耗時和電量消耗。

緩存策略是什么

具體通過三級級緩存策略,內存作為一級緩存,本地作為二級緩存,網絡直接下載為最后,其實嚴格來說不算緩存。其中內存采用LruCache,其內部通過LinkedhashMap來持有外界緩存對象的強引用;對于本地緩存,我這里為了簡單快速理解原理,直接使用的是文件IO操作,而網上也有人采用DiskLruCache (不是Android官網提供,但被官網推薦)。加載圖片時,首先采用LRU方式進行尋找,若找不到指定內容,則進行本地搜索,若本地也找不到,向網絡發起請求來獲取圖片。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容