在android上缓存JSON数据:Room vs file



应用程序从网络中检索JSON格式的字符串,并对其进行解析以呈现给用户。

在以后或将来的会话中再次需要数据时,缓存数据的最佳方式是什么?

我正在考虑两种选择:房间和本地文件存储。

如果数据存储在一个文件中,则每次需要时都必须对其进行解析;但我认为从Room数据库检索数据需要一些时间。有人知道从计算成本的角度来看这两种操作的比较吗。

此外,假设我将所有数据存储在JSON字符串中,哪个选项将使用最少的存储空间?

谢谢,Marc

我想指出以下几点:

文件:

  1. 如果您将数据存储在一个文件中,您可能需要多次访问它来进行CRUD
  2. 每次需要数据时,都必须对其进行解析
  3. 您的应用程序必须向用户请求权限才能处理这些文件

房间:

  1. Room是一个SQLite抽象,它的开发完全是为了做您想要的事情,即在本地存储数据
  2. Room支持Kotlin协程,在这种情况下,DAO方法可以标记为挂起函数,以确保它们不会在主线程上执行。因此,在执行CRUD操作时,您的应用程序不会冻结
  3. 与将数据存储在文件中相比,Room为您的数据提供了安全性
  4. 使用本地比在文件中存储数据更快

在我看来,您应该使用Room,并在您的存储库/用例中实现单一真理源(SSOT(。

最新更新