微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android应用程式的缓存策略

我正在考虑如何在我的 Android应用程序中理想地实现缓存层.

目前我有一个通用活动显示来自远程服务器的数据.数据由DTO TemplateInstance表示.每个TemplateInstance都有一个包含组件的映射,每个组件都可以有子组件.组件本身可以是Text(String),Image(ByteArray)或Time(或通过子类分组).

目前,我的应用程序每次启动活动时从服务器加载一个TemplateInstance.

我现在想在应用程序中实现缓存层,所以

>显示数据的时间减少到最小,
>数据在服务器上更改时刷新.

我的策略如下:

>已启动的Activity将通过ID从本地存储装载TemplateInstance(如果存在)
>如果服务器上的TemplateInstance已更改(使用数据库中的版本字段),UpdateService将在后台进行检查
>如果服务器版本大于本地服务器版本,或者没有本地TemplateInstance,则从服务器检索数据,更新本地存储并更新视图

我已经使用db4o实现了这一点.这个解决方案只有两个问题:

> db4o是在GPL下(我不能使用它)
> db4o真的很慢,当我加载TemplateInstances有许多图像(查询4秒)

现在我正在寻找db4o的最佳替代品.我的想法到现在为止:

> sqlite不适合因为数据的结构
>我不需要数据库功能 – 通过ID检索对象就足够了
拿着内存中的物体会快得多
>应用程序退出时,内存状态应该保存到磁盘,所以启动时可以重新启动对象

你认为最好的解决方案是什么?

我对此的研究带给了我从未使用过的EHCache和JCS.你认为它们是否适合,还有关于Android手机上的资源?还是有其他建议?

解决方法

如果我正确地了解你的情况,我认为你应该实现你自己的缓存解决方案.

我将使用HashMap< id,TemplateInstance&gt ;. HashMap是可序列化的,您可以分别使用ObjectOutputStream和ObjectInputStream存储/加载它.

原文地址:https://www.jb51.cc/android/312442.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