Você pode usar a Google Play Store para instalar apps Android em vários Chromebooks Google. Este documento descreve os Chromebooks, Chromeboxes e Chromebases em que você pode instalar apps Android.
Visão geral
A maioria dos smartphones Android tem chipsets ARM. No entanto, muitos dispositivos ChromeOS usam chips x86. A diferença não é importante para apps básicos escritos em Kotlin ou Java. No entanto, para apps escritos em código C/C++, incluindo aqueles criados com mecanismos de jogos, o chipset no dispositivo pode ser uma preocupação importante.
O ideal é que todos os apps e jogos com código C/C++ sejam enviados com as quatro principais ABIs (interfaces binárias de aplicativos) do Android:
armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) e x86_64. Isso proporciona o melhor desempenho e o menor consumo de bateria para cada dispositivo. Por exemplo, um arquivo build.gradle baseado em cmake pode conter:
Groovy
externalNativeBuild { cmake { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } }
Kotlin
externalNativeBuild { cmake { abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64") } }
Tamanho do pacote Android (APK)
Cada ABI em um APK monolítico aumenta tamanho dele. Isso pode afetar o uso do disco dos usuários, o tamanho do download do app e se ele é afetado pelos limites de tamanho da Play Store. A melhor maneira de evitar isso é usar os Android App Bundles.
Os App Bundles permitem agrupar todas as quatro ABIs no Android Studio sem aumentar o tamanho do download para os usuários. Eles também ajudam você a aproveitar o Dynamic Delivery, permitindo que os usuários façam o download de conteúdo grande de jogos somente quando solicitado. Se App Bundles não forem uma possibilidade para você, use o multi-APK mais antigo para um comportamento semelhante.
Builds de 32 e 64 bits
Todos os apps Android precisam oferecer uma versão de build de 64 bits. Um build de 32 bits é opcional para dispositivos ARM e x86. Consulte a documentação do Android de 64 bits para mais informações.
Embora a disponibilização somente de builds de 64 bits reduza o número de destinos necessários e a superfície de teste, ela também limita os tipos de dispositivos que podem executar o jogo. Por exemplo, devido a outras limitações de hardware, muitos Chromebooks mais antigos só podem executar apps para Android de 32 bits, apesar de terem CPUs de 64 bits. Para garantir que seu app possa ser executado nesses dispositivos, inclua compatibilidade com 32 e 64 bits.
Tradução de ARM
Os Chromebooks x86 tentam traduzir o código ARM sempre que possível, mas a tradução diminui o desempenho e aumenta o uso da bateria. Para oferecer a melhor experiência ao usuário, disponibilize builds x86. Se não for possível, inclua as ABIs arm32 e arm64 nos seus builds porque alguns Chromebooks x86 podem não traduzir código arm64. Por exemplo, devido a outras limitações de hardware, muitos Chromebooks mais antigos só podem executar apps para Android de 32 bits, apesar de terem CPUs de 64 bits. Para ajudar seu app a ser executado nesses dispositivos, inclua compatibilidade com 32 e 64 bits.
Embora a tradução arm32 esteja disponível em todos os Chromebooks compatíveis com Android, nem todos os Chromebooks podem traduzir códigos arm64. Isso significa que, se o jogo estiver voltado apenas ao build arm64, ele não estará disponível para muitos dispositivos ChromeOS. Se não for possível enviar binários x86, inclua ABIs arm32 e arm64 nas seus builds.
| ABIs incluídas | Suporte para ChromeOS |
|---|---|
| arm64 | Ruim |
| arm32 e arm64 | OK (com tradução) |
| arm32, arm64, x86_32 e x86_64 | Melhor |