清单中的android:installLocation是否会影响更新以及全新安装

时间:2013-08-07 15:34:40

标签: android installation android-manifest

我有两个问题:

1。 Android清单中的“android:installLocation”标记是否会影响更新以及全新安装?

我在市场上发布的应用程序根本没有“android:installLocation”,我想在清单中添加以下内容之一:

android:installLocation="auto"
OR
android:installLocation="preferExternal"

这会影响只更新其应用的用户吗?他们的应用程序可以转移到外部存储吗?

我的第二个问题是假设答案是“是”。

2。如果在更新期间移动了某个应用,那么与该应用关联的数据是否会受到影响?例如。数据库或共享首选项文件。

documentation表示“.apk文件保存在外部存储设备上,但所有私有用户数据,数据库,优化的.dex文件和提取的本机代码都保存在内部设备内存中。”

但我担心的是,系统可能执行完全卸载/安装周期而不是正常更新,这将擦除数据。这在我的情况下是不可接受的。

对不起,我不能通过实验自己回答这个问题,但我无法访问任何有外部存储设备。希望有人已经完成了上述工作,并可以这样或那样的方式确认结果。

额外信息: minSDK = 10 targetSDK = 17

感谢您的帮助:

1 个答案:

答案 0 :(得分:3)

回答你的第一个问题。是。它将影响现有用户的更新。

  

但我担心的是,系统可能不是正常更新   执行一个完整的卸载/安装周期,这将擦除数据。这个   在我的情况下是不可接受的。

唯一一次出现这种情况的原因是您更改了签名密钥。这是确保您的应用在Google Play上独一无二的关键。

严重的是,就这一点而言,你没有什么可担心的。

您的数据将保留在内部存储空间中。这对安全很重要。

只有将数据存储在SD卡和内部存储上的应用程序时才会出现问题。您必须考虑到数据可能不可用的事实。但就像我说的那样。为您的方案。你真的不必担心。