Vous pouvez utiliser le Google Play Store pour installer des applications Android sur plusieurs Chromebooks Google. Ce document décrit les Chromebooks, Chromebox et Chromebase sur lesquels vous pouvez installer des applications Android.
Présentation
La plupart des téléphones Android sont équipés de chipsets ARM. Toutefois, 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 C/C++, y compris celles créées avec des moteurs de jeu, le chipset de l'appareil peut être un élément important à prendre en compte.
Idéalement, toutes les applications et tous les jeux avec du code C/C++ sont fournis 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'obtenir les meilleures performances et la plus faible consommation de batterie pour 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 du package Android (APK)
Chaque ABI dans un APK monolithique augmente sa taille. Cela peut avoir un impact sur l'utilisation du disque par vos utilisateurs, sur la taille du téléchargement de l'application et sur la question de savoir si l'application est concernée par les limites de taille du Play Store. Le meilleur moyen d'éviter cela est d'utiliser les Android App Bundles.
Les app bundles vous permettent de regrouper les quatre ABI dans Android Studio sans augmenter la taille du téléchargement pour vos utilisateurs. Ils vous aident également à profiter de Dynamic Delivery, qui permet aux utilisateurs de télécharger des contenus de jeu volumineux uniquement sur demande. Si vous ne pouvez pas utiliser les app bundles, vous pouvez utiliser l'ancienne méthode multi-APK pour obtenir un comportement similaire.
Versions 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 x86. Pour en savoir plus, consultez Android 64 bits.
Si vous ne fournissez que des versions 64 bits, vous réduisez le nombre de cibles de compilation nécessaires et votre surface de test, mais vous limitez é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, même s'ils sont équipés de processeurs 64 bits. Pour vous assurer que votre application peut s'exécuter sur ces appareils, incluez la compatibilité avec les architectures 32 bits et 64 bits.
Traduction ARM
Les Chromebooks x86 tentent de traduire le code ARM chaque fois que possible, mais la traduction ralentit les performances et augmente la consommation de la batterie. Pour offrir la meilleure expérience utilisateur, fournissez des versions x86. Si vous ne pouvez pas le faire, incluez les ABI arm32 et arm64 dans vos builds, car certains Chromebooks x86 peuvent ne pas traduire le code arm64. Par exemple, en raison d'autres limitations matérielles, de nombreux Chromebooks plus anciens ne peuvent exécuter que des applications Android 32 bits, même s'ils disposent de processeurs 64 bits. Pour que votre application puisse s'exécuter sur ces appareils, incluez la compatibilité avec les architectures 32 bits et 64 bits.
Bien que la traduction arm32 soit disponible sur tous les Chromebooks compatibles avec 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 pouvez pas fournir de binaires x86, incluez les ABI arm32 et arm64 dans vos builds.
| ABI incluses | Prise en charge de ChromeOS |
|---|---|
| arm64 | Médiocre |
| arm32 et arm64 | OK (avec traduction) |
| arm32, arm64, x86_32 et x86_64 | Meilleure |