作者 / Google Play 产品经理 Dom Elliott
自 2018 年 5 月发布 Android App Bundle 以来,我们见证了开发者社区积极拥护这一全新发布格式,并受益于其简化的发布管理和高级分发功能。现在,有逾一百万款正式版应用在使用 App Bundle,Google Play 上排名前 1,000 的大多数应用和游戏均在此列,例如 Adobe、Duolingo、Gameloft、Netflix、redBus、Riafy 和 Twitter。
为了让更多用户体验到这些优势,并专注推广对所有开发者有益的现代 Android 分发技术,自 2021 年 8 月起,Google Play 将开始要求新应用使用 Android App Bundle 进行发布。该格式将取代 APK 作为标准发布格式。
现代 Android 应用分发
如果您尚未采用 App Bundle,这意味着您错过了以下优势:
- Android App Bundle: Google Play 使用 App Bundle 生成并优化 APK,以针对不同设备配置和语言进行分发。这种方式可令应用体积更小 (平均而言,比一般 APK 小 15%),下载速度更快,进而提升安装量,减少卸载量。
- Play 应用签名 : 以 App Bundle 方式分发需要 Play 应用签名,这种签名使用 Google 的安全基础架构避免了应用签名密钥丢失,并可以升级到加密性更强的新应用签名密钥。
- Play Feature Delivery : 超过 10% 的使用了 App Bundle 的热门应用都在使用 Play Feature Delivery,自定义将哪些功能模块交付给哪个设备,以及何时交付。它支持安装时交付、按条件交付和按需交付等三种模式。
- Play Asset Delivery : 以动态方式交付大型资源可以减少用户等待时间,同时缩减交付成本。使用 Play Asset Delivery 的游戏可以使用纹理压缩格式作为交付条件,以便用户只获得适合其设备的资源,避免浪费空间或带宽。
- 未来改进 : Play 应用签名将在不久后开始向适合的应用推出 APK Signature Scheme v4,允许其访问较新设备上即将推出的性能特性。请关注于 7 月 12 日举办的 Google 游戏开发者峰会,了解更多详情。
回顾: 自 2021 年 8 月起的相关变更
- Android App Bundle (AAB)
- Play Feature Delivery
- Play Asset Delivery
- 免安装 Android App Bundle (AAB)
注意,App Bundle 的要求仅适用于新应用,而现有应用及面向特定 Google Play 用户的私人应用目前无需遵从此要求。感谢为 App Bundle 的发展做出贡献的众多开发者,我们也期待在未来为开发者带来更多更新。
关于 Android App Bundle 的一些常见问题的回答
Q:相比 APK 而言,使用 App Bundle 开发应用需要多少工作量?
对于大多数应用而言,构建 AAB 文件来替代 APK 文件仅需要少量工作。这其中的关键是在构建时选择其他选项并按常规方式进行测试。App Bundle 是一种受主流构建工具支持的开源格式,包括 Android Studio、Gradle、Bazel、Buck、Cocos Creator、Unity、Unreal Engine 和其他引擎。在 Play Core 原生 SDK、Play Core Java SDK 和 Play Core Kotlin SDK 的助力下,无论用户偏好哪种编码环境,都可以轻松开始使用可选的高级 App Bundle 功能。
Q:App Bundle 为何不支持扩展文件 (OBB)?为何游戏应使用 Play Asset Delivery?
APK 要求使用单独的文件 (OBB) 来向用户推送更多资源。但是,由于 OBB 不具有签名且存储在应用的外部存储中,所以不够安全。借助 Play Asset Delivery (PAD),用户可以在 Play 商店中将大小超过 150MB 的游戏整体发布为单个 App Bundle,从而替换掉 OBB。除了能实现更顺畅的发布流程和更灵活的推送模式,相比于以前的扩展文件,PAD 具有更多优势: 其资源的增量补丁面向大型应用进行了优化,这意味着更新需要的设备存储空间比 OBB 少得多。因此,其快速跟进的安装模式提升了安装率和商店转化率。最终,由于 ASTC 现在支持约 80% 的设备,纹理压缩格式的定位条件让您可以向支持该功能的设备推送 ASTC。您可以定位众多 Android 设备,同时高效利用可用硬件和设备存储空间。
Q:如果使用 App Bundle,我是否可以继续通过多分发渠道/应用商店发布应用?
当然可以,您可以通过多种方式实现。您可以使用通用的应用签名密钥或使用针对不同渠道的唯一应用签名密钥,包括面向 Google Play 的唯一应用签名密钥。您可以在本地面向所有分发渠道构建并签名工件,或者从 Google Play 中下载可分发的 APK,并发布于其他渠道。从 Google Play 下载的 APK,无论其是通过 Play 管理中心中的 App Bundle 资源管理器还是 Play Developer API 进行下载,均由 Play 应用签名管理的同个密钥进行签名。
Q:如果要发布一个新应用,我能决定我的应用签名密钥内容吗?
可以,我们会在 Play 管理中心中提供此选项。创建新应用时,您可以选择向 Google 提供应用签名密钥。您可以借此在本地留存应用签名密钥副本,例如生成与 Play 同样秘钥签名的应用版本,并在其他渠道上发布。很快,Play 管理中心将帮助您更加轻松地进行首次发布应用,只要在第一次发布到开放渠道之前,您都可以更改应用签名密钥。
Q:在 Google Play 上分发应用时,我如何确保按我偏好的方式向用户推送我的应用?
您可以随时利用 Play Store 或 Play 管理中心中的 App Bundle 资源管理器下载并检查工件,并通过 Play Developer API 验证应用。此外,App Bundle 的代码透明性 是一项可选的全新功能,可检查设备上运行的代码是否是开发者最初构建并签名的代码。
Q:如果我已经在 Google Play 上发布了一款应用,我能否在不提供现有应用签名密钥的副本前提下开始使用 Play 应用签名?
若想使用 Play 应用签名,您需要提供应用签名密钥的副本,因为 Google Play 需要使用此签名副本进行签名,并向您的现有用户提供版本更新。这种分发格式适合多数开发者,超过一百万款应用在正式版中使用 Play 应用签名。我们将在不久后面向现有应用提供额外选项,允许开发者执行密钥升级来选择加入 Play 应用签名。此选项意味着 Play 应用签名可以针对新安装及其后续更新使用新的唯一密钥。不过,要做到这一点,当您上传 App Bundle 时,您还需要上传使用旧密钥签名的原 APK,这样一来,Google Play 即可继续向现有用户推送更新。
Q:我可以更改我的应用签名密钥吗?
当然,一些应用可以请求在 Play 管理中心中针对新安装应用进行 应用签名密钥升级。Google Play 将使用新密钥对新安装应用和应用更新进行签名,并使用旧版应用签名密钥对密钥升级前已安装应用的用户进行的更新进行签名。很快,Play 应用签名密钥的升级还将添加对 APK Signature Scheme v3 密钥轮替的支持。这将促使更多应用可以选择密钥升级,使借助升级密钥签名的应用覆盖更多用户。