Android 的二級緩存如此簡單

CacheDiskUtils

之前寫過一篇 你想要的 CacheUtils烙如,簡單介紹了下其可以完美替代 ASimpleCache面哼,而且修復了其中少許 BUG 并做了相應優(yōu)化比肄,相關 API 如下所示:

緩存相關 -> CacheUtils.java

getInstance             : 獲取緩存實例
Instance.put            : 緩存中寫入數據
Instance.getBytes       : 緩存中讀取字節(jié)數組
Instance.getString      : 緩存中讀取 String
Instance.getJSONObject  : 緩存中讀取 JSONObject
Instance.getJSONArray   : 緩存中讀取 JSONArray
Instance.getBitmap      : 緩存中讀取 Bitmap
Instance.getDrawable    : 緩存中讀取 Drawable
Instance.getParcelable  : 緩存中讀取 Parcelable
Instance.getSerializable: 緩存中讀取 Serializable
Instance.getCacheSize   : 獲取緩存大小
Instance.getCacheCount  : 獲取緩存?zhèn)€數
Instance.remove         : 根據鍵值移除緩存
Instance.clear          : 清除所有緩存

其也就是所謂的硬盤緩存葡公,在 AndroidUtilCode 1.17.0 版本,該 CacheUtils 已被我標記廢棄汗侵,可替換為 CacheDiskUtils,下一個大版本1.18.x 可能就會移除 CacheUtils群发。

CacheMemoryUtils

講了磁盤緩存另一個就是內存緩存晰韵,內存緩存工具類 CacheMemoryUtils 原理是利用 LruCache 來實現的(LRU 是Least Recently Used的縮寫,即最近最少使用)熟妓,其 API 如下所示:

內存緩存相關 -> CacheMemoryUtils.java -> Test

getInstance           : 獲取緩存實例
Instance.put          : 緩存中寫入數據
Instance.get          : 緩存中讀取字節(jié)數組
Instance.getCacheCount: 獲取緩存?zhèn)€數
Instance.remove       : 根據鍵值移除緩存
Instance.clear        : 清除所有緩存

CacheDoubleUtils

結合硬盤緩存工具類 CacheDiskUtils 和內存緩存工具類 CacheMemoryUtils雪猪,那么我們的二級緩存工具類 CacheDoubleUtils 便誕生了,其 API 如下所示:

二級緩存相關 -> CacheDoubleUtils.java -> Test

getInstance                 : 獲取緩存實例
Instance.put                : 緩存中寫入數據
Instance.getBytes           : 緩存中讀取字節(jié)數組
Instance.getString          : 緩存中讀取 String
Instance.getJSONObject      : 緩存中讀取 JSONObject
Instance.getJSONArray       : 緩存中讀取 JSONArray
Instance.getBitmap          : 緩存中讀取 Bitmap
Instance.getDrawable        : 緩存中讀取 Drawable
Instance.getParcelable      : 緩存中讀取 Parcelable
Instance.getSerializable    : 緩存中讀取 Serializable
Instance.getCacheDiskSize   : 獲取磁盤緩存大小
Instance.getCacheDiskCount  : 獲取磁盤緩存?zhèn)€數
Instance.getCacheMemoryCount: 獲取內存緩存?zhèn)€數
Instance.remove             : 根據鍵值移除緩存
Instance.clear              : 清除所有緩存

借助以上三個緩存工具類起愈,那么 Android 端的緩存實現便再也不是什么難題了浪蹂,例如你想要實現 RxCache,那么借助 RxJava 的 compose 操作符和我的工具類告材,把數據放入緩存不就輕而易舉地實現了么坤次,更多風騷的姿勢可待你解鎖。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末斥赋,一起剝皮案震驚了整個濱河市缰猴,隨后出現的幾起案子,更是在濱河造成了極大的恐慌疤剑,老刑警劉巖滑绒,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異隘膘,居然都是意外死亡疑故,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門弯菊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纵势,“玉大人,你說我怎么就攤上這事管钳∏仗” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵才漆,是天一觀的道長牛曹。 經常有香客問我,道長醇滥,這世上最難降的妖魔是什么黎比? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任超营,我火速辦了婚禮,結果婚禮上阅虫,老公的妹妹穿的比我還像新娘糟描。我一直安慰自己,他們只是感情好书妻,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布船响。 她就那樣靜靜地躺著,像睡著了一般躲履。 火紅的嫁衣襯著肌膚如雪见间。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天工猜,我揣著相機與錄音米诉,去河邊找鬼。 笑死篷帅,一個胖子當著我的面吹牛史侣,可吹牛的內容都是我干的。 我是一名探鬼主播魏身,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惊橱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了箭昵?” 一聲冷哼從身側響起税朴,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎家制,沒想到半個月后正林,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡颤殴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年觅廓,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涵但。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡杈绸,死狀恐怖,靈堂內的尸體忽然破棺而出贤笆,到底是詐尸還是另有隱情蝇棉,我是刑警寧澤讨阻,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布芥永,位于F島的核電站,受9級特大地震影響钝吮,放射性物質發(fā)生泄漏埋涧。R本人自食惡果不足惜板辽,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棘催。 院中可真熱鬧劲弦,春花似錦、人聲如沸醇坝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呼猪。三九已至画畅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宋距,已是汗流浹背轴踱。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谚赎,地道東北人淫僻。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像壶唤,于是被迫代替她去往敵國和親雳灵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內容