Compatibilité des applications avec les appareils ChromeOS

Vous pouvez utiliser le Google Play Store pour installer des applications Android sur plusieurs appareils Google Chromebooks Ce document décrit les appareils Chromebook, Chromebox et Chromebase sur lesquelles vous pouvez installer des applications Android.

Présentation

La plupart des téléphones Android sont équipés de chipsets ARM. Cependant, de nombreux appareils ChromeOS utilisent des puces x86. Cette différence n'est pas importante pour les applications de base écrites en Kotlin ou en Java. Toutefois, pour les applications écrites en code natif, y compris celles créées avec des les moteurs, le circuit microprogrammé dans l'appareil peut être une préoccupation importante.

Idéalement, toutes les applications et tous les jeux avec du code natif sont livrés avec les quatre principaux ABI (interfaces binaires d'application): armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) et x86_64. Cela offre les meilleures performances et la plus faible utilisation de la batterie pour chaque appareil. Par exemple, un build.gradle basé sur cmake peut contenir:

Groovy

externalNativeBuild {
    cmake {
        abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    }
}

Kotlin

externalNativeBuild {
    cmake {
        abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
    }
}

Taille de l'APK (Android Package Kit)

Chaque ABI d'un APK monolithique augmente sa taille. Cela peut affecter l'espace disque utilisé par vos utilisateurs et la taille de téléchargement de l'application, et si l'application est concernée par les limites de taille du Play Store. Le meilleur moyen d'éviter cela est d'utiliser Android App Bundle :

App bundles vous permettent de regrouper facilement les quatre ABI à partir d'Android Studio sans augmenter la valeur pour vos utilisateurs. Elles permettent également d'exploiter facilement le mode de diffusion dynamique, permettant aux utilisateurs de télécharger des contenus de jeu volumineux uniquement sur demande. S'il n'est pas possible d'utiliser des app bundles vous pouvez utiliser l'ancien APK multiple pour un comportement similaire.

Builds 32 bits et 64 bits

Toutes les applications Android doivent fournir une version 64 bits. Un build 32 bits est facultatif pour ARM et appareils x86. Reportez-vous à la page Android 64 bits (documentation en anglais) pour en savoir plus.

Si vous ne fournissez que des builds 64 bits, vous réduisez le nombre de cibles de build nécessaires et votre surface de test, cela limite également les types d'appareils pouvant exécuter votre jeu. Pour Par exemple, en raison d'autres limitations matérielles, de nombreux Chromebooks plus anciens ne peuvent exécuter qu'un appareil Android 32 bits applications, malgré des processeurs 64 bits. Pour vous assurer que votre application peut s'exécuter sur ces appareils, incluez compatibles avec les versions 32 et 64 bits.

Traduction ARM

Dans la mesure du possible, les Chromebooks x86 essaient de traduire le code ARM, la traduction ralentit les performances et augmente l'utilisation de la batterie. Pour l'utilisateur optimal fournir des builds x86. Si ce n'est pas possible, incluez les ABI arm32 et arm64 dans vos builds, car certains Chromebooks x86 peuvent ne pas traduire le code arm64.

Bien que la traduction arm32 soit disponible sur tous les Chromebooks compatibles Android, peut traduire le code arm64. Autrement dit, si votre jeu ne dispose que de cibles de build arm64, il n'est pas disponible pour un grand nombre d'appareils ChromeOS. Si vous ne parvenez pas à expédier Les binaires x86 incluent les ABI arm32 et arm64 dans vos compilations.

ABI incluses Compatibilité avec ChromeOS
arm64 Médiocre
arm32 et arm64 OK (avec traduction)
arm32, arm64, x86_32 et x86_64 Meilleure