android - SharedPreferences 值检索如何工作 "under the hood"

标签 android sharedpreferences android-sharedpreferences

共享首选项作为键值对存储在 xml 文件中。这是事实。 我还没有找到关于击球手的任何文档,但是......当试图找到并加载某个键的值时,它实际上是如何在 xml 中查找键的?它是将整个 xml 文件加载到内存中然后搜索 key ,还是使用其他对内存更友好的方法来遍历每个 key ?

我遇到了一个应用程序,它在共享首选项中存储大量键值对而不是使用数据库(有很多!)我的直觉是这会占用大量内存,因为它会加载将整个文件存入内存只是为了检索特定项目。

任何人都可以阐明这是如何“在引擎盖下”工作的吗?

谢谢!

最佳答案

Does it load the entire xml file into memory and then searches for the key...?

是的,至少在the standard implementation .从技术上讲,SharedPreferences 是一个接口(interface),但 AFAIK SharedPreferencesImplContext 用于 getSharedPreferences() 等方法的实现.

关于android - SharedPreferences 值检索如何工作 "under the hood",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48712654/

相关文章:

android - onStop() 和 onDestroy() 可能不会被调用。他们有什么好处?

java - 旋转 以度为单位的 View 变换(仅在 x 轴上)

Android 填充文本字段

java - SharedPreferences 默认模式

android - java.lang.SecurityException : MODE_WORLD_READABLE no longer supported

android - 打开电子邮件中的链接以在应用程序而不是网站中进行确认

android - Firebase A/B 实验是否支持在 Android 上发送 'data' 类型通知

android - 将日期保存到共享首选项

android - 替代 addPreferencesFromResource 作为其弃用

android - PreferenceManager.getDefaultSharedPreferences 中的上下文有什么用?