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