您可以使用 Google Play 商店在多款 Google Chromebook 上安装 Android 应用。本文档描述了您可以安装 Android 应用的 Chromebook、Chromebox 和 Chromebase 设备。
概览
大多数 Android 手机都采用 ARM 芯片组。然而,许多 ChromeOS 设备使用 x86 芯片。对于使用 Kotlin 或 Java 编写的基本应用来说,这种差异并不重要。但是,对于使用原生代码(包括通过游戏引擎创建的应用)编写的应用来说,设备中的芯片组可能是一个重要的考虑因素。
理想情况下,所有包含原生代码的应用和游戏都应支持所有四个主要的 Android ABI(应用二进制接口):armeabi-v7a (arm32)、arm64-v8a (arm64)、x86 (x86_32) 和 x86_64。这样可以为每台设备提供最佳性能和最低功耗。例如,基于 cmake 的 build.gradle
文件可能包含
Groovy
externalNativeBuild { cmake { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } }
Kotlin
externalNativeBuild { cmake { abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64") } }
Android 应用包 (APK) 大小
单一 APK 中的每个 ABI 都会增加其大小。这可能会影响用户的磁盘使用量、应用下载大小以及应用是否受 Play 商店大小限制的影响。避免这种情况的最佳方法是使用 Android App Bundle。
App Bundle 让您可以轻松地从 Android Studio 中捆绑所有四个 ABI,而不会增加用户的下载大小。它们还使其易于利用 Dynamic Delivery,允许用户仅在请求时下载大型游戏内容。如果 App Bundle 对您来说不可行,您可以使用旧的 多 APK 方式实现类似的行为。
32 位和 64 位构建版本
所有 Android 应用都必须提供 64 位构建版本。32 位构建版本对于 ARM 和 x86 设备都是可选的。有关详细信息,请参阅 Android 64 位文档。
虽然仅提供 64 位构建版本可以减少所需的构建目标数量和您的测试范围,但它也限制了可以运行您的游戏的设备类型。例如,由于其他硬件限制,许多旧款 Chromebook 只能运行 32 位 Android 应用,尽管它们拥有 64 位 CPU。为确保您的应用可以在这些设备上运行,请同时包含 32 位和 64 位支持。
ARM 转换
x86 Chromebook 会尽可能尝试转换 ARM 代码,但转换会降低性能并增加电池使用量。为了获得最佳用户体验,请提供 x86 构建版本。如果您无法提供,请在您的构建版本中同时包含 arm32 和 arm64 ABI,因为某些 x86 Chromebook 可能无法转换 arm64 代码。
虽然 arm32 转换在所有支持 Android 的 Chromebook 上都可用,但并非所有 Chromebook 都能转换 arm64 代码。这意味着如果您的游戏只有 arm64 构建目标,则它无法在大量 ChromeOS 设备上使用。如果您无法发布 x86 二进制文件,请在您的构建版本中同时包含 arm32 和 arm64 ABI。
包含的 ABI | 对 ChromeOS 的支持 |
---|---|
arm64 | 差 |
arm32 和 arm64 | 可接受(通过转换) |
arm32、arm64、x86_32 和 x86_64 | 最佳 |