Suporte a dispositivos ChromeOS para 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 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 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 tenham as quatro ABIs (interfaces binárias do aplicativo) principais 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 Android Package Kit (APK)

Cada ABI em um APK monolítico aumenta tamanho dele. Isso pode afetar o uso do disco dos usuários, o tamanho de download do app e se o app é afetado pelos limites de tamanho da Play Store. A melhor maneira de evitar isso é usar os Android App Bundles.

Os App Bundles permitem agrupar facilmente as quatro ABIs no Android Studio sem aumentar o tamanho de 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 os pacotes de apps não forem possíveis 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 ter a melhor experiência do usuário, forneça builds x86. Se não for possível, inclua ABIs arm32 e arm64 nos seus builds, já que 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 podem traduzir código arm64. Isso significa que, se o jogo tiver apenas destinos de build arm64, ele não vai estar disponível para um grande número de 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