作为最近发现NoSQL文档存储(namley CouchDB)的简洁之美的人,我发现自己非常诱人,需要持久存储简单的对象或小数组,以使用Json序列化程序将此数据存储为JSON字符串共享偏好。我看到的优点是:
mapper.writeValueAsString(myObject);
我看到的缺点:
我知道这种方法只适用于合理的小数据(但我认为同样适用于SharedPreferences),如果仅用于“保存配置”或类似的用例,性能命中可以忽略不计写/读是稀疏的。
我在所描绘的情景中寻找/反对这种方法的论据,或者我忽略或可能出现的问题。
答案 0 :(得分:1)
在SharedPreferences
中存储小数据对象是没有害处的。
但是,您应该记住,SharedPreferences
在多个进程中无法正常工作。因此,如果您计划跨进程使用它们,则应避免使用SharedPreferences。
答案 1 :(得分:0)
所以几年后我的发现是:
所以这取决于用例。也许对于缓存来说这可能没问题,因为如果数据在更新后损坏就会造成性能损失,另一方面缓存应该很快(内存层可以缓解这种情况)。
如果您需要结构化数据的数据存储,请使用Google的房间等数据库或ORM。