【发布时间】:2011-05-22 04:17:43
【问题描述】:
Android 中的 SQLite 是否有其他替代方法可以将数据持久保存在手机中?我正在寻找类似 iOS coredata 的东西或更简单的东西,比如键值存储。如果我们需要将它嵌入到应用程序中,体积相对较小的东西也很好。
感谢您的帮助。
【问题讨论】:
标签: android core-data persistence key-value
Android 中的 SQLite 是否有其他替代方法可以将数据持久保存在手机中?我正在寻找类似 iOS coredata 的东西或更简单的东西,比如键值存储。如果我们需要将它嵌入到应用程序中,体积相对较小的东西也很好。
感谢您的帮助。
【问题讨论】:
标签: android core-data persistence key-value
如果您只需要一个简单的存储几个键/值对,SharedPreferences 是您的最佳选择。如果你正在寻找比 Core Data 更强大的东西,你应该试试greenDAO。与 Core Data 一样,greenDAO 是对象和数据存储之间的一层(iOS 上的 Core Data 通常也采用 SQLite)。
【讨论】:
greenDAO 支持分离/合并内存映射吗? stackoverflow.com/questions/40399878/…
我对iOS一无所知,但看看SharedPreferences
【讨论】:
在 Android 中持久化数据有几种不同的方法。阅读this Android article 了解它。
【讨论】:
您可以查看http://jdbm.sourceforge.net/:78kb jar,事务,将保存到文件中。
【讨论】:
您可以序列化为 xml。看看 Simple http://simple.sourceforge.net/ 它的大小不到 500kb。
【讨论】:
推荐三种方法来存储您的 Android 应用程序的数据(根据 Android 文档)。
如果您需要保存设置、配置、用户凭据 您可以使用 SharedPreferences。 优点:SharedPreferences 中保存的数据比静态全局变量要好。 因为它是线程安全的,所以即使杀死应用程序,数据也不会消失。
如果你需要保存大数据(例如加速度计数据、gps 数据),而这些数据很频繁,你可以使用 SQLite 数据库。
但是,如果您只是存储大数据但很少处理它们,最好保存到文件中。但请确保一次缓存数据并保存/附加到文件(因为 I/O 操作是 CPU 密集型的,并且会消耗更多的电量)。
【讨论】:
Exist an alternative call REALM 是一个完整的库,用于管理类似对象的数据库,类似于 ActiveRecord(在 Ruby on Rails 中)。他的优势之一是交易速度。但要小心,因为是一个新库,首先阅读所有文档可能是个好主意。
【讨论】: