今天我尝试更新我的应用程序。但是当我上传到apk时,更新大小等于应用程序大小。
为什么所有更新都大于或等于应用大小,我的更改是3或5 mb。 但是,当玩家尝试更新应用程序时,他们不想再次下载整个游戏。 附:我正在使用unity3d。
答案 0 :(得分:0)
好吧,当您推送新版本时,它是当前用户的更新,但它是新用户的全新安装软件包。 Google Play将为您处理更新或安装阶段。您的用户对他们在Google Play中的需求没有任何选择。
编辑(使情况更清楚):
Google使用(或至少直到现在)Delta updates
(或他们所谓的Smart updates
)来更新Google Play上的应用。
这已在Google的Android操作系统设备中实现 在Android 2.3或更高版本上运行。 Google工程师估计 智能更新的大小仅为完整更新的三分之一 平均。
他们从2012年开始使用它:
自2012年以来,Google Play就一直使用增量算法,而我们最近 推出了另一种增量算法bsdiff (created by Colin Percival),我们的实验表明该算法可以将增量大小减小 与某些APK的先前算法相比,提高了50%或更多。 Bsdiff专门针对产生更有效的增量 通过利用特定方式来利用本地库 编译的本机代码在版本之间进行更改。为了最有效, 本机库应未压缩存储(压缩会干扰 使用增量算法)。
所以不用担心,如果您仅在新版本的应用程序中更改了一些代码,则您的用户无需再次下载整个应用程序。但是,如果您在应用程序中更改了整个代码,那么他们当然必须再次下载整个应用程序,因为它现在是全新的。如果您不希望Google处理更新,则可以在服务器端执行此过程。
来源:
https://en.wikipedia.org/wiki/Delta_update
https://android-developers.googleblog.com/2016/07/improvements-for-smaller-app-downloads.html
希望这能回答您的问题。
答案 1 :(得分:0)
我想您可能会对Google Play在下载活动与更新活动中显示应用程序数据大小的方式感到困惑。可以理解的是,因为它们没有提供有关列出的文件大小仅仅是更新还是整个应用程序大小的上下文。
答案是,取决于。
@Silver很好地解释了其更新后的算法如何处理数据下载,但我认为您的困惑在于在不同Play活动中显示的可感知文件大小。
根据所做的更改,可能需要重新下载整个应用程序的较小或较大部分。例如,如果您更改了enums
的列表,或者添加了另一种语言的strings.xml
文件,那么您可能希望这是一个很小的更新。但是在您的整个程序中,文件已更新以处理新更改。根据这些更改在程序层次结构中的何处发生,用户的下载量可能会比预期的要大。
对于主要版本(即AppVersion-MAJOR.MINOR.PATCH
),由于许多基本库已更改,用户可能必须重新下载整个应用程序。
磁盘上的大小提示:尽可能利用托管API,以便将处理能力和文件大小外包给API,而不是全部在用户设备上本地运行。虽然您将不得不使用数据(Wi-Fi或其他方式)进行API调用;简洁的JSON不需要太多数据。