Buscar

Dispositivos

Automatizar un emulador Android: emuladores, nube y móvil

Automatizar un emulador Android en Macro Automation Studio: qué emuladores detecta, las reglas del puerto adb, añadir uno por puerto, la nube y tu móvil.

  • Windows
  • Mac
  • Emulador
  • Dispositivo en la nube
  • Teléfono
  • Studio
  • SDK de Python
Principiante Actualizado 7 min de lectura
En esta página
  1. Antes de empezar
  2. Cómo encuentra MAS el puerto adb del emulador
  3. Automatizar emulador Android: añadirlo como dispositivo
  4. Dispositivos en la nube
  5. Tu propio móvil
  6. Contrólalo desde Python
  7. Solución de problemas
  8. La lista Puerto está vacía
  9. Port is already in use
  10. El dispositivo se queda en Conectando o acaba en Error

Automatizar un emulador Android en Macro Automation Studio (MAS) empieza por un dispositivo: un emulador Android en este ordenador, un dispositivo en la nube de MAS o, como ruta avanzada, tu propio móvil. Esta página explica cómo encuentra MAS los emuladores, cómo añades uno para automatizar un emulador Android y dónde encajan los otros dos tipos.

Antes de empezar

  • MAS está instalado y has iniciado sesión con una prueba o un plan activo. Consulta Instalar MAS. MAS es una descarga gratuita para la prueba; consíguelo en la página de descarga.
  • Para un emulador: el emulador está en marcha y ADB está activado en sus ajustes. Las guías de BlueStacks, LDPlayer, MuMu Player y MEmu muestran dónde.
  • Para un dispositivo en la nube: un plan con el complemento de dispositivos en la nube. Consulta Dispositivos en la nube.

Cómo encuentra MAS el puerto adb del emulador

MAS no ejecuta adb devices para encontrar emuladores. Recorre los procesos en ejecución buscando nombres de emulador conocidos, lee los puertos TCP en los que escucha cada uno y conserva un puerto solo cuando está dentro del rango conocido de ese emulador. Solo cuentan los puertos enlazados a 127.0.0.1, 0.0.0.0 o a todas las interfaces. El resultado rellena la lista Puerto del diálogo Añadir nuevo dispositivo, una entrada por puerto con el nombre del emulador al lado.

EmuladorNombres de proceso que busca MASPuertos que acepta MAS
BlueStacksHD-Player, BlueStacksDe 5555 a 8500
LDPlayerLdVBoxHeadless, Ld9BoxHeadless, dnplayer, LDPlayer, VBoxNetNATPuertos impares de 5555 a 5599
NoxNoxVMHandleDe 62001 a 63000
MEmuMEmuHeadless, MEmuHyper21503 y todos los puertos terminados en 3 por encima, hasta 30000
MuMu PlayerNemuHeadless, MuMuPuertos impares de 5555 a 5599, el 7555, de 16384 a 16576 o de 26624 a 27264

Cada instancia de emulador escucha en su propio puerto, así que dos ventanas de BlueStacks aparecen como dos entradas. Si tu emulador no está en la tabla, o escucha fuera de su rango, puedes escribir el puerto a mano.

Automatizar emulador Android: añadirlo como dispositivo

  1. En MAS, abre Grupos de dispositivos y haz clic en Crear nuevo grupo.
  2. Escribe un Nombre (de 3 a 255 caracteres), deja el tipo Local y haz clic en Crear grupo.
  3. Abre el grupo y haz clic en Añadir dispositivo.
  4. Escribe un Nombre del dispositivo de hasta 50 caracteres.
  5. Elige el puerto en Puerto. Haz clic en Actualizar para volver a buscar. Si el puerto no aparece, elige Puerto personalizado y escríbelo (de 1024 a 65535).
  6. Opcionalmente elige una Macro de inicio.
  7. Haz clic en Añadir dispositivo.

