为什么Android应用程序更新/补丁大小就像它的设置文件?

试图从PlayStore进行更新时,我只是想知道。

一般来说,对Windows来说,更新时,下载文件并修补它们。 从尺寸的angular度来看,相比3.5GB左右的设置,这些尺寸要小得多。

那么为什么它不适用于ANDROID应用程序呢? 例如WhatsApp的任何更新都与其原始设置文件(〜18 MB)几乎相同。

Solutions Collecting From Web of "为什么Android应用程序更新/补丁大小就像它的设置文件?"

尽管Play商店将其更新为“更新”,但实际上却是再次下载了整个Android应用 在某种程度上,它仍然是一个更新,因为你实际上升级到一个更新的apk版本,但不是你喜欢的方式。 这是对您的带宽征税,但这很容易。

但是,您的应用程序的设置(共享首选项)和数据(SQLite数据库或自定义文件)在更新/安装过程中仍然存在,如果您再次手动卸载并安装应用程序的新版本,情况就不会如此。

如果应用程序的数据库模式已经在两个版本之间进化,则Android会在启动时通知应用程序有机会升级其剩余数据的生命周期方法,从而在启动时通知应用程序不是全新安装以前的版本。

当你和Windows进行比较的时候,操作系统和更新服务器都来自微软,他们必须一起工作来找出需要推送的东西(.dll,.ini,.sys等),更新包的格式/压缩以及安全影响(某种加密方式可防止任何人拦截流量造成恶意软件入侵)。

Google没有为Play商店提供这样的标准更新机制, 请参阅更新 ,我相信每个其他应用商店都是如此。 显然,开发人员不能自己推出一个,因为在设备和服务器端都由Google处理更新。

但是,开发人员当然不会对此感到不满。 测试这个新的apk是非常方便的,如果你错过了某些东西,看看它是否工作并上传了相同的内容,而不是摆弄推动和破坏应用程序的变化。 无论如何,带宽是很便宜的。


我刚刚发现在Google I / O 2012上, Google宣布他们正在使用某种增量编码算法智能更新技术。 这个想法是计算两个APK之间的DIFF (有点像我们为两个源代码文件之间的文本所做的那样),在服务器端创建一个补丁,并且只通过线路发送补丁。

AndroidPolice和TechCrunch报道,该功能在Play商店当年晚些时候开始实施。

谷歌在I / O上表示,开发者不需要做任何事情来启用这个功能,而据Android安全警察的人士透露,这个功能在昨天晚上或者今天早上悄然上线。

你可以在这个视频中看到它的行动。 请注意,一旦进度条达到40-50%,应用程序就会开始安装。 这绝对是不错的选择,因为这不仅节省了谷歌千兆字节的带宽,而且纯粹的服务器端方法也意味着开发人员无需捣鼓任何东西。 也许,这就是它在android开发者网站上没有提及的原因,所以需要时间才能被发现。


就这样说,我个人的经历似乎与你的一致。 我看到我的应用程序更新大部分下载几乎整个应用程序。 也许这是因为我不经常下载。 跳过几个小修改也许并不罕见,也许应用程序变化太大,无法从所生成的修补程序中获得任何规模的好处。

没有什么比一个Android应用程序的“更新”。 它始终是一个完整的应用程序。 它被称为更新,因为它是当前安装在设备中的应用程序的新版本。

但是,当它是一个“更新”整个应用程序没有完全下载。 多年以来,Google Play仅下载应用程序的一部分,并针对当前安装的应用程序打补丁。 所以在20MiB的情况下,Google Play可以下载几兆字节来重建电话中的新版本。 谷歌的电话是智能应用程序更新或类似的东西。