【发布时间】:2015-06-30 01:58:20
【问题描述】:
我正在构建一个需要本地存储表数据实体的社交媒体应用程序。此数据还必须连接到服务器以检索和更新用户的信息。我们的团队已经使用核心数据构建了一个 iOS 客户端,尽管我们正在寻找 android 中的存储选项。使用 SQLite 是要走的路吗?任何想法将不胜感激。
【问题讨论】:
我正在构建一个需要本地存储表数据实体的社交媒体应用程序。此数据还必须连接到服务器以检索和更新用户的信息。我们的团队已经使用核心数据构建了一个 iOS 客户端,尽管我们正在寻找 android 中的存储选项。使用 SQLite 是要走的路吗?任何想法将不胜感激。
【问题讨论】:
你应该看看Realm,它有用于 Objective-C、Swift 和 Android 的客户端。
来自他们的 GitHub 存储库的描述:
特点
移动优先:Realm 是第一个从头开始构建的直接在手机、平板电脑和可穿戴设备中运行的数据库。
简单:数据直接作为对象公开并且可以通过代码查询,从而消除了对 ORM 充满性能和维护问题的需求。此外,我们努力将 API 减少到极少数类:我们的大多数用户都可以直观地使用它,只需几分钟即可启动并运行简单的应用程序。
现代:Realm 支持简单的线程安全、关系和加密。
快速:Realm 在常见操作上甚至比原始 SQLite 更快,同时保持极其丰富的功能集。
如果您熟悉 RxJava,您可能需要查看SQLBrite,这是 Square 的解决方案。
【讨论】:
是的,Sqlite 是 android 的默认存储解决方案。然而,它有一个名为ContentProvider 的环绕。 ContentProvider 可以与Loaders 一起使用并提供异步数据加载。 ContentProvider 可用于修改联系人和合并帐户,请参阅this guide。但是ContentProvider 可能看起来很棘手,如果您更喜欢 ORM,您可以使用同样使用 sqlite 的 ORMLite 或 GreenDAO。
【讨论】: