Compatibilidad de dispositivos ChromeOS con apps

Puedes usar Google Play Store con el fin de instalar apps para Android en varias Google Chromebooks. En este documento, se describen los dispositivos Chromebook, Chromebox y Chromebase en los que puedes instalar apps para Android.

Descripción general

La mayoría de los teléfonos Android cuentan con chipsets ARM. Sin embargo, muchos dispositivos ChromeOS usan chips x86. La diferencia no es importante para las apps básicas escritas en Kotlin o Java. Sin embargo, para las apps escritas en código nativo, lo que incluye las creadas con motores de juegos, el chipset del dispositivo puede ser una cuestión importante.

Lo ideal es que todas las apps y los juegos con código nativo se envíen con las cuatro ABI (interfaces binarias de la aplicación) principales de Android: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) y x86_64. De esta manera, cada dispositivo ofrece el mejor rendimiento con el menor consumo de batería. Por ejemplo, un archivo build.gradle basado en CMake puede contener lo siguiente:

Groovy

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

Kotlin

externalNativeBuild {
    cmake {
        abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
    }
}

Tamaño del kit de paquete de Android (APK)

Cada ABI de un APK monolítico aumenta su tamaño, Esto puede afectar el uso del disco de los usuarios, el tamaño de descarga de la app y si la app se ve afectada por los límites de tamaño de Play Store. La mejor manera de evitar esto es usar Android App Bundles,

Los paquetes de aplicaciones te permiten empaquetar fácilmente las cuatro ABI desde Android Studio sin aumentar el tamaño de descarga para los usuarios. También facilitan el uso de Dynamic Delivery, lo que permite a los usuarios descargar contenido de juegos de gran tamaño solo cuando se les solicita. Si los paquetes de aplicaciones no son una opción para ti, puedes usar la versión más antigua de APK múltiples para obtener un comportamiento similar.

Compilaciones de 32 y 64 bits

Todas las apps para Android deben proporcionar una versión de compilación de 64 bits. Una compilación de 32 bits es opcional para dispositivos ARM y x86. Consulta la documentación de 64 bits de Android⁠ para obtener más información.

Si bien solo proporcionar compilaciones de 64 bits reduce la cantidad de objetivos de compilación necesarios y la superficie de prueba, también se limitan los tipos de dispositivos que pueden ejecutar el juego. Por ejemplo, debido a otras limitaciones de hardware, muchas Chromebooks más antiguas solo pueden ejecutar apps para Android de 32 bits, a pesar de tener CPU de 64 bits. Para garantizar que la app pueda ejecutarse en esos dispositivos, incluye compatibilidad con 32 y 64 bits.

Traducciones de ARM

Las Chromebooks x86 intentan traducir el código ARM siempre que sea posible, pero la traducción ralentiza el rendimiento y aumenta el uso de la batería. Para obtener la mejor experiencia del usuario, proporciona compilaciones de x86. Si no puedes hacerlo, incluye las ABI arm32 y arm64 en tus compilaciones, ya que es posible que algunas Chromebooks x86 no traduzcan el código arm64.

Si bien la traducción de arm32 está disponible en todas las Chromebooks compatibles con Android, no todas pueden traducir el código arm64. Esto significa que, si tu juego solo tiene objetivos de compilación arm64, no estará disponible para una gran cantidad de dispositivos ChromeOS. Si no puedes enviar objetos binarios x86, incluye ABI arm32 y arm64 en tus compilaciones.

ABI incluidas Compatibilidad con ChromeOS
arm64 Bajo
arm32 y arm64 Buena (con traducción)
arm32, arm64, x86_32 y x86_64 Mejor