公開に関する考慮事項

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

理想的には、Android NDK コードで作成したアプリには、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 ビットの両方をサポートする必要があります。

注: 新規アプリと更新版アプリはすべて、64 ビット版アプリを含める必要があります。Google Play ストアでは、64 ビットに対応しているデバイスに対して 32 ビットアプリの提供を停止しました。多くの Chromebook が 64 ビットをサポートしています。ChromeOS でアプリのユーザーが継続してアプリを利用できるようにするため、64 ビット バージョンを含めるようアプリをできるだけ早く更新することをおすすめします。

ARM 変換

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

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

                                                                               
組み込む ABIChromeOS のサポート

arm64

arm32 / arm64

中程度(変換あり)

arm32 / arm64 / x86_32 / x86_64

最高