2

我最近读到 Google 正在使用File-by-File Patching和另一种算法BsDiff - Delta update,它修补 apk 文件并仅提供从 Play Store 下载的更新大小的 apk。

我浏览了以下博客和链接:

1) https://android-developers.googleblog.com/2016/12/saving-data-reducing-the-size-of-app-updates-by-65-percent.html

2) https://github.com/andrewhayden/archive-patcher/blob/master/README.md 用于“逐个文件修补”

3) https://android-developers.googleblog.com/2016/07/improvements-for-smaller-app-downloads.html用于“BsDiff”补丁

我在我的 Linux 上安装了 BsDiff 并将其应用于新旧 apk,但它仍然与应用程序的大小相同,而且当我在 Play Store 上更新它时,它在安装时显示完整大小。

此外,我下载了“逐个文件修补”代码并通过它制作了 apk,并在 Play Store 上对其进行了更新,但相同,没有减小 apk 的大小。

因此,如果有人这样做或知道这一点,请给出您的答案,以便我可以在 Play Store 上进行缩小大小的应用更新的应用更新。

4

2 回答 2

3

您无需执行任何操作即可触发这些 APK 大小缩减以进行更新。您绝对不需要下载 BS Diff 或补丁代码。Play 会自动为您执行此操作。但是,根据应用程序的受欢迎程度,会按需应用一些优化。因此,如果您的应用程序不是很受欢迎,可能需要一段时间才能看到优势。

如果您希望 Google 能够应用尽可能多的优化,您应该选择加入Google Play App Signing (如果您还没有的话)。这为 Google Play 提供了优化应用更新的最大能力,虽然它现在不影响这些优化,但它可能会在未来影响。

于 2018-03-30T07:01:06.573 回答
1

一个 APK 有四种不同的大小,分类为:

  1. 原始 Apk 大小
  2. 下载大小
  3. 安装尺寸
  4. 更新大小

您主要关注原始 Apk 大小,这不会有太大差异。它是使用不同算法压缩 APK 的 google play 商店。这反过来又确保了 apk 的下载大小较小,从而减少了最终用户的移动数据消耗。

下载压缩的 APK 后,它将在用户的设备上解压缩,您将获得安装大小。此大小可能与原始大小不同,因为它将涉及对其执行的一些 JIT 和/或 AOT。

当涉及到更新大小时,您将 Apk 与您的更新一起上传到 Play 商店,然后 Google Play 商店将计算增量并将其交付给最终用户。然后,此增量将在设备上合并。此优化减少了更新大小,因此不会再次下载整个 APK,用户将节省成本。

总而言之,您可能不会看到对您的 apk 的原始大小有很大影响,但 Play 商店的优化将确保下载大小和上传大小是最佳的。

有关要应用的更多详细技术,您可以参考这篇文章。正如我所描述的,它提供了 apk 大小的剖析,并提供了减小大小的重要技巧。

于 2018-03-29T14:42:30.627 回答