Android記憶體優化之磁碟快取

2021-09-07 10:29:58 字數 1048 閱讀 9864

基於以上的缺點有時候又須要第二種快取,那就是磁碟快取。大家應該都用過新聞client,非常多都有離線功能,功能的實現就是磁碟快取。

在android中用到的磁碟快取大多都是基於disklrucache實現的,詳細怎麼使用呢?

open()方法接收四個引數。第乙個引數是資料的快取檔案位址,第二個引數是當前應用程式的版本,第三個引數是同乙個key能夠相應多少個快取檔案。一般都是傳1,第四個引數是最多能夠快取多少位元組的資料,10m?

// but if not mounted, falls back on internal storage.

//建立磁碟快取檔案。首選sdcard,假設sdcard沒有掛載或者沒有sdcard則獲取應用預設的cache資料夾

public static file getdiskcachedir(context context, string uniquename)

try catch (namenotfoundexception e)

return 1;

}

disklrucache mdisklrucache = null;

try

} catch (ioexception e)

//加入快取

public void addbitmaptocache(string key, bitmap bitmap)

// also add to disk cache,把快取放入磁碟快取

synchronized (mdiskcachelock)

}}//獲取快取

public bitmap getbitmapfromdiskcache(string key) catch (interruptedexception e) {}

}if (mdisklrucache != null)

}return null;

}

以上是磁碟快取的建立和用法。在實際操作中記憶體快取和磁碟快取是配合起來使用的。一般先從記憶體快取中讀取資料,假設沒有再從磁碟快取中讀取。

Android記憶體優化之LeakCanary

leakcanary是檢查記憶體洩漏的神器 雖然我沒檢查出來啥記憶體洩漏 是我 寫的ok還是我的開啟方式不正確?不管怎麼說 是必要的工作 學習自依賴dependenciespublic class extends private refwatcher refwatcher override publ...

android記憶體優化

1 使用option進行壓縮。public static bitmap createimagethumbnail string filepath catch exception e return bitmap public static int computesamplesize bitmapfac...

android記憶體優化

android因其系統的特殊性,安裝的軟體預設都安裝到記憶體中,所以隨著使用者安裝的軟體越來越多,可供執行的程式使用的記憶體越來越小,這就要求我們在開發android程式時,盡可能的少占用記憶體。根據我個人的開發經驗總結了如下幾點優化記憶體的方法 建立或其他方式獲得的物件如不再使用,則主動將其置為n...