Guía para Configurar un Entorno Android Containerizado con Docker-Android

Resumen del Proyecto

Docker-Android proporciona un entorno de desarrollo Android basado en contenedores, permitiendo ejecutar emuladores de Android dentro de Docker. Este proyecto facilita la creación de imágenes de Android con soporte para múltiples versiones y configuraciones personalizadas, ideal para desarrollo, pruebas y automatización.

Ventajas Principales

  • Compatibilidad con diversas configuraciones de dispositivos, como Samsung Galaxy S10 y la serie Google Nexus.
  • Integración de VNC para visualización remota del emulador a través de un navegador web.
  • Acceso a registros de eventos mediante una interfaz web centralizada.
  • Conexión externa al emulador mediante adb para control remoto.
  • Soporte para soluciones en la nube, incluyendo Genymotion Cloud.
  • Capacidad para compilar proyectos Android directamente en el contenedor.
  • Integración con marcos de pruebas como Appium y Espresso.

Preparación del Entorno

Requisitos del Sistema

  • Docker instalado y configurado en el sistema host.
  • Soporte de virtualización por hardware habilitado.
  • Se recomienda utilizar un sistema operativo como Ubuntu para mejor compatibilidad.

Verificación de Virtualización

Para sistemas Linux, ejecute los siguientes comandos para confirmar el soporte de KVM:

sudo apt install cpu-checker
kvm-ok

Inicio Rápido

Despliegue Básico

Ejecute el siguiente comando para iniciar un contenedor con un emulador de Android:

docker run -d -p 6080:6080 -e EMULATOR_DEVICE="Google Pixel 5" -e WEB_VNC=true --device /dev/kvm --name mi-contenedor-android budtmo/docker-android:emulator_11.0

Acceso a la Interfaz

Una vez iniciado el contenedor, acceda a la interfaz VNC mediante un navegador en la dirección http://localhost:6080 para interactuar con el emulador.

Monitoreo del Estado

Para verifciar el estado del emulador en ejecución, utilice el comando:

docker exec -it mi-contenedor-android cat device_status

Configuración de Persistencia de Datos

De manera predeterminada, los datos del emulador se pierden al reiniciar el contenedor. Para conservar la información, monte un volumen en el directorio /home/androidusr:

docker run -v datos-persistentes:/home/androidusr budtmo/docker-android:emulator_11.0

Casos de Uso Detallados

Pruebas Automatizadas con Appium

Inicie el servidor Appium dentro del contenedor para ejecutar pruebas automatizadas en aplicaciones y sitios web móviles:

docker run -d -p 6080:6080 -p 4723:4723 -e EMULATOR_DEVICE="Nexus 5" -e WEB_VNC=true -e APPIUM=true --device /dev/kvm --name contenedor-appium budtmo/docker-android:emulator_11.0

Compilación de Proyectos Android

Use Docker-Endroid para construir y probar proyectos Android. Ejemplo de compilación mediante Gradle:

docker run -it --rm -v $PWD/proyecto-android:/home/androidusr/tmp -w /home/androidusr/tmp --entrypoint "/bin/bash" budtmo/docker-android:emulator_11.0 -c "./gradlew build"

Control del Emulador desde el Host

Para controlar el emulador desde la máquina host:

  1. Al iniciar el contenedor, exponga los puertos 5554 y 5555.
  2. Conéctese al emulador mediante adb:
adb connect <ip-del-contenedor>:5555

Versiones de Android Soportadas

Versión de Android Nivel de API Etiqueta de Imagen
9.0 28 budtmo/docker-android:emulator_9.0
10.0 29 budtmo/docker-android:emulator_10.0
11.0 30 budtmo/docker-android:emulator_11.0
12.0 32 budtmo/docker-android:emulator_12.0
13.0 33 budtmo/docker-android:emulator_13.0
14.0 34 budtmo/docker-android:emulator_14.0

Configuraciones de Dispositivos Soportadas

Dispositivos Móviles

  • Samsung Galaxy S10
  • Samsung Galaxy S9
  • Samsung Galaxy S8
  • Samsung Galaxy S7 Edge
  • Samsung Galaxy S7
  • Samsung Galaxy S6
  • Nexus 4
  • Nexus 5
  • Nexus One
  • Nexus S

Dispositivos de Tableta

  • Nexus 7
  • Pixel C

Funcionalidades Avanzadas

Integración con Genymotion

Docker-Android se integra con servicios de nube como Genymotion SAAS, AWS, GCP y Alibaba Cloud para pruebas escalables.

Temas del Emulador

Los temas visuales del emulador provienen de Android Studio y sitios de desarrolladores de Samsung, ofreciendo una experiencia visual realista en los dispositivos virtuales.

Etiquetas: Docker Android emulador Appium VNC

Publicado el 6-29 03:38