Considerazioni sulla pubblicazione

La maggior parte degli smartphone Android ha chipset ARM. Tuttavia, molti dispositivi ChromeOS utilizzano chip x86. La differenza non è importante per le app scritte in Kotlin o Java. Tuttavia, per le app scritte in Android NDK, incluse quelle create con motori di gioco, il chipset del dispositivo può essere un problema importante.

Idealmente, tutte le app con il codice NDK Android devono essere distribuite 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 minor consumo di batteria per ogni dispositivo. Ad esempio, un file build.gradle basato su CMake potrebbe contenere:

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

Dimensioni APK

Ogni ABI in un APK monolitico ne aumenta le dimensioni. Ciò può influire sull'utilizzo del disco degli utenti, sulle dimensioni di download dell'app e potrebbe superare i limiti di dimensioni del Play Store. Il modo migliore per evitarlo è utilizzare gli Android App Bundle. Gli app bundle ti consentono di raggruppare facilmente tutte e quattro le ABI da Android Studio, ma non aumentano le dimensioni di download per gli utenti. Inoltre, semplificano l'utilizzo di Dynamic Delivery, consentendo agli utenti di scaricare contenuti di giochi di grandi dimensioni solo quando richiesto. Se gli Android App Bundle non sono una possibilità per te, puoi utilizzare il precedente APK multiplo per un comportamento simile.

32 bit 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 che x86. Per saperne di più, consulta la documentazione a 64 bit di Android.

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.

Nota:tutte le app nuove e aggiornate devono includere una versione dell'app a 64 bit. Il Play Store ha interrotto la pubblicazione di app a 32 bit sui dispositivi in grado di gestire app a 64 bit. Molti Chromebook supportano il formato a 64 bit e ti consigliamo di aggiornare l'app il prima possibile per includere una versione a 64 bit e garantire la continuità per gli utenti dell'app su ChromeOS.

Traduzione di ARM

I Chromebook x86 tentano di tradurre il codice ARM ogni volta che è possibile. Tuttavia, la traduzione rallenta le prestazioni e aumenta l'utilizzo della batteria. Anche i giochi semplici dovrebbero prendere in considerazione la possibilità di fornire build x86 per offrire la migliore esperienza utente. Se non riesci a fornire build x86, tieni presente che alcuni Chromebook x86 non possono tradurre il codice arm64. In questo caso, devi includere sia le ABI arm32 sia arm64 nelle build.

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 sarà disponibile per un gran numero di dispositivi ChromeOS. Se non riesci a spedire i file binari x86, includi le ABI arm32 e arm64 nelle tue build.

                                                                               
ABI incluseSupporto di ChromeOS

arm64

Scadente

arm32/arm64

Ok (con traduzione)

arm32/arm64/x86_32/x86_64

Migliore