我正在考慮如何在我的Android應用中理想地實現緩存層。適用於Android應用的緩存策略
目前我有通用的活動,它顯示來自遠程服務器的數據。數據由DTO TemplateInstance表示。每個模板實例都有一個包含的組件,其中每個組件都可以包含子組件。組件本身可以是文本(字符串),圖像(ByteArray)或時間(或通過子分類組件)。
目前,我的應用程序每次啓動Activity時都會從服務器加載TemplateInstance。
我現在想實現在應用一個緩存層,使得
- 於顯示數據的時間減少到最低限度,
- 數據被刷新,當它在服務器上更改。
我對這個策略是這樣的:
- 的啓動活動由ID加載從本地存儲的模板實例(如果存在)
- 一個UpdateService檢查中,如果模板實例背景已在服務器上更改(使用數據庫中的版本字段)
- 如果服務器版本大於本地版本或者沒有本地TemplateInstance,則從服務器檢索數據,更新本地存儲並更新視圖
我db4o的實現了這個已經成功。只是有兩個問題的解決方案:
- db4o的是GPL下(我不能用它)
- db4o的實在是太慢了,當我打開其中有許多圖像(4秒查詢)TemplateInstances
現在我正在尋找db4o的最佳替代品。我的想法大約是到現在爲止:
- SQLite是因爲
- 我不需要數據庫功能的數據結構,不適合 - 通過ID檢索對象將是足夠
- 保持在對象當應用程序退出,所以對象可以在啓動時重新實例
你認爲什麼是最好的解決辦法內存是顯著快
我對這個問題的研究把我帶到的EHCache和JCS,這是我從來沒有使用過。你認爲他們是適當的,也是在Android手機資源方面?或者你有其他建議嗎?
您可以從[here](https://stackoverflow.com/a/45086960/5835760)找到android應用程序的緩存實現。 – 2017-08-18 05:28:55