ChromeOS 设备对应用的支持

您可以使用 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 应用包

应用包让您可以在 Android Studio 中轻松捆绑所有四个 ABI,而不会增加用户下载的大小。它们还使您能够轻松利用 动态交付,让用户仅在需要时下载大型游戏内容。如果应用包对您来说不可行,您可以使用旧的 多 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 代码。

尽管所有支持 Android 的 Chromebook 上都提供了 arm32 翻译,但并非所有 Chromebook 都能翻译 arm64 代码。这意味着,如果您的游戏只有 arm64 构建目标,那么它将无法在大量 Chrome OS 设备上使用。如果您无法提供 x86 二进制文件,请在构建中包含 arm32 和 arm64 ABI。

包含的 ABI 对 ChromeOS 的支持
arm64
arm32 和 arm64 良好(使用翻译)
arm32、arm64、x86_32 和 x86_64 最佳