Android 领域 VS 房间

Realm VS Room in Android

我正在构建一个应用程序,我需要在其中使用一个数据库。我正在考虑使用 Room,因为它现在又新又热。但我也听说过很多关于 Realm 的好消息。有人可以指出使用每个的可能优势吗?

我做了研究并阅读了文档,但我自己没有经验可以理解它

Room docs

Realm docs

编辑:

已经有一段时间了,我可以指出使用 Room 的另一个原因。虽然您可以使用 Realm 和 Transformations 将事情与 LiveData 联系起来,但是使用 Room 可以直接 return 数据库的 LiveData(以及使用插件的 RXJava 类型),这将为您节省一些样板代码和麻烦。

编辑 2:

除了第一次编辑之外,Room 现在首次 class 支持 Kotlin 中的协程,因此如果您打算使用它们,那将是一个不错的选择 -> https://medium.com/androiddevelopers/room-coroutines-422b786dc4c5

我们推动使用数据库库的主要原因是它可以让我们对对象建模并使 CRUD 更容易,我对 Realm, it's really easy to set up and work, it's fast and flexible, but size of the library was an issue, it's possible to reduce APK size by splitting APKs on build target ABI but I preferred to use GreenDao 有很好的体验,因为它基于 SQLite,尽管我认为它与任何其他库一样有一些缺点,但它对我来说是最好的选择。

老实说,我还没有尝试过 Room,但通过简要查看文档,您会发现它对开发人员更加灵活和友好,作为 Google 粉丝,我更喜欢使用 [=21= 】 伙计们的图书馆!正如我之前所说,我更喜欢 层而不是原生 SQLite 而不是 全新的数据库库 .

我会在我的下一个项目中试用 Room,并在稍后的更新中在这里分享我的经验,希望对您有所帮助。

境界

一个比较快捷方便的库,所有链接都简单实现了,跟数据库的面向对象有关。优秀的文档。也许是目前在移动设备上存储数据的最佳选择之一,缺点只能是 apk 文件的大小增加 2.5 MB。

房间

Google I/O 2017 上提出的一个有趣的解决方案是在 Android OS 上使用数据库的最佳解决方案。尽管有必要使用明确的 sql-requests,但这个库非常方便,我个人很喜欢它。在性能上处于领先地位,所以我建议您选择这个特定的库。这样做的一大优势是基于内置的 SQLite 数据库。由于这个解决方案是Google提交的,所以很快就会流行起来,因此,随之而来的问题的解决方案也就不存在了。

Realm 使用更多 RAM 并增加 apk 大小和构建时间。所以我更喜欢房间

有比较:https://github.com/AlexeyZatsepin/Android-ORM-benchmark