离线

时间:2016-07-22 10:26:29

标签: android json sqlite caching android-lru-cache

我正在考虑两种方法

  • 将JSON响应缓存为JSON文件
  • 使用Reservoir缓存Java POJO(JSON响应已经反序列化使用Retrofit)。

数据描述:
我想在此处缓存的数据是来自电子商务网站的20个产品的列表。它们不是复杂的对象,并且没有嵌套,因为这里使用了jsonapi.org规范。 通过Retrofit,我已经可以获得20个产品POJO,其中Product是Java模型类,属性少于10个。

哪种方法更好,为什么?

我不考虑SQLite数据库,因为我觉得它更贵,只适用于

  • 需要数据完整性
  • 有写操作,例如购物车
  • 关系复杂的大量数据

1 个答案:

答案 0 :(得分:1)

这实际上取决于两个主要因素: 1.用例 2.特定系统的舒适度。

你可以使用任何你认为合适的人。如果你真的需要像数据结构这样的数据库和一些复杂的查询机制,SQLite就可以了。你可以用一些ORM系统包装SQLite,如GreenDAO或ORMLite,如果它可以帮助你。还有Realm,更多面向对象的方法(有它的问题)。

您也可以选择SharedPreferences(我个人不喜欢这种方法),或者只是将带有parcelable或Java Serialization的POJO序列化为文件。这实际上取决于你想要实现的目标,因为任何方法都有其优点和缺点。

对于面向SQL的数据库,有一个很大的SQL用户群良好,但你需要映射不那么好

Realm,可能是移动设备数据库中的下一件大事(),但它还不成熟,你必须在检索时使用具体的类(错误),我可能想要一个抽象/接口/基类。

Parcelable - 您必须编写大量代码(错误),但速度相当快(良好

Java序列化 - 易于重构任何可序列化的类,无序列化代码,良好适用于中小型数据。 不太好,因为它使用了反射。