问题描述
我想将使用.obb文件(〜70 MB)的Android应用(基本apk的〜40 MB)迁移到Android App Bundle格式。我知道,.obb文件中的资源将比基础部分更不频繁地更新。因此,用户无需在每次应用程序更新时下载完整的应用程序(40 + 70 = 110 MB),而只需下载更改的部分(〜40 MB)。
迁移后我可以使用什么为最终用户提供相同的体验(仅更新更改的部分)?
理想情况下,应该通过AssetManager来访问这些未更改的资源,就像它们位于资产目录中一样。
现在,我发现了Play Asset Delivery功能,该功能允许将某些资源移动到单独的模块中,以便在不同时间(安装时间/下载后立即/需要时)将其传输到设备。 我已经实现了安装时间模块逻辑,并通过内部+ alpha测试对其进行了测试。在整个测试过程中,我发现每次应用更新都会迫使Google Play下载完整的应用(〜110 MB),而不是已更改的部分(〜40 MB)。我不知道当我将应用程序发布到“所有人可用”的轨道时,这种情况是否会改变,我也找不到有关它的信息。因此,答案“如果没有更改,将不会重新下载安装时间模块;这是描述此内容的文档:”,这是完全可以接受的,并且是最受欢迎的方法之一。
解决方法
tldr;是的,在生产中,下载大小会较小。
当您将某个应用发布到正式版本(无论是APK还是App Bundle)时,Play都会在此版本与以前的应用版本之间生成应用补丁,因此您的用户只需下载这两个版本之间的差异。结果是,如果您不修改动态模块的内容,用户仍将收到未更改模块的更新,但下载量将很小。
请注意,实际上,下载更新的前几对用户可能仍会获得完整大小。