美文网首页
Android SharedPreferences缺点分析

Android SharedPreferences缺点分析

作者: 在岁月中远行 | 来源:发表于2022-08-23 02:00 被阅读0次

接着上篇分析了SharedPreferences源码,这篇来分析sp的不足。

1 没有提供释放和进行移除的操作,会一直占用内存。

在ContextImpl有个静态属性sSharedPrefs

可以发现一共有5处引用到,但是有new对象出来,有put元素的。就是没有进行移除和释放的操作。这样就会一直占用内存。

2 不支持多进程。

当Mode设置为MODE_MULTI_PROCESS时

这个标志其实只是起到当访问这个sp实例的时候,会判断当前磁盘文件相对最后一次内存修改是否被改动过,如果是的话就重新加载磁盘文件再同步到磁盘上。

这种同步的作用不大,因为当多进程同时修改sp的值时,不同进程里的内存数据不会实时同步。

我们说的支持多进程是 当一个进程修改了数据,另一个进程能拿到最新修改的数据。显然不支持。

3 不支持局部更新。

我们拿apply方法分析,commit同理:

1 当修改一个键值对时,提交到内存后

2 它会把整个数据又重新写入到磁盘文件中,虽然我们只修改一个小点。一个键值对。

3 这样就会导致不必要的内存开销,不支持增量数据写入。

下篇写SharedPreferences可能会导致Anr原理和解决方案

和改造SharedPreferences进行跨进程通信

相关文章

网友评论

      本文标题:Android SharedPreferences缺点分析

      本文链接:https://www.haomeiwen.com/subject/bimwgrtx.html