Android 首选项数据存储与现有房间实现

Bin*_*ink 7 android datastore android-preferences android-room

我\xe2\x80\x99m 是Android 开发新手,我\xe2\x80\x99m 即将为我的应用程序实现简单的首选项。看起来 SharedPreferences 是一个死胡同,并且有很多缺点,所以我\xe2\x80\x99m 看看 DataStore(非 Proto)与 Room。 由于我已经在我的应用程序中大量使用 Room 和 LiveData(是的,我知道 Flow 是新热门)来处理其他事情,那么使用 DataStore 也有什么好处吗? 我知道 Room 被推荐用于大型或复杂的数据,因为我\xe2\x80\x99已经审查了以下内容,但我\xe2\x80\x99m希望更有经验的开发人员可以为我进一步击中这个家:

\n

https://android-developers.googleblog.com/2020/09/prefer-storing-data-with-jetpack.html

\n

https://proandroiddev.com/lets-explore-jetpack-datastore-in-android-621f3564b57

\n

https://medium.com/better-programming/jetpack-datastore-improved-data-storage-system-adec129b6e48

\n

谢谢。

\n

ian*_*ake 7

您链接的官方博客文章有一个专门关于 Room 与 DataStore 的部分:

如果您需要部分更新、引用完整性或支持大型/复杂数据集,则应考虑使用 Room 而不是 DataStore。DataStore 非常适合小型、简单的数据集,并且不支持部分更新或引用完整性。

用户偏好几乎总是属于“小而简单的数据集”,可以轻松地表示为键/值对(或者如果您想使用 Proto DataStore 则更复杂的东西),不需要表模式、SQL 查询的开销、自定义解析或关系数据库的“关系”部分。

  • 我知道帖子里的内容。我读到它是说不要使用 Room,除非你有特定的理由这样做。我不清楚的是,如果我已经将 Room 用于其他用途,我是否应该利用它?既然我已经在我的应用程序中利用了 Room,那么不为 DataStore 添加所有库是否有意义? (2认同)