Android应用程式的缓存策略

Android应用程式的缓存策略,第1张

概述我正在考虑如何在我的 Android应用程序中理想地实现缓存层. 目前我有一个通用活动显示来自远程服务器的数据.数据由DTO TemplateInstance表示.每个TemplateInstance都有一个包含组件的映射,每个组件都可以有子组件.组件本身可以是Text(String),Image(ByteArray)或Time(或通过子类分组). 目前,我的应用程序每次启动活动时从服务器加载一个 我正在考虑如何在我的 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存储/加载它.

总结

以上是内存溢出为你收集整理的Android应用程式的缓存策略全部内容,希望文章能够帮你解决Android应用程式的缓存策略所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1133006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存