Android 持久存储

Android Persistent Storage

我已通读 Android Storage Options,但我有一个问题无法找到答案:

我应该使用 SQLite 来存储我的数据还是应该使用写入文件的 JSON 对象?

要求: 存储(最多)同一对象的数百个实例。每个实例都会有些复杂,存储对图像、较小对象等的引用。数据将存储在本地,并可选择云备份。所有数据将在启动时加载并在用户操作时保存。

我问这个的原因是因为我没有太多数据要存储 - 对于 SQLite 数据库,可能永远不会超过几百行,这让我觉得 SQL 太过分了。

此外,将我的数据导出到 JSON 文件将使我能够轻松地从不同的设备平台 import/export(我已经在 iOS 上这样做了)。

或者,也许有更好的选择?如果 Android 有一个 NSCoding 类型库,我可能会使用它。

任何意见都有帮助。

谢谢!

I have read through the Android Storage Options and I have a question that I haven't been able to find the answer to:

Should I use SQLite to store my data or should I use a JSON object that is written to a file?

您需要重新分析您的需求。

maybe there's a better option?

这取决于您的要求。 如果您的要求固定为简单的存储和检索,那么您可以查看 tinnyDB,它基本上使用 SharedPreferences 作为存储机制。但是,如果您需要基于案例库的 selection/query 数据,那么您应该使用 SQLite.

从目前的介绍来看,存储在文件中会更有优势。

考虑到每个 "unit" 少于 16 个属性,具有短标识符的 json 文件可能会生成比 SQL 等效表示更大的文件表示。 然而,本地文件操作将允许更容易的交互,以及更容易的支持 up/down。 此外,与 SQL 相比,文件 class 足够简单,产生的问题更少。 最后,根据选择,您将不得不评估所使用的操作。

如果你要比较数据,那么 SQL 可能会更快,但如果你只是 inputting/outputting 每个数据作为一个单独的对象,那么文件将是快如 SQL.

最后,请参与您的对象,不要只创建一个包含所有信息的文件。