SharedPreferences数据可以被破坏吗?

时间:2015-07-17 18:34:55

标签: android sharedpreferences

首先,不要评判我。

我在我的SharedPreferences中存储了一个JSON,它有大约200KB。它是一个拥有超过30个自定义和大对象的JSON,每次用户登录时我都需要这些数据(我知道这听起来很糟糕,但这是我目前的情况)。我没有每次下载,而是将其保存到我的偏好设置中。

从我读过herehere开始,我认为我没有问题。但是,我尝试登录和退出多次,而不是看到我的30个对象,我只得到16.当我记录这个JSON的大小时,它返回0(因为它不完整而且没有EOF字符?)。

我尝试saving its value to a file但是在创建文件时它只是不起作用(显然没有抛出异常)。

我想确定这是问题,然后转移到另一个解决方案,比如存储到数据库中,但我只是没有找到有关它的信息。

所以,我的问题是,首选项是“可靠的”,因为它的数据是安全的,而且xml文件不会被破坏吗?

编辑:我没说清楚。我正在将我的JSON转换为String并将其存储为我的首选项中的值,当我检索它时,我将其转换回JSON。

我误解了Darren的回答,并提出了将这个JSON保存在一个单独的文件中的想法,除了偏好(更难被破坏?)。我稍后会尝试并发布结果。

2 个答案:

答案 0 :(得分:0)

SharedPreferences不应该被破坏,除非存储它的内存有问题。

答案 1 :(得分:0)

我不认为共享首选项数据可能已损坏,但可以通过生根设备并访问/data/data/YOUR_PACKAGE_NAME/shared_prefs/来更改(黑客攻击),因此建议在使用共享首选项时对其进行加密。

以下是加密共享偏好的解决方案。 https://github.com/scottyab/secure-preferences

希望有所帮助