Compatibilité des applications avec les appareils ChromeOS

Vous pouvez utiliser le Google Play Store pour installer des applications Android sur plusieurs Chromebooks Google. Ce document décrit les Chromebooks, Chromebox et Chromebases sur lesquels 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. La différence n'est pas importante pour les applications de base écrites en Kotlin ou Java. Toutefois, pour les applications écrites en code natif, y compris celles créées avec des moteurs de jeu, le chipset de l'appareil peut être une préoccupation importante.

Idéalement, toutes les applications et tous les jeux en code natif sont livrés avec les quatre principales ABI (interfaces binaires d'application) Android : armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) et x86_64. Cela permet d'optimiser les performances et la consommation de batterie de chaque appareil. Par exemple, un fichier build.gradle basé sur cmake peut contenir les éléments suivants:

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 avoir une incidence sur l'utilisation du disque par les utilisateurs et la taille de téléchargement de l'application. Elle peut également avoir une incidence sur les limites de taille du Play Store. Le meilleur moyen d'éviter cela est d'utiliser des Android App Bundles.

Les app bundles vous permettent de regrouper facilement les quatre ABI à partir d'Android Studio sans augmenter la taille de téléchargement pour vos utilisateurs. Elles facilitent également l'utilisation de Dynamic Delivery, qui permet aux utilisateurs de ne télécharger des contenus de jeu volumineux que sur demande. Si vous n'avez pas la possibilité d'utiliser les app bundles, vous pouvez utiliser l'ancien APK multiple pour obtenir 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 les appareils ARM et les appareils x86. Pour en savoir plus, consultez la documentation relative à Android 64 bits.

Bien que le fait de fournir uniquement des builds 64 bits réduit le nombre de cibles de compilation nécessaires et votre surface de test, cela limite également les types d'appareils pouvant exécuter votre jeu. Par exemple, en raison d'autres limitations matérielles, de nombreux Chromebooks plus anciens ne peuvent exécuter que des applications Android 32 bits, malgré des processeurs 64 bits. Pour vous assurer que votre application peut s'exécuter sur ces appareils, incluez la compatibilité 32 bits et 64 bits.

Traduction ARM

Les Chromebooks x86 essaient de traduire le code ARM dans la mesure du possible, mais la traduction ralentit les performances et sollicite davantage la batterie. Pour une expérience utilisateur optimale, fournissez 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, tous les Chromebooks ne peuvent pas traduire le code arm64. Cela signifie que si votre jeu ne comporte que des cibles de compilation arm64, il n'est pas disponible pour un grand nombre d'appareils ChromeOS. Si vous ne parvenez pas à envoyer des binaires x86, incluez 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