SharedPreference与对象流写入文件的对比


编写PreferencesUtils工具类可以简单对象(可以缓存对象中所有public的简单属性)


另外研究了Preference存储与直接采用对象文件缓存方式的区别

第一次写文件时

1、效率,直接缓存对象文件比Preference快

2、大小,直接缓存对象文件比Preference文件小

3、缓存目录不同,Preference缓存在shared_prefs下,对象文件则根据我们的设置可以选择目录

在设置中有两个操作

清除缓存:会将data/应用程序/caches目录下的文件删除

清除数据:会将除lib目录下的所有文件删除,包括shared_prefs


意味着,如果我们缓存对象文件时选择的目录不是caches下,采用files或其它目录,其与preference这仅有的劣势也消失了


为什么Preference操作比对象流慢,文件大。本质上都是读写文件操作,但是Preference采用的是xml形式存储,这就意味着有多余的节点和多余的转换。


第二次加载的时候由于SharedPreferencesImpl 在ContextImpl中采取了Map对SharedPreferenceImpl进行缓存,所以它会表现得非常快。


接下来要讨论的就是SharedPreference的存储原理,看看其缓存机制是否适合经常更改的内容的对象。