安卓持久化替代SQLite的方案

12

在Android中,除了SQLite以外,是否还有其他用于在手机上持久化数据的替代方案?我正在寻找类似于iOS CoreData或更简单的键值存储。如果我们需要将其与应用程序一起嵌入,则相对较小的大小也很好。

感谢您的帮助。

7个回答

6
如果您只需要一个简单的存储几个键值对的存储,那么SharedPreferences就是正确的选择。如果您正在寻找比较强大的存储库,类似于Core Data,那么您应该试试greenDAO。像Core Data一样,greenDAO在对象和数据存储之间提供了一层接口(iOS上的Core Data通常也使用SQLite)。

你知道greenDAO是否支持内存映射的分离/合并吗?http://stackoverflow.com/questions/40399878/detach-merge-with-ormlight-greendao - János

2

那不是只针对用户偏好设置吗? - Joshua Partogi
1
你可以随意使用它 - 这是一种相当常见的做法,用于存储少量持久数据。 - Haphazard
SharedPreferences在存储大量数据时并不是首选。 - atastrophic
SharedPreferences 实际上是用于存储基本数据类型的。 - akohout

2

2

1
根据 Android 文档,有三种推荐的方法可用于存储您的 Android 应用程序数据。
  1. 如果您需要保存设置、配置、用户凭证,可以使用 SharedPreferences。 优点:SharedPreferences 中保存的数据比静态全局变量更好。 因为它是线程安全的,即使杀死应用程序也不会丢失数据。
  2. 如果您需要保存频繁出现的大型数据(例如加速度计数据、GPS 数据),可以使用 SQLite 数据库。
  3. 但是,如果您只是偶尔处理大型数据,那么最好将其保存到文件中。但一定要缓存数据并一次性保存/追加到文件中(因为 I/O 操作会消耗更多的 CPU 资源和电力)。

1

0

存在一个备选方案叫做REALM,它是一个完整的库,用于像对象一样管理数据库,类似于Ruby on Rails中的ActiveRecord。它的优点之一是事务速度很快。但是要注意,因为它是一个新的库,也许最好先阅读所有文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接