旧应用程序在升级后会被卸载吗?


11

我想知道什么时候可以为应用程序提供升级,显然那里有新的APK。那是不是旧的APK已卸载而新的APK已安装?

Answers:


16

不完全不。卸载软件包时,它还会删除与此软件包有关的其他数据:例如,应用程序自己的私有数据,SD卡上的数据,该应用程序的默认首选项。它还通过意图广播告知其他感兴趣的应用程序您已删除该应用程序。收到该广播的其他应用可能会基于此采取进一步的措施:例如,启动器(主屏幕应用)将从该应用中删除桌面快捷方式和小部件,因为它们将不再起作用。

升级软件包时(即,用具有相同软件包名称和更高版本代码的新APK文件替换),旧版本将停止,因此该应用程序不再运行。旧的APK文件将被删除,新的APK文件将替换它,但不会执行其他卸载操作:私人应用程序数据和默认首选项将保留,并且不会发送卸载广播。相反,将广播一个不同的意图,以告知任何感兴趣的应用程序该软件包已更新。

因此,当删除旧的APK文件时,升级的效果与卸载旧的软件包然后安装新的软件包完全不同。

在Google Play中,如果开发人员启用了增量更新(称为Google的智能更新),情况可能会有所不同。

在增量更新中,仅下载两个版本之间的更改并将其应用于现有的APK。例如,如果您有一个大小为15MB的应用程序,而开发人员决定更改背景图片,则无需再次下载整个应用程序,您只需下载增量(差异)即可,其中包括图片。然后复制旧的APK,将新内容注入到旧的APK副本中,如果成功,则将旧的APK删除。最终结果是更新的APK。


这是一个明确的答案!您能告诉我如何在安装新更新时删除旧的应用程序数据吗?
lifeLongLearner's

@lifeLongLearner只需使用“设置”中的“清除数据”按钮即可,就像其他时间一样。
丹·赫尔姆,2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.