Compatibilidade de dispositivos Chrome OS com apps

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 Chrome OS 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 nativo, incluindo aqueles criados com mecanismos de jogos, o chip no dispositivo pode ser uma preocupação importante.

O ideal é que todos os apps e jogos com código nativo sejam enviados com as quatro principais ABIs (Interfaces binárias do aplicativo) do Android: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32), 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:

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

Tamanho do APK

Cada ABI em um APK monolítico aumenta tamanho dele. Isso pode afetar o uso do disco do usuário e o tamanho do download do app, podendo atingir os limites de tamanho da Play Store. A melhor maneira de evitar isso é usar os Android App Bundles. Os App Bundles permitem agrupar facilmente todas as quatro ABIs no Android Studio, mas não aumentam o tamanho do download para os usuários. Eles também facilitam o uso do 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. Você precisa disponibilizar builds x86 para que o usuário tenha a melhor experiência. 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.

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 Chrome OS. Se não for possível enviar binários x86, inclua ABIs arm32 e arm64 nas seus builds.

ABIs incluídas Compatibilidade com o Chrome OS
arm64 Fraca
arm32/arm64 OK (com tradução)
arm32/arm64/x86_32/x86_64 Melhor