sharedUserId:当应用已经上市时,可以安全地进行更改吗?

时间:2010-07-15 09:20:52

标签: android userid sharedpreferences

对于我们的应用程序的下一个版本,我想更改sharedUserId,因为我们现在使用的内部控制仪表板应用程序必须写入其他应用程序的设置文件。

但是由于该应用程序已安装在许多手机上,这是一个问题吗?我在模拟器上运行了一些测试,我在设备日志中看到了无法写入* .bak版本的首选项文件的例外情况。不确定是多么重要。奇怪的是,即使使用另一个Linux用户ID创建了shared_prefs文件夹,安全设置似乎仍然有效。

之前有人试过这个吗?

2 个答案:

答案 0 :(得分:27)

再次回答我自己的问题

不,这不安全。由于通过Android电子市场更新应用不会删除数据库和偏好文件,新版本将无法读取或写入这些文件(因为它们已创建)在不同的Linux用户ID下),更新后应用程序将崩溃。您必须要求您的用户完全卸载并重新安装该应用程序,这当然不推荐。

作为一般规则,我从中得出结论: 每当您开始开发新应用时,请务必设置手动android:processandroid:sharedUserId属性!如果您不需要它,它不会受到伤害,但它可以让您完全控制哪些应用可以访问此应用的私有资源。

答案 1 :(得分:2)

截至目前尚无解决方案,但主演注册问题可能会让Google解决此问题:

http://code.google.com/p/android/issues/detail?id=1227

http://code.google.com/p/android/issues/detail?id=14074