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.

Idealmente, todas las apps y los juegos con código nativo se envían a los cuatro principales sistemas de Android ABI (interfaces binarias de la aplicación): 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 build.gradle basado en cmake podría contener:

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 por parte de los usuarios, el tamaño de descarga de la aplicación y si la aplicación se ve afectada según los límites de tamaño de Play Store. La mejor manera de evitar esto es usar Android App Bundles,

Paquetes de aplicación te permiten agrupar fácilmente las cuatro ABI desde Android Studio sin aumentar el el tamaño de descarga para los usuarios. También permiten aprovechar Dynamic Delivery, lo que permite que los usuarios descarguen contenido de juegos de gran tamaño solo cuando lo solicitan. Si los paquetes de aplicaciones no son una posibilidad puedes usar el APK múltiple anterior para 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 versión de Android 64-bit documentación⁠ 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. Para Por ejemplo, debido a otras limitaciones de hardware, muchas Chromebooks antiguas solo pueden ejecutar Android de 32 bits apps 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 el mejor usuario proporciona compilaciones x86. De lo contrario, incluye las ABI arm32 y arm64 en tus compilaciones, ya que algunas Chromebooks x86 podrían no traducir el código arm64.

Si bien la traducción de arm32 está disponible en todas las Chromebooks compatibles con Android, no en todas puede traducir el código arm64. Esto significa que, si el juego solo tiene objetivos de compilación arm64 no está 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 Deficiente
arm32 y arm64 Buena (con traducción)
arm32, arm64, x86_32 y x86_64 Mejor