緩存—— 給我們帶來了 良好的用戶體驗,急速的加載內(nèi)容。
DiskLruCahce 這個磁盤緩存框架大家應(yīng)該都不陌生,今天了解一下他的用法和大概的實現(xiàn)。
github 地址 :https://github.com/JakeWharton/DiskLruCache
Gradle 依賴 compile 'com.jakewharton:disklrucache:2.0.2'
DiskLruCache 初始化
初始化的過程 設(shè)置緩存路徑以及緩存尺寸,路徑建議是設(shè)在 系統(tǒng)的 data 文件夾中,無論是 internalStorage 還是 externalStorage 都會在 app 被卸載的時候被系統(tǒng)清除,當然也可以放在自定義的 sd 卡中。
(這里我犯了一個錯,造成我的圖片無法進行緩存,下載成功,其他無報錯,后來發(fā)現(xiàn)是我的緩存大小設(shè)置的小于要緩存的圖片了…… 很尷尬)
DiskLruCache 調(diào)用
由上圖我們看到 使用的流程為
1、創(chuàng)建 editor 對象
2、獲取緩存對象的輸出流 newOutputStream
3、執(zhí)行緩存 commit/取消緩存abort
加載緩存
1、獲取一個 snapShot 對象
2、獲取輸入流
3、生成 bitmap