Android中的快取策略

2021-07-11 01:02:42 字數 1129 閱讀 6316

當記憶體中不存在該時從儲存裝置中載入,當儲存裝置中也不存在該時從網路中去獲取。

快取一般要包含新增 獲取 刪除三類操作。

lrucache (least recently used 最近最少使用演算法,記憶體快取),disklrucache(儲存快取)。

lrucache快取用於實現記憶體快取。

lrucache是android3.1提供的乙個快取類(泛型類),其內部採用linkedhashmap以強引用的方式儲存快取物件,其提供get,put方法完成快取的獲取及新增。

強引用:直接的物件引用

軟引用:若物件只有軟引用,系統記憶體不足時此物件會被gc**。

弱引用:若物件只有弱引用,此物件隨時會被gc**。

此外lrucache是執行緒安全的,使用時不必考慮同步問題。

使用:

lrucacheacache=new lrucache((int) (runtime.getruntime().maxmemory()/(1024*1024)/5))

@override

protected void entryremoved(boolean evicted, string key,

bitmap oldvalue, bitmap newvalue)

};

其中只需要重寫sizeof(返回bitmap的大小),跟entryremoved(刪除bitmap)方法。當然也可以自定義類。

注意bitmap的儲存是以鍵值對的形式儲存,獲取,存放,刪除形式如下:

acache.put("bitmap", null);

acache.get("bitmap");

acache.remove("bitmap");

disklrucache用於實現儲存裝置快取。通過將儲存物件寫入檔案系統實現快取。

其並非android sdk內容,這裡不做介紹。

picasso.with(mcontext).load(path)

.resize(dimenutil.dptopx(mcontext, 76),dimenutil.dptopx(mcontext, 76))

.into(imageview);

Android中清除快取

有時候會遇到要清除應用快取的功能,不經常用,總忘,所以在這裡總結,實際價值個人感覺不大。快取管理類 public class datacleanmanager return getformatsize cachesize 清空快取 param context public static boolea...

glide的快取策略

本文主要介紹了如何配置和管理glide中的快取,其中大部分內容都可以直接在官方wiki中找到,這裡只是進行了整理和彙總。言歸正傳,glide支援的二級快取 並不是 快取,因為從網路載入並不屬於快取 即記憶體快取和磁碟快取。磁碟快取 一般的快取指的就是磁碟快取,把網路上的快取到本地,這樣就不需要每次都...

redis 的快取策略

配置redis成為乙個快取,如果redis當做乙個快取來用,所有的key都有過期時間 1.配置快取 1 設定最大記憶體使用量 maxmemory 2mb 2 設定過期策略 maxmemory policy allkeys lru 該設定並不需要我們的應用使用expire 或相似的命令 命令去設定每個...