Über den Google Play Store können Sie Android-Apps auf mehreren Google Chromebooks installieren. In diesem Dokument werden die Chromebooks, Chromeboxes und Chromebases beschrieben, auf denen Sie Android-Apps installieren können.
Übersicht
Die meisten Android-Smartphones haben ARM-Chipsätze. Viele ChromeOS-Geräte verwenden jedoch x86-Chips. Der Unterschied ist für einfache Apps, die in Kotlin oder Java geschrieben wurden, nicht wichtig. Bei Apps, die in C/C++-Code geschrieben wurden, einschließlich der mit Game-Engines erstellten Apps, kann der Chipsatz im Gerät jedoch ein wichtiger Faktor sein.
Im Idealfall werden alle Apps und Spiele mit C/C++-Code mit allen vier wichtigen Android-ABIs (Application Binary Interfaces) ausgeliefert: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) und x86_64. So wird für jedes Gerät die beste Leistung und der niedrigste Akkuverbrauch erzielt. Eine CMake-basierte build.gradle-Datei könnte beispielsweise Folgendes enthalten:
Groovy
externalNativeBuild { cmake { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } }
Kotlin
externalNativeBuild { cmake { abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64") } }
Größe des Android-Pakets (APK)
Jede ABI in einem monolithischen APK erhöht die Größe. Dies kann sich auf die Festplattennutzung Ihrer Nutzer, die Downloadgröße der App und darauf auswirken, ob die App von den Größenbeschränkungen des Play Store betroffen ist. Am besten verwenden Sie Android App Bundles, um das zu vermeiden.
Mit App Bundles können Sie alle vier ABIs in Android Studio bündeln, ohne dass sich die Downloadgröße für Ihre Nutzer erhöht. Außerdem können Sie so Dynamic Delivery nutzen, damit Nutzer große Spielinhalte nur bei Bedarf herunterladen. Wenn Sie keine App-Bundles verwenden können, können Sie das ältere Multi-APK verwenden, um ein ähnliches Verhalten zu erzielen.
32-Bit- und 64-Bit-Builds
Für alle Android-Apps muss eine 64-Bit-Build-Version bereitgestellt werden. Ein 32-Bit-Build ist sowohl für ARM- als auch für x86-Geräte optional. Weitere Informationen finden Sie unter 64-Bit-Versionen von Android.
Wenn Sie nur 64-Bit-Builds bereitstellen, wird die Anzahl der erforderlichen Build-Ziele und die Testfläche reduziert. Allerdings wird dadurch auch die Anzahl der Geräte eingeschränkt, auf denen Ihr Spiel ausgeführt werden kann. Aufgrund anderer Hardwarebeschränkungen können viele ältere Chromebooks beispielsweise nur 32-Bit-Android-Apps ausführen, obwohl sie 64-Bit-CPUs haben. Damit Ihre App auf diesen Geräten ausgeführt werden kann, müssen Sie sowohl 32‑ als auch 64‑Bit-Unterstützung hinzufügen.
ARM-Übersetzung
x86-Chromebooks versuchen, ARM-Code nach Möglichkeit zu übersetzen. Die Übersetzung verlangsamt jedoch die Leistung und erhöht den Akkuverbrauch. Für eine optimale Nutzererfahrung sollten Sie x86-Builds bereitstellen. Wenn das nicht möglich ist, müssen Sie sowohl arm32- als auch arm64-ABIs in Ihre Builds aufnehmen, da einige x86-Chromebooks arm64-Code möglicherweise nicht übersetzen können. Viele ältere Chromebooks können beispielsweise aufgrund anderer Hardwarebeschränkungen nur 32-Bit-Android-Apps ausführen, obwohl sie 64-Bit-CPUs haben. Damit Ihre App auf diesen Geräten ausgeführt werden kann, müssen Sie sowohl 32‑ als auch 64‑Bit-Unterstützung hinzufügen.
Die arm32-Übersetzung ist auf allen Android-kompatiblen Chromebooks verfügbar, aber nicht alle Chromebooks können arm64-Code übersetzen. Wenn Ihr Spiel nur arm64-Build-Ziele hat, ist es für viele ChromeOS-Geräte nicht verfügbar. Wenn Sie keine x86-Binärdateien bereitstellen können, müssen Sie sowohl arm32- als auch arm64-ABIs in Ihre Builds aufnehmen.
| Enthaltene ABIs | Unterstützung für ChromeOS |
|---|---|
| arm64 | Schlecht |
| arm32 und arm64 | OK (mit Übersetzung) |
| arm32, arm64, x86_32 und x86_64 | Höchstes Tempo |