Android上的数据持久化替代方案

Android上的数据持久化替代方案,android,sqlite,sharedpreferences,ormlite,data-persistence,Android,Sqlite,Sharedpreferences,Ormlite,Data Persistence,我想问一个关于android上数据持久性的建议。。事情是这样的:我有一个小的rest应用程序,它从RESTful API获取json数据,该API通过jackson反序列化到一个自定义对象中,然后我使用这个对象为我的ui提供数据,问题是我希望这个数据是持久的,或者至少是可缓存的 我看到了一些我可以使用的选项:ORM lite将对象保存在sqlite DB中,或者将JSON字符串保存到共享首选项中,或者保存到内存中的文件中,我已经在android开发者网站上阅读了关于此主题的文章 我的对象的结构至

我想问一个关于android上数据持久性的建议。。事情是这样的:我有一个小的rest应用程序,它从RESTful API获取json数据,该API通过jackson反序列化到一个自定义对象中,然后我使用这个对象为我的ui提供数据,问题是我希望这个数据是持久的,或者至少是可缓存的

我看到了一些我可以使用的选项:ORM lite将对象保存在sqlite DB中,或者将JSON字符串保存到共享首选项中,或者保存到内存中的文件中,我已经在android开发者网站上阅读了关于此主题的文章

我的对象的结构至少有15个字段,并且它与另一个对象相关


哪个选项比较好?

就我个人而言,我建议将JSON字符串保存为应用程序数据区域中的文件,至少假设它不会太大以至于解析速度慢。通常,解析JSON相当快

但是,如果您需要存储此JSON对象的多个版本,那么DB可能是最好的选择


我不建议以这种方式使用SharedReference。

这实际上取决于一些其他变量

共享首选项非常适合于iterable键/值对,但并不是真正为关系数据设计的。它们还用于存储有限数量的数据,而不是任意大的数据集。例如,您可以将用户名保存在SharedPref中,但可能不会保存用户在每个级别中获得的每个分数的完整历史记录,也不会保存每个级别的定义

SQLite在关系数据方面做得更好,因为它是一个关系数据库,但如果您一次只想保存一个对象,那么它可能有点过头了。通常,您需要设置一个内容提供商,但我认为ORMLite会为您处理这个问题

所以:如果您在任何给定的时间只存储这个json对象的一个或两个实例,可能只是为了方便起见而共享pref。如果要存储任意数量的数据及其相关数据,请使用SQLite数据库