gpt4 book ai didi

android - 为什么更新一个android应用程序可以让它出现两次?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:16:42 26 4
gpt4 key购买 nike

我对我的应用程序做了很多更改:数据库方案、图形、代码等。最大的更改是我重命名为完全不同的包名称。 applicatgio 在 manifeste.xml 文件中有相同的名称和 Id,apk 有相同的名称,具有相同的数字签名。

然而,当使用 ./adb install -r myapp.apk 时,myapp 在菜单中出现了两次。当然,由于数据库存储在以包名作为名称的目录中,因此用户感觉它的数据丢失了。

我怎样才能防止这种情况发生,如果我不能,我怎样才能使迁移自动化?

我有几条线索:提示用户卸载旧应用、将数据库从旧文件复制到新文件等。

最佳答案

直接的答案是应用程序出现两次,因为 Android Market 和 Android OS 将两个不同的包视为两个不同的应用程序。代码可以相同,但如果包不同,应用程序就完全不同

Android 电子市场通过应用程序包名称来识别应用程序。我怀疑这是因为操作系统按包跟踪程序......你不希望安装两个名称完全相同的包是有道理的,操作系统如何知道调用哪个?因此,如果您安装的软件包与已安装的软件包同名,操作系统会将其视为软件包升级,并让新程序访问旧用户数据。

您声明包共享相同的 ID,我假设这是用户 ID。这使您能够在包之间共享数据。更多信息在这里:

http://developer.android.com/guide/topics/security/security.html#userid

建议:对您的旧包发布一个小的升级,提供任何需要的粘合剂,让它与您的新包共享它的数据。然后使用代码发布新包以从旧包导入用户数据(需要相同的 UserId 和签名)。过渡对用户来说是无缝的(无需手动备份和导入)。

关于android - 为什么更新一个android应用程序可以让它出现两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/887226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com