我正在考虑如何在我的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