Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

Chrome OS デバイスによるアプリのサポート

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

概要

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

理想的には、ネイティブ コードで作成したアプリとゲームには、4 つの主要な 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 内から 4 つの ABI すべてを容易にバンドルできますが、ユーザーがダウンロードするサイズは大きくなりません。また、Dynamic Delivery の利用が容易になり、リクエストがあった場合にのみユーザーが大規模なゲーム コンテンツをダウンロードできるようにすることが可能です。App Bundle を使用できない場合は、従来のマルチ APK を使用して同様の動作を実現できます。

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

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

64 ビットビルドのみを提供する場合、必要なビルド ターゲットの数が減り、テスト サーフェスが縮小されますが、ゲームを実行できるデバイスの種類も制限されます。たとえば、従来の多くの Chromebook では、ハードウェアの他の制限により、CPU が 64 ビットであるにもかかわらず、32 ビットの Android アプリしか実行できません。そのようなデバイスで確実にアプリを実行できるようにするには、32 ビットと 64 ビットの両方をサポートする必要があります。

ARM 変換

x86 Chromebook は可能な限り ARM コードを変換しようとしますが、変換はパフォーマンスの低下とバッテリー使用量の増加を招きます。最適なユーザー エクスペリエンスを実現するには、x86 ビルドを提供する必要があります。提供できない場合は、arm32 と arm64 の両方の ABI をビルドに組み込んでください。これは、一部の x86 Chromebook では arm64 コードを変換できないためです。

arm32 はすべての Android 対応 Chromebook で変換できますが、arm64 コードはすべての Chromebook で変換できるわけではありません。つまり、ビルド ターゲットが arm64 のみのゲームは、多くの Chrome OS デバイスで使用できません。x86 バイナリを出荷できない場合は、arm32 と arm64 の両方の ABI をビルドに組み込んでください。

組み込む ABI Chrome OS のサポート
arm64
arm32 / arm64 中程度(変換あり)
arm32 / arm64 / x86_32 / x86_64 最高