App-Unterstützung für ChromeOS-Geräte

Über den Google Play Store können Sie Android-Apps auf verschiedenen 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. Für einfache Apps, die in Kotlin oder Java geschrieben wurden, ist dieser Unterschied nicht wichtig. Bei Anwendungen, die in nativem Code geschrieben sind, einschließlich solcher, die mit Spiel-Engines erstellt wurden, kann der Chipsatz im Gerät jedoch ein wichtiges Problem darstellen.

Idealerweise werden alle Apps und Spiele mit nativem Code mit allen vier wichtigen Android-ABIs (Application Binary Interfaces) ausgeliefert: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) und x86_64. Dies bietet für jedes Gerät die beste Leistung und den niedrigsten Akkuverbrauch. Eine cmake-basierte build.gradle-Datei könnte beispielsweise Folgendes enthalten:

Groovig

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 Package Kit (APK)

Jedes ABI in einem monolithischen APK vergrößert sich. Dies kann sich auf die Laufwerksnutzung Ihrer Nutzer, die Downloadgröße der App und darauf auswirken, ob die App von den Größenbeschränkungen im Play Store betroffen ist. Dies lässt sich am besten mit Android App Bundles vermeiden.

Mit App Bundles kannst du alle vier ABIs direkt aus Android Studio bündeln, ohne die Downloadgröße für deine Nutzer zu erhöhen. Außerdem lassen sich damit die Vorteile von Dynamic Delivery nutzen, sodass Nutzer große Spieleinhalte nur auf Anfrage herunterladen können. Wenn App Bundles für dich nicht infrage kommen, kannst du das ältere Multi-APK für ein ähnliches Verhalten verwenden.

32-Bit- und 64-Bit-Builds

Alle Android-Apps müssen eine 64-Bit-Build-Version haben. Ein 32-Bit-Build ist sowohl für ARM- als auch für x86-Geräte optional. Weitere Informationen finden Sie in der Dokumentation zu Android 64-Bit.

Die Bereitstellung von 64-Bit-Builds reduziert zwar die Anzahl der erforderlichen Build-Ziele und die Testoberfläche, schränkt aber auch die Arten von Geräten ein, auf denen dein Spiel ausgeführt werden kann. Beispielsweise können auf vielen älteren Chromebooks aufgrund anderer Hardwareeinschränkungen nur 32-Bit-Android-Apps ausgeführt werden, obwohl sie 64-Bit-CPUs haben. Damit deine App auf diesen Geräten ausgeführt werden kann, musst du sowohl 32- als auch 64-Bit-Unterstützung anbieten.

ARM-Übersetzung

x86-Chromebooks versuchen, ARM-Code nach Möglichkeit zu übersetzen. Die Übersetzung verlangsamt jedoch die Leistung und erhöht den Akkuverbrauch. Geben Sie für eine optimale Nutzererfahrung x86-Builds an. Wenn das nicht möglich ist, nehmen Sie sowohl arm32- als auch arm64-ABIs in Ihre Builds auf, da einige x86-Chromebooks den arm64-Code möglicherweise nicht übersetzen.

Die Übersetzung in Arm32 ist zwar auf allen Android-fähigen Chromebooks verfügbar, aber nicht auf allen Chromebooks kann arm64-Code übersetzt werden. Wenn Ihr Spiel also nur arm64-Build-Ziele hat, ist es für eine große Anzahl von ChromeOS-Geräten nicht verfügbar. Wenn Sie keine x86-Binärprogramme versenden können, nehmen Sie sowohl arm32- als auch arm64-ABIs in Ihre Builds auf.

Eingeschlossene ABIs Unterstützung für ChromeOS
Arm64 Schlecht
Verzweigung32 und Verzweigung64 Ok (mit Übersetzung)
arm32, arm64, x86_32 und x86_64 Höchstes Tempo