android - 重新安装 apk 的行为是什么?

标签 android google-play

当您通过 Play 商店/苹果商店安装应用程序时,在线商店最终会为您提供最新信息。

例如:如果您有 v1 版本并发布到 v2,商店本身会通知您并提供升级选项。

这次更新到底发生了什么?完整的 apk 被再次下载或者是增量/差异类型的(仅下载已更新的文件)。

当您安装场外 apk(无需订阅)时...无论是调试还是发布...如何进行更新?

例如:我在 android studio 中生成了 apk(“生成签名包”或从调试中获取),我将其传输到 android 并安装了它……如果我更新 apk 并再次执行该过程……我会得到同一个 apk 的两个不同版本还是重叠?

最佳答案

所有 APK 都带有特定的证书签名,如果匹配则只会更新,否则您需要卸载现有的。

更新的大小取决于您发布更新的方式。如果您上传 APK,那么将进行全尺寸下载。如果您上传应用程序包,则只会下载差异大小。

如果开发人员编写了正确的数据库迁移逻辑,则在更新时它会保留应用程序数据和数据库记录。

例如。在版本 1 中,用户表有 5 个字段,而在版本 2 中,您又添加了 2 个字段。然后您需要编写迁移逻辑(Alter table query),以便版本 1 用户数据正确映射到版本 2 用户表。 引用this post了解更多详情。

调试 APK 和发布 APK 将具有不同的签名,您不能使用调试版本更新发布应用,反之亦然。

关于android - 重新安装 apk 的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58010237/

相关文章:

java - Unity - AndroidJavaObject.来自另一个线程的调用

android 我不明白我的子类 ImageView 中的长按检测

android - 如果将应用程序升级到较新的Android版本,用户会松散吗?

google-play - 待发布还有 2 天在 Google Play 上,这是个问题吗?

Android adb pm 禁用组件

android - fragment 中的 softInputMode

java - Android 应用程序在模拟器上运行正常,但在真实设备上崩溃

android - 更改签名 key ,保留包名

java - 2020 年 11 月 1 日/ 'Account Hold' : is it mandatory to display an explanatory message to 'Account Hold' users?

android - 错误 400 : Invalid Value, 无效