Android 应用包是一种发布格式,它包含应用的所有已编译代码和资源,并将 APK 生成和签名延迟到 Google Play。
Google Play 使用应用包为每个设备配置生成和提供优化的 APK,因此只有运行应用所需代码和资源才会下载到设备。您不再需要构建、签名和管理多个 APK 来优化对不同设备的支持,用户获得的下载文件更小,更优化。
大多数应用项目构建支持提供优化 APK 的应用包并不需要太多工作。如果您已经按照既定约定 组织应用的代码和资源,则可以使用 Android Studio 或 使用命令行 构建签名的 Android 应用包 并 上传到 Google Play,然后优化 APK 提供将成为一项自动化的优势。
使用应用包格式发布应用时,您还可以选择使用 Play Feature Delivery,它允许您向应用项目添加功能模块。这些模块包含仅根据您指定的条件才包含在应用中的功能和资源,或者在运行时通过下载 使用 Play Core 库 才能获得。
使用应用捆绑包发布应用的游戏开发者可以使用 Play Asset Delivery:Google Play 的解决方案,用于交付大量游戏资产,它为开发者提供了灵活的交付方式和高性能。
观看以下视频,了解为何应使用 Android 应用捆绑包发布应用。
压缩下载大小限制
使用 Android 应用捆绑包发布有助于您的用户以最小的下载量安装您的应用,并增加 **压缩下载大小**。也就是说,当用户下载您的应用时,安装您的应用所需的压缩 APK 的总大小(例如,基本 APK + 配置 APK)不得超过 4 GB。任何后续下载,例如按需下载功能模块(及其配置 APK),也必须满足此压缩下载大小限制。资产包不计入此大小限制,但它们确实有其他 大小限制。
如果 Play 管理中心发现您的应用或其按需功能的任何可能下载超过 最大大小限制,您将收到错误。
请记住,**Android 应用捆绑包不支持 APK 扩展 (*.obb
) 文件**。因此,如果您在发布应用捆绑包时遇到此错误,请使用以下资源之一来减小压缩 APK 下载大小
- 确保您 启用所有配置 APK,方法是为每种类型的配置 APK 设置
enableSplit = true
。这将确保用户仅下载在他们的设备上运行您的应用所需的代码和资源。 - 确保您 缩减应用,方法是删除未使用的代码和资源。
- 遵循最佳实践,进一步 减小应用大小。
- 考虑将仅由部分用户使用的功能转换为 功能模块,您的应用可以稍后按需下载。请记住,这可能需要对您的应用进行一些重构,因此请确保首先尝试其他建议。
其他注意事项
以下是使用 Android 应用捆绑包构建或提供应用时的已知问题。如果您遇到此处未描述的问题,请 报告错误。
- 侧载应用(即未使用 Google Play 商店安装的应用,并且缺少一个或多个必需的拆分 APK)的局部安装在所有经过 Google 认证的设备和运行 Android 10(API 级别 29)或更高版本的设备上都会失败。通过 Google Play 商店下载您的应用时,Google 会确保安装应用的所有必需组件。
如果您使用动态修改资源表的工具,从应用捆绑包生成的 APK 的行为可能出乎意料。因此,在构建应用捆绑包时,建议您禁用此类工具。
您可以在功能模块的构建配置中配置与基本模块(或其他模块)中的属性冲突的属性。例如,您可以在基本模块中设置
buildTypes.release.debuggable = true
,并在功能模块中将其设置为false
。此类冲突可能会导致构建和运行时问题。请记住,默认情况下,功能模块会继承来自基本模块的一些构建配置。因此,请确保您了解应该保留哪些配置,以及在 功能模块构建配置 中应该省略哪些配置。
其他资源
要详细了解 Android 应用捆绑包,请参考以下资源。
博客文章
- 构建您的第一个应用捆绑包
- 新的发布格式对 Android 未来的意义
- 帮助您在 Google Play 上开发、发布和发展业务的新功能
- 最新的 Android 应用捆绑包更新,包括附加语言 API
- Patchwork Plaid - 模块化故事
- Google 圣诞老人追踪器 - 迁移到 Android 应用捆绑包
- Play 管理中心的开发者工具
视频
- 关于 Play 应用签名的所有内容
- 构建您的第一个应用捆绑包
- 应用捆绑包:使用 Bundletool 和 Play 管理中心进行测试
- 应用捆绑包的可自定义交付和测试构建的轻松共享
- 优化应用大小和提高 Google Play 上安装量的全新工具