Android App Bundle
简介
Android App Bundle (AAB)是 Google Play 中的推荐的应用发布格式。通过使用 AAB 来发布应用,可以缩减应用大小、简化发布流程,同时还可启用各种高级分发功能。
在 2021 年 8 月,新应用将需要使用 Android App Bundle 才能在 Google Play 中发布,对于旧应用更新暂无要求。大小超过 150 MB 的新应用必须使用 Play Feature Delivery 或 Play Asset Delivery。
目前游戏常用的 OBB 方式将不再推荐使用!请游戏做好迁移准备,特别新游戏推荐使用 AAB 方式。
支持情况
Android App Bundle 目前已在 Android Studio 3.2 及以上版本、 Unity 2017.4.17 & 2018.3 及以上版本、 Cocos Creator 2.0.9 及以上版本支持。
推荐的方式
Google 提供 Play Feature Delivery 或 Play Asset Delivery 两种方法以支持 AAB 方式。Play Feature Delivery 一般用于非游戏类应用,对于游戏请使用 Play Asset Delivery 。
Play Asset Delivery
Play Asset Delivery (PAD) 将 App Bundle 的优势带到游戏中。它允许超过 150 MB 的游戏替换旧版扩展文件 (OBB),方法是将包含游戏所需的所有资源的单个工件发布到 Play。PAD 提供了灵活的分发模式、自动更新、压缩和增量修补功能,并且可免费使用。
Play Asset Delivery 使用 Asset Pack,Asset Pack 由 Asset(如纹理、着色器和声音)组成,但不包含可执行代码。通过 Dynamic Delivery,游戏可以按照以下三种分发模式自定义如何以及何时将各个 Asset Pack 下载到设备上:安装时分发(install-time)、快速跟进式分发(fast-follow)和按需分发(on-demand)。
分发模式
-
install-time Asset Pack 在用户安装应用时分发。这些 Asset Pack 以拆分 APK(APK 集的一部分)的形式提供。它们也称为“预先”Asset Pack;可应用启动时将立即使用这些 Asset Pack。这些 Asset Pack 会增加 Google Play 商店上列出的应用大小。用户无法修改或删除这些 Asset Pack。
-
fast-follow Asset Pack 会在用户安装应用后立即自动下载;用户无需打开应用即可开始 fast-follow 下载。此类下载不会阻止用户访问应用。这些 Asset Pack 会增加 Google Play 商店上列出的应用大小。
-
on-demand Asset Pack 运行时,由游戏逻辑控制,决定是否下载和安装。
分发模式的大小上限
- 每个 fast-follow 和 on-demand Asset Pack 的下载大小上限为 512 MB。
- 所有 install-time Asset Pack 的总下载大小上限为 1 GB。
- 一个 Android App Bundle 中的所有 Asset Pack 的总下载大小上限为 2 GB。
- 一个 Android App Bundle 中最多可以使用 50 个 Asset Pack。
建议
-
选择安装时分发(install-time)。游戏在使用 Play Asset Delivery 难免会面临对安装时分发(install-time)、快速跟进式分发(fast-follow)和按需分发(on-demand)三种模式的选择,在此建议游戏直接使用安装时分发模式。安装时分发模式与快速跟进式分发对比,安装时分发比有较为清晰的使用场景,Google 在 Play Asset Delivery 中也没有明确指明两者的区别。为避免使用复杂度和不必要的风险推荐使用安装时分发,不使用快速跟进式分发。 对于安装时分发模式的总大小为 1 GB,一般游戏在开始的几个版本或者很长一段时间内不会超过此大小,因此游戏初期可以放心使用。
-
在业务增长后可以考虑使用增加按需分发模式,将非必须的 Asset Pack 放入按需分发,需要注意是使用按需分发需要接入 Play Core API 查询按需分发下 Asset Pack 的情况。
AAB 与 CDN 分发资源
AAB 的推出用于替代 OBB 方式,并不会禁止游戏使用 CDN 方式分发和更新资源。Google 的文档中指出的 “使用 PAD,所有 Asset Pack 均在 Google Play 上托管和提供,因此您无需使用内容分发网络 (CDN) 向玩家提供游戏资源。”并不是强制要求不能使用 CDN 分发资源。
Unity 上应用 Play Asset Delivery
Google 已提供了十分详细的指导文档,请仔细阅读针对 Unity 构建。
Cocos2d-x 上使用 Android App Bundle
请查看文档:Cocos2d-x 使用 Android App Bundle 指南
加入 Play 应用签名计划
**使用 AAB 必须加入 Play 应用签名计划,更多信息可以查看文档使用 Google Play 应用签名、对应用进行签名。
测试以及技术支持
使用 Play Asset Delivery 后无需特别测试,如果使用 按需分发(on-demand)模式可以参考 测试 Android App Bundle 和 在本地测试模块的安装 进行测试。