对于我们应用程序的下一个版本,我想更改 sharedUserId,因为我们现在使用一个内部控制仪表板应用程序,该应用程序必须写入其他应用程序的设置文件。
但是由于该应用程序已经安装在许多手机上,这会是一个问题吗?我在模拟器上运行了一个小测试,我在设备日志中看到无法写入 *.bak 版本的首选项文件的异常。不确定这有多重要。奇怪的是,即使 shared_prefs 文件夹是使用另一个 Linux 用户 ID 创建的,安全设置似乎仍然有效。
以前有人试过吗?
最佳答案
再回答我自己的问题:
不,不安全。由于通过 Android Market 更新应用程序不会删除数据库和偏好文件,因此新版本将无法读取或写入这些文件(因为它们是创建的在不同的 Linux 用户 ID 下),并且应用程序将在更新后崩溃。您必须要求您的用户完全卸载并重新安装该应用程序,这当然不推荐。
作为一般规则,我由此得出结论:
每当您开始开发新应用时,请务必手动设置 android:process
和 android:sharedUserId
属性!如果您不需要它并没有什么坏处,但它可以让您完全控制哪些应用可以访问此应用的私有(private)资源。
关于android - sharedUserId : safe to change when app is already in market?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254157/