目前我有一个通用活动显示来自远程服务器的数据.数据由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> ;. HashMap是可序列化的,您可以分别使用ObjectOutputStream和ObjectinputStream存储/加载它.
总结以上是内存溢出为你收集整理的Android应用程式的缓存策略全部内容,希望文章能够帮你解决Android应用程式的缓存策略所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)