歡迎光臨
每天分享高質量文章

Android輕量快取框架–ASimpleCache

做Android應用開發的同學們相信對“快取”這個詞不陌生,快取可能有多方面的概念,這裡大概列舉下程式開發的快取大概有哪些:

  • 1.服務端控制快取

如volley請求庫,便是透過服務端的“Cache-Control”和“max-age”來告訴客戶端有沒有快取以及快取的時間,也是推薦的使用方式,但是需要服務端配合,比較靈活。

  • 2.客戶端直接控制快取

有些時候不需要服務端來支援的話,客戶端可以直接做一層快取,思路就是請求之後把資料快取在本地,最常見的是直接以檔案快取在本地就好了,當然你可以快取在本地的sqlite,以sqlite檔案的形式快取資料處理更靈活點,然後客戶端自己處理快取的時間,過期則直接清除資料。對於一些不太經常變化的頁面,採用這種快取可以減少客戶端流量,同時減少伺服器併發量。

對於一些新聞類或者timeline這種,資料變化是非常頻繁的,針對這種情況可能就不太適合設定快取時間,這種情況可以考慮讓頁面每次進來都會自動掃清一次以獲取最新資料,如果網路不好或者斷開時可以直接讀取本地快取,增加使用者體驗。當然如果想要更複雜的處理可以配合時間來判斷當前頁面要不要掃清。

今天就介紹一種簡易的快取框架,使用起來非常簡單。

ASimpleCache


ASimpleCache 是一個為android制定的 輕量級的 開源快取框架。輕量到只有一個java檔案(由十幾個類精簡而來)。

它可以快取什麼東西?


普通的字串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java物件,和 byte資料。

如何使用 ASimpleCache?


ACache mCache = ACache.get(this);

mCache.put(“test_key1”, “test value”);

mCache.put(“test_key2”, “test value”, 10);//儲存10秒,如果超過10秒去獲取這個key,將為null

mCache.put(“test_key3”, “test value”, 2 * ACache.TIME_DAY);//儲存兩天,如果超過兩天去獲取這個key,將為null

獲取資料

ACache mCache = ACache.get(this);

String value = mCache.getAsString(“test_key1”);

最後此專案的開源地址:https://github.com/yangfuhai/ASimpleCache

點選”閱讀原文“即可檢視部落格原文,大家如果覺得對你有幫助的話,不妨推薦身邊的朋友關註此賬號,如果有什麼建議或者推薦的可直接留言給我。

贊(0)

分享創造快樂