La tarjeta del dispositivo muestra su puerto, su macro y su estado: Detenido, Conectando, Iniciando, En ejecución, Deteniendo o Error. Iniciar conecta con el emulador mediante adb connect 127.0.0.1:<port> y lanza la macro; Detener termina la ejecución. Un puerto solo puede pertenecer a un dispositivo; añadirlo dos veces falla con “Port is already in use”. Para cambiar el puerto más adelante, haz clic en Editar dispositivo.

Varios dispositivos de un mismo grupo pueden tener macros, argumentos y perfiles de ajustes distintos, y Iniciar todos los ejecuta uno tras otro. Consulta Grupos de dispositivos.

Dispositivos en la nube

Un dispositivo en la nube es un dispositivo Android que MAS ejecuta por ti. Lo creas en la página Dispositivos en la nube con Crear, eligiendo la versión de Android, un preajuste de pantalla y un DPI que quedan fijos durante toda la vida del dispositivo. Iniciar lo arranca, Ver abre la pantalla en directo transmitida por WebRTC y Ejecutar lanza una macro que sigue en marcha después de cerrar la app. Los dispositivos detenidos conservan sus datos, y una cuenta puede tener hasta 20 dispositivos en la nube por cuenta. Todo lo demás, incluidas las instalaciones de APK y las cuotas, está en la página Dispositivos en la nube.

Tu propio móvil

MAS añade todo dispositivo local por puerto y siempre marca 127.0.0.1. No hay pantalla de emparejamiento por USB ni de emparejamiento inalámbrico. Por tanto, un móvil solo funciona cuando su demonio adb es accesible en un puerto TCP de este ordenador. Por USB se consigue con un reenvío de puerto de adb.

  1. En el móvil, activa las Opciones de desarrollador y la Depuración USB, y conecta el móvil.
  2. En el ordenador, ejecuta adb devices y acepta el aviso de autorización en el móvil. El número de serie del móvil debe aparecer como device.
  3. Indica al demonio adb del móvil que escuche también por TCP: adb tcpip 5555.
  4. Reenvía un puerto local hacia él: adb forward tcp:5580 tcp:5555. Elige cualquier puerto local libre; 5580 es solo un ejemplo.
  5. Compruébalo: adb connect 127.0.0.1:5580 debería responder “connected”.
  6. En MAS, añade un dispositivo con Puerto personalizado en 5580.

Mantén el móvil conectado y con la pantalla encendida. El tamaño de pantalla y el DPI vienen del móvil, así que las plantillas recortadas en un emulador no coincidirán; recórtalas desde el móvil en Asset Lab.

La depuración inalámbrica funciona igual una vez que el móvil está emparejado y conectado con adb connect <phone-ip>:<port>: reenvía un puerto local al puerto adb del móvil y añade ese puerto local en MAS.

Contrólalo desde Python

Al SDK no le importa qué tipo de dispositivo hay debajo. mas.get_device_info() devuelve el nombre y el tamaño de pantalla, mas.get_screen_size() solo el tamaño, y cada toque, deslizamiento y captura pasa por las mismas llamadas. MAS lanza los scripts con el dispositivo ya vinculado, así que no hay nada que conectar en el código. Empieza por la introducción al SDK.

Solución de problemas

La lista Puerto está vacía

El emulador no está en marcha, ADB está apagado en sus ajustes o no es uno de los emuladores que MAS busca. Haz clic en Actualizar cuando el emulador termine de arrancar. Si sigue vacía, usa Puerto personalizado con el puerto que muestran los ajustes del propio emulador. Consulta Solución de problemas de ADB.

Port is already in use

Otro dispositivo de uno de tus grupos ya tiene ese puerto. Cada puerto se puede añadir una sola vez. Quita la entrada antigua o elige el puerto de la otra instancia.

El dispositivo se queda en Conectando o acaba en Error

MAS no pudo completar adb connect, o el emulador rechazó el primer comando. Comprueba el puerto, confirma que ADB está activado y sigue Solución de problemas de ADB.

Siguientes pasos

Páginas relacionadas

¿Te ha servido esta página?

¿Dudas? Pregunta en Discord