No results found
We couldn't find anything using that term, please try searching for something else.
Android App Bundle 是您上传到 Google Play 的一种文件(文件扩展名为 .aab) 。 app bundle 是经过签名的二进制文件,可将应用的代码和资源组织到不同的模块中,如图 1 所示。各个模块的代码和资源的组织方式都与 APK 中的相似,之所以如此,是因为每个模块
Android App Bundle 是您上传到 Google Play 的一种文件(文件扩展名为 .aab
) 。
app bundle 是经过签名的二进制文件,可将应用的代码和资源组织到不同的模块中,如图 1 所示。各个模块的代码和资源的组织方式都与 APK 中的相似,之所以如此,是因为每个模块都可以作为单独的 APK 生成。然后,Google Play 会使用 app bundle 生成向用户提供的各种 APK,如基本 APK、功能 APK、配置 APK 以及多 APK(多 APK 适用于不支持拆分 APK 的设备) 。以蓝色标识的目录(如 drawable/
、values/
和 lib /
目录)表示 Google Play 用来为每个模块创建配置 APK 的代码和资源。
包含一个基本模块、两个功能模块和两个资源包的 Android App Bundle 的内容。
注意: 您 is 构建 需要 为 每个 的 应用 或 一个 Bundle 。 也就是说 , 如果 您 使用 从 应用 多 个 的 应用 , 且 每个 都 具有 专门 的 , 则 需要 为 每个 应用 的 。
以下列表更详细地介绍了 App Bundle 的部分文件和目录:
提供经过优化的应用所需的一个基本组件就是 Android 5.0(API 级别 21)及更高版本上提供的拆分 APK 机制。拆分 APK 与常规 APK 非常相似,其中包含经过编译的 DEX 字节码、资源和 Android 清单。不过,Android 平台能够将安装的多个拆分 APK 视为一个应用。也就是说,您可以安装多个拆分 APK,它们共用代码和资源,并且在设备上看起来像是安装的一个应用。
的 好处 is 拆分 是 能够 将 单体式 为 更 小 的 , 这些 可 “ 按 ” 在 上 。 单体式 APK is 指 是 一个 中 应用 所 的 全部 和 对应 的 和 。
例如 , 一个 APK is 包含 可能 只有 少数 需要 的 所 对应 的 和 , 而 另 一个 则 只 或 所 对应 的 。 这些 APK is 安装 可以 根据 的 或 的 需要 和 。
下面介绍可以一起安装在设备上以形成完整应用体验的不同类型的 APK。本页的后面几节将介绍如何配置应用项目以支持这些 APK。
假设我们有一款包含三个功能模块并支持多种设备配置的应用。下面的图 1 展示了该应用的各个 APK 的依赖关系树可能是什么样子的。请注意,基本 APK 构成树的头部,所有其他 APK 都依赖于基本 APK。(如果您想知道这些 APK 的模块在 Android App Bundle 中的表示方式,请参阅 Android App Bundle 格式。)
使用拆分 APK 构建的应用的依赖关系树
注意 , 您 自己 这些 , Google 会 根据 您 通过 Studio 的 来 为 您 完成 。 如 了解 的 和 , 、 和 Bundle 。
由于搭载 Android 4.4(API 级别 19)及更低版本的设备不支持下载和安装拆分 APK,因此 Google Play 会为这些设备提供名为 multi-APK 的单个 APK,该 APK 针对相应设备配置进行了优化。也就是说,multi-APK 提供完整的应用体验,但不包含不必要的代码和资源,例如用于其他屏幕密度和 CPU 架构的代码和资源。
但是,它们包含了应用所支持的所有语言的资源。例如,这让用户无需另外下载 multi-APK 即可更改应用的首选语言设置。
– 无法 在 以后 按 。 如 将 在 此 中 , 必须 在 时 按 或 。
请注意,有了 app bundle,您无需为应用支持的每种设备配置分别构建、签署、上传和管理 APK。您仍然只需为整个应用构建和上传一个 app bundle,剩下的工作可交由 Google Play 处理。因此,无论您是否打算支持搭载 Android 4.4 或更低版本的设备,Google Play 都为您和您的用户提供了灵活的服务机制。
通过 app bundle,设备只会下载运行应用所需的代码和资源。因此,对于语言资源,用户的设备只会下载与设备设置中当前所选的一种或多种语言相符的应用语言资源。
当用户在设备设置中切换语言时,Google Play 可能需要下载并安装一些额外的拆分 APK,然后应用才能以新语言显示。
切换语言后,Google Play 会尝试立即下载其他语言。如果用户设备处于离线状态、下载失败或者资源太大,Google Play 会在设备条件更有利时重新尝试在后台下载。在搭载 Android 9.0(API 级别 28)或更低版本的设备上,如果应用在安装新语言拆分 APK 期间在前台运行,则应用会被终止。
如果您的应用要求随时在设备上提供所有语言,您可以在构建配置中停用语言拆分。
如果您的应用需要独立于设备设置中所选的用户语言下载其他语言(例如,实现应用内语言选择器),您可以使用 Play Core 库按需下载相应语言。