Puoi utilizzare il Google Play Store per installare app per Android su diversi Google Chromebook. Questo documento descrive i Chromebook, i Chromebox e le Chromebase su cui puoi installare app per Android.
Panoramica
La maggior parte degli smartphone Android ha chipset ARM. Tuttavia, molti dispositivi ChromeOS utilizzano chip x86. La differenza non è importante per le app di base scritte in Kotlin o Java. Tuttavia, per le app scritte in codice C/C++, incluse quelle create con motori di gioco, il chipset del dispositivo può essere un problema importante.
Idealmente, tutte le app e i giochi con codice C/C++ vengono forniti con tutte e quattro le principali
ABI (Application Binary Interface) di Android:
armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) e x86_64. In questo modo si ottengono le migliori prestazioni
e il consumo della batteria più basso per ogni dispositivo. Ad esempio, un file build.gradle basato su CMake potrebbe contenere:
Groovy
externalNativeBuild { cmake { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } }
Kotlin
externalNativeBuild { cmake { abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64") } }
Dimensioni del pacchetto Android (APK)
Ogni ABI in un APK monolitico ne aumenta le dimensioni. Ciò può influire sull'utilizzo del disco degli utenti, sulle dimensioni del download dell'app e sul fatto che l'app sia interessata dai limiti di dimensioni del Play Store. Il modo migliore per evitarlo è utilizzare Android App Bundle.
Gli app bundle ti consentono di raggruppare tutte e quattro le ABI da Android Studio senza aumentare le dimensioni del download per gli utenti. Inoltre, ti aiutano a sfruttare Dynamic Delivery, consentendo agli utenti di scaricare contenuti di gioco di grandi dimensioni solo quando richiesti. Se gli app bundle non sono una possibilità per te, puoi utilizzare l'APK multiplo precedente per un comportamento simile.
Build a 32 e 64 bit
Tutte le app per Android devono fornire una versione di build a 64 bit. Una build a 32 bit è facoltativa sia per i dispositivi ARM sia per quelli x86. Per saperne di più, consulta la pagina Android a 64 bit.
Sebbene la fornitura di build a 64 bit riduca il numero di target di build necessari e la superficie di test, limita anche i tipi di dispositivi che possono eseguire il gioco. Ad esempio, a causa di altre limitazioni hardware, molti Chromebook meno recenti possono eseguire solo app Android a 32 bit, nonostante abbiano CPU a 64 bit. Per assicurarti che la tua app possa essere eseguita su questi dispositivi, includi il supporto sia a 32 bit che a 64 bit.
Traduzione di ARM
I Chromebook x86 tentano di tradurre il codice ARM ogni volta che è possibile, ma la traduzione rallenta le prestazioni e aumenta il consumo della batteria. Per una migliore esperienza utente, fornisci build x86. In caso contrario, includi le ABI arm32 e arm64 nelle build, perché alcuni Chromebook x86 potrebbero non tradurre il codice arm64. Ad esempio, a causa di altre limitazioni hardware, molti Chromebook meno recenti possono eseguire solo app Android a 32 bit, nonostante abbiano CPU a 64 bit. Per consentire alla tua app di funzionare su questi dispositivi, includi il supporto sia a 32 che a 64 bit.
Sebbene la traduzione arm32 sia disponibile su tutti i Chromebook compatibili con Android, non tutti i Chromebook possono tradurre il codice arm64. Ciò significa che se il tuo gioco ha solo target di build arm64, non è disponibile per un gran numero di dispositivi ChromeOS. Se non riesci a spedire file binari x86, includi ABI arm32 e arm64 nelle tue build.
| ABI incluse | Supporto di ChromeOS |
|---|---|
| arm64 | Scadente |
| arm32 e arm64 | Ok (con traduzione) |
| arm32, arm64, x86_32 e x86_64 | Migliore |