Chrome 操作系统设备对 Android 应用的支持

您可以使用 Google Play 商店在多款 Google Chromebook 上安装 Android 应用。本文档介绍了您可以安装 Android 应用的 Chromebook、Chromebox 和 Chromebase。

概览

大多数 Android 手机都有 ARM 芯片组。不过,许多 Chrome 操作系统设备使用 x86 芯片。对于用 Kotlin 或 Java 编写的基本应用来说,这种差异并不重要。不过,对于用原生代码编写的应用(包括使用游戏引擎创建的应用)来说,设备中的芯片组可能是一个值得关注的重要问题。

理想情况下,所有包含原生代码的应用和游戏都应搭载全部四种主要 Android ABI(应用二进制接口):armeabi-v7a (arm32)、arm64-v8a (arm64)、x86 (x86_32) 和 x86_64。这样可让每台设备实现最高的性能和最低的电池消耗。例如,基于 cmake 的 build.gradle 文件可能包含:

externalNativeBuild {
  cmake {
    abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
  }
}

APK 大小

单体式 APK 中的每个 ABI 都会使其增大。这会影响用户的磁盘使用量和应用下载大小,并且可能会遭到 Play 商店大小限制。为了避免此问题,最好的方法是使用 Android App Bundle。App Bundle 可让您在 Android Studio 中轻松捆绑全部四种 ABI,但不会使用户的下载内容增大。此外,还能让您轻松利用 Dynamic Delivery,从而允许用户只有在需要时才下载大型游戏内容。如果您无法使用 App Bundle,可以使用原来的多 APK 实现类似的行为。

32 位和 64 位 build

所有 Android 应用都必须提供 64 位 build 版本。32 位 build 对于 ARM 和 x86 设备都是可选的。如需了解详情,请参阅 Android 64 位文档

虽然仅提供 64 位 build 可以减少所需的 build 目标数量并减小测试面,但也会限制可以运行游戏的设备类型。例如,尽管有 64 位 CPU,但由于其他硬件限制,许多旧版 Chromebook 只能运行 32 位 Android 应用。为了确保您的应用可以在这些设备上运行,应同时支持 32 位和 64 位。

ARM 转换

x86 Chromebook 会尽可能尝试转换 ARM 代码,但转换操作会降低性能并增加电池用量。为了带来最佳用户体验,您应提供 x86 build。如果您无法提供,则应在 build 中同时包含 arm32 和 arm64 ABI,因为某些 x86 Chromebook 可能无法转换 arm64 代码。

虽然在所有 Android Chromebook 上都能进行 arm32 转换,但并非所有 Chromebook 都能转换 arm64 代码。这意味着,如果您的游戏只有 arm64 build 目标,它将无法在许多 Chrome 操作系统设备上运行。如果您无法提供 x86 二进制文件,则应在 build 中同时包含 arm32 和 arm64 ABI。

包含的 ABI 对 Chrome 操作系统的支持
arm64
arm32/arm64 好(通过转换)
arm32/arm64/x86_32/x86_64 最佳