安卓中的王国 VS 房间

我正在开发一个应用程序,我需要在里面使用一个数据库。我正在考虑使用房间,因为它现在是新的和热门的。但我也听说了很多关于王国的好事。有人能指出使用这两种方法的可能优点吗?

我做了研究,读了文件,但我自己没有经验去理解它

室内医生

王国文件

编辑:

已经过去一段时间了,我可以指出另一个使用 Room 的理由。虽然你可以使用领域和转换来绑定 LiveData,但是使用 Room 你可以直接返回数据库的 LiveData (以及使用插件的 RXJava 类型) ,这将为你节省一些样板代码和头痛。

编辑2:

除了第一次编辑,Room 现在在 Kotlin 有一个一流的 coroutine 支持,所以如果你打算使用它们,它将是一个不错的 https://medium.com/androiddevelopers/room-coroutines-422b786dc4c5

39896 次浏览

我们推动使用数据库库的主要原因是,它让我们建模我们的对象,使 CRUD 更容易,我有一个很好的经验与 王国,它真的很容易设置和工作,它的快速和灵活,但库的大小是一个问题,它是可能的,以减少 APK 大小通过分裂构建目标 ABI 的 APK,但我更喜欢使用 青岛,因为它是基于 SQLite,虽然我认为它有一些缺点,像任何其他库,但它是我的最佳选择。

说实话,我还没有试过 Room,但是通过简单的浏览文档,你会发现它对开发人员来说更加灵活和友好。作为一个 Google 粉丝,我更喜欢使用 Google 的库!就像我之前说的,我更喜欢 覆盖本机 SQLite 的层而不是 全新的数据库库

我将在下一个项目中尝试 Room,并在稍后的更新中分享我的经验,希望有所帮助。

王国

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

房间

Google I/O 2017上提供了一个有趣的解决方案,它是在 Android 操作系统上使用数据库的最佳选择。尽管有必要使用显式的 sql 请求,但是这个库非常方便,我个人很喜欢它。在性能方面处于领先地位,因此我建议您选择这个特定的库。这种方法的一大优点是基于内置的 SQLite 数据库。由于这个解决方案,由谷歌提交,它将很快成为流行,因此,将没有问题,找到解决方案的问题随之出现。

王国使用更多的内存和增加的 apk 大小,构建时间。所以我更喜欢房间。

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