ChromeOS デバイスのアプリサポート

一部の Google Chromebook の機種では、Google Play ストアを使用して Android アプリをインストールできます。このドキュメントでは、Android アプリをインストールできる Chromebook、Chromebox、Chromebase について説明します。

概要

ほとんどの Android スマートフォンには ARM チップセットが搭載されています。ただし、多くの ChromeOS デバイスでは x86 チップが使用されています。 Kotlin または Java で記述された簡単なアプリでは、この違いは重要ではありません。しかし、ネイティブ コードで記述されたアプリ(ゲームエンジンで作成されたアプリなど)では、デバイスのチップセットが重要な問題になる可能性があります。

ネイティブ コードを含むすべてのアプリとゲームが、4 つの主要な 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 Package Kit(APK)サイズ

モノリシック APK に含まれる個々の ABI はサイズが大きくなります。これは次の問題に ユーザーのディスク使用量、アプリのダウンロード サイズ、アプリが影響を受けるかどうか サイズ制限が適用されますこれを回避するには、 Android App Bundle

App Bundle を使用すると、Android Studio 内から 4 つの ABI をすべて簡単にバンドルできます。 ダウンロードサイズを調整できますまた、動的配信、 ユーザーが要求された場合にのみ、サイズの大きいゲーム コンテンツをダウンロードできます。App Bundle を使用できない場合は 以前のマルチ APK を 動作しません。

32 ビットビルドと 64 ビットビルド

すべての Android アプリは 64 ビットビルド バージョンを提供する必要があります。ARM デバイスと x86 デバイスでは、32 ビットビルドの提供はオプションです。詳しくは、Android 64 ビット ドキュメントをご覧ください。

64 ビットビルドのみを提供すると、必要なビルド ターゲットの数が減り、 また、ゲームを実行できるデバイスの種類も制限されます。 対象 たとえば、他のハードウェアの制限により、古い Chromebook の多くは 32 ビットの Android しか実行できない 多くのアプリをサポートしています。そのようなデバイスで確実にアプリを実行できるようにするには、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 最良