Google is committed to advancing racial equity for Black communities. See how.

Dispositivos Android virtuales Cuttlefish

¿Qué es Cuttlefish?

Cuttlefish es un dispositivo Android virtual configurable que se puede ejecutar de manera remota (mediante ofertas de la nube de terceros como Google Cloud Engine) y local (en máquinas Linux x86).

Objetivos de Cuttlefish

  • Permitir que los desarrolladores de plataformas y aplicaciones no dependan del hardware físico para desarrollar y validar cambios de código.
  • Mantener una alineación estrecha con el marco de trabajo principal a fin de replicar el comportamiento basado en el marco de trabajo de un dispositivo real con un enfoque en la alta fidelidad.
  • Admitir todos los niveles de la API posteriores al 28.
  • Proporcionar un nivel consistente de funcionalidad entre los niveles de la API, de manera alineada con el comportamiento en el hardware físico.
  • Cómo habilitar la escala:

    • Ofrece la capacidad de ejecutar varios dispositivos de manera simultánea.
    • Habilita la ejecución de prueba simultánea con alta fidelidad a un costo de entrada inferior.
  • Proporciona un dispositivo configurable con la capacidad de ajustar el factor de forma, la RAM, las CPU, etc.

Comparación de Cuttlefish con otros dispositivos

Cuttlefish y Android Emulator

Hay muchas similitudes con Android Emulator, pero Cuttlefish garantiza fidelidad máxima con el marco de trabajo de Android (ya sea AOSP puro o una implementación personalizada en tu propio árbol). En una aplicación real, esto quiere decir que debes esperar que Cuttlefish responda a tus interacciones a nivel del SO del mismo modo que una orientación a teléfonos físicos compilada con la misma fuente de SO de Android personalizada o pura.

Android Emulator se compiló para el caso práctico de facilitar el desarrollo de aplicaciones y contiene muchas funcionalidades destinadas a casos prácticos de los desarrolladores de aplicaciones para Android. Esta característica puede presentar desafíos si quieres compilar un emulador con tu marco de trabajo de Android personalizado. Si necesitas un dispositivo virtual que represente el código de tu plataforma o marco de trabajo personalizado, o la punta del árbol de Android, Cuttlefish es una opción virtual ideal. Es el dispositivo canónico que representa el estado actual del desarrollo de AOSP.

Cuttlefish y el dispositivo físico

Las diferencias principales entre un dispositivo virtual Cuttlefish y tu dispositivo físico están en la capa de abstracción de hardware, además de cualquier software que interactúe con un hardware personalizado. Excepto por las implementaciones específicas del hardware, el comportamiento de Cuttlefish y un dispositivo físico es equivalente en cuanto a las funcionalidades.

¿Cómo puede ayudar Cuttlefish?

Puedes interactuar con Cuttlefish del mismo modo que lo harías con cualquier otro dispositivo Android que podrías usar para la depuración. Se registrará como un dispositivo normal a través de adb y puedes interactuar con él como un dispositivo físico mediante un escritorio remoto. Los casos prácticos son amplios y pueden abarcar la prueba de aplicaciones, la prueba de compilaciones del sistema personalizadas, etc.

Debido a que el objetivo de Cuttlefish es lograr la fidelidad completa del marco de trabajo, se puede utilizar para pruebas funcionales de tu marco de trabajo o aplicaciones en las que no haya dependencias de hardware físicas imposibles de emular.

¿Cómo se utiliza Cuttlefish para las pruebas en la actualidad?

Algunas aplicaciones comunes de Cuttlefish para las pruebas son las siguientes:

  • CTS
  • Cumplimiento del marco de trabajo
  • Prueba de la interacción continua
  • Paquetes de pruebas personalizadas

¿Puedo alojar Cuttlefish en la nube?

Sí. De manera nativa, Cuttlefish admite Google Cloud y está prevista la compatibilidad con otras plataformas en la nube.

Cómo comenzar

Consulta la Guía de introducción para obtener ayuda sobre cómo crear una instancia de Cuttlefish basada en AOSP.