在Android中共享偏好和内部存储之间有什么区别?数据存储在哪里



在Android中共享偏好与内部存储之间有什么区别?数据存储在哪里?看起来Android系统为每个应用程序分配了特定的空间。在使用共享的首选项时,我的应用程序用完了记忆并抛出了OutofMemory异常。如果我使用内部存储将这些数据保存到文件中,这会解决问题吗?如果内部存储还为应用程序使用相同的有限分配空间,则如何解决此问题?

共享流程将数据存储在键值对中。它主要将它们存储在RAM中,但也将副本保存到内部存储中。Android提供了用于存储代码,所有图形和任何临时数据的RAM,并且它是有限的。如果您存储了许多键值对(也许值为长String s),则确实可以将所有RAM用于应用程序并最终得到OutOfMemoryException。这表明共享互惠可能不是您要存储的数据的正确方法。

内部存储完全基于闪存。应用程序的约束较少,它们可以存储大量数据(例如图像)。内部存储有点像一个目录,因此您可以创建文件,在它们上读取/写入,删除它们等,因此它与键值对不同。

在Android中共享偏好与内部存储之间有什么区别?

内部存储是指您应用程序私有且用户不可见的板载闪光灯上的一个地方。

SharedPreferences是将数据存储在内部存储上的一种方法。

看起来Android系统为每个应用程序分配了特定的空间。

否,尽管他们将来可能会这样做。

在使用共享首选项时,我的应用程序用完了记忆并投掷OutofMemory Exception

OutOfMemoryError是指堆空间(RAM),而不是存储空间。

如果我使用内部存储将这些数据保存到文件中,这会解决问题吗?

可能,尽管这取决于您在做什么。

  • sharedPreference :将私有原始数据存储在键值对中。(存储小条目/数据)

  • 内部存储:将私有数据存储在设备内存上。(存储大数据集)

使用共享的首选项,您无需处理文件io。对于内部存储,您需要处理文件io。

如果您有大量数据,则应使用内部存储。另外,您需要避免存储不必要的数据。

有关更多信息,请阅读https://developer.android.com/guide/topics/data/data-storage.html

最新更新