Android 离线时缓存只读 REST API 响应

Android cache read-only REST API responses when offline

我正在考虑 2 种方法

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

哪种方法更好,为什么?

我不考虑 SQLite 数据库,因为我认为它更昂贵并且只适用于

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

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

您也可以选择 SharedPreferences(我个人不喜欢这种方法)或仅使用 parcelable 序列化 POJO 或 Java 文件序列化。这实际上取决于您想要实现的目标,因为任何方法都有利有弊。

如果是面向 SQL 的数据库,SQL 的用户群很大,很好,但您需要映射 不是那好.

Realm,可能是移动设备数据库中的下一件大事 (good),但它还不成熟,你必须在检索时使用具体的 classes ( 不好), 我可能想要一个 abstract/interface/base class.

Parcelable - 你必须写很多代码 (bad) 但速度相当快 (good)

Java 序列化 - 易于重构任何可序列化 class,无需序列化代码,良好 适用于中小型数据量。 不太好 因为它使用反射来处理大量数据。