Dispositivos
MEmu ADB connect: puerto 21503 y conexión con MAS
Conecta MEmu Play a Macro Automation Studio por ADB en el puerto 21503, añádelo como dispositivo, arregla el error offline y usa macros de MAS, no el grabador.
- Windows
- Emulador
- Studio
- SDK de Python
En esta página
- Antes de empezar
- 1. Instalar MEmu
- 2. Fijar una resolución
- 3. Activar ADB en MEmu
- 4. El puerto ADB de MEmu y cómo lo busca MAS
- 5. MEmu ADB connect: conectar MEmu Play en MAS
- Macros en MEmu
- Varias instancias de MEmu
- Solución de problemas
- MEmu ADB connect
- MEmu ADB device offline
- El grabador de macros de MEmu frente a MAS
- Contrólalo desde Python
Esta guía explica el proceso de MEmu ADB connect con Macro Automation Studio (MAS), y en qué se diferencian las macros de MAS del grabador de macros de MEmu. MEmu ADB connect es un proceso de Windows, porque MEmu se publica solo para Windows, así que todos los pasos de abajo son pasos de Windows.
Antes de empezar
- MAS instalado y con sesión iniciada en Windows 10 u 11. MAS es una descarga gratuita para la prueba; consíguelo en la página de descarga.
- MEmu instalado desde memuplay.com y abierto al menos una vez.
- La instancia arrancada del todo hasta la pantalla de inicio de Android.
- La virtualización activada en la BIOS para una instancia estable.
1. Instalar MEmu
- Descarga MEmu desde el sitio del fabricante y ejecuta el instalador.
- Inicia MEmu y espera a la pantalla de inicio.
- Inicia sesión en las apps que quieres automatizar antes de añadir el dispositivo a MAS.
2. Fijar una resolución
MAS compara las imágenes de plantilla píxel a píxel. Abre los ajustes de MEmu, elige una resolución fija y mantenla. Las macros escritas para la línea base de MAS esperan 540x960 en vertical a 240 DPI; una macro que escribas tú espera la resolución que capturaste en Asset Lab. Reinicia la instancia si MEmu lo pide.
3. Activar ADB en MEmu
La documentación oficial de MEmu no muestra ningún interruptor de ADB. Una instancia en marcha reenvía su puerto adb de Android al equipo anfitrión como 127.0.0.1:21503, que es la dirección que usa la propia guía de línea de comandos de MEmu. Si tu versión de MEmu tiene una opción de ADB o de desarrollador en Configuración, déjala activada. Inicia la instancia y espera a la pantalla de inicio antes de continuar.
4. El puerto ADB de MEmu y cómo lo busca MAS
La instancia predeterminada de MEmu escucha en el 21503. MAS no usa adb devices para descubrir emuladores. Recorre los procesos en ejecución y conserva los puertos que cumplen estas reglas:
- El nombre del proceso contiene
memuheadlessomemuhyper. - El puerto es 21503 o superior, termina en 3 y está por debajo de 30000. Por tanto, puertos como 21513 y 21523 también coinciden.
- El socket escucha en
127.0.0.1.
Los puertos que coinciden aparecen en el diálogo Añadir dispositivo con la etiqueta MEmu, por ejemplo 21503 - MEmu. La búsqueda se ejecuta al abrir un grupo de dispositivos y cada vez que haces clic en Actualizar.
5. MEmu ADB connect: conectar MEmu Play en MAS
- Abre Grupos de dispositivos en la barra lateral y abre un grupo, o crea uno.
- Haz clic en Añadir dispositivo.
- Escribe un Nombre del dispositivo de hasta 50 caracteres.
- En Puerto, elige la entrada
MEmude esta instancia. Haz clic en Actualizar si la lista está vacía. - Si MEmu usa un puerto que no encaja en la regla de arriba, elige Puerto personalizado y escríbelo. MAS acepta de 1024 a 65535.
- Opcionalmente elige una Macro de inicio.
- Haz clic en Añadir dispositivo y luego en Iniciar en la tarjeta del dispositivo.
La tarjeta muestra Conectando y después En ejecución. MAS inicia su servidor adb, elimina cualquier entrada obsoleta de 127.0.0.1:<port> y ejecuta adb connect contra ella.
Macros en MEmu
El grabador de macros de MEmu captura toques y deslizamientos en coordenadas fijas y los repite, opcionalmente en bucle. No mira la pantalla, así que una carga lenta, un aviso emergente o un botón que se movió rompen la secuencia, y la rutina solo funciona dentro de MEmu.
Una macro de MAS es un script de Python que comprueba la pantalla antes de actuar. Encuentra un botón con coincidencia de plantillas, lee texto con OCR, espera con reintentos y se ramifica según lo que ve. El mismo script se ejecuta en MEmu, en otros emuladores y en un dispositivo en la nube sin cambios, porque MAS controla el dispositivo por adb.
- Para reconstruir una rutina grabada como una macro que mira la pantalla, sigue Macros con reconocimiento de imagen.
- Para repetirla hasta que se cumpla una condición, o ejecutarla según un horario, lee Bucles, condiciones de parada y programación.
- Las macros del Marketplace se instalan como macros de MAS y se ejecutan en el dispositivo que les asignes.
Varias instancias de MEmu
Cada instancia del gestor de instancias múltiples de MEmu escucha en su propio puerto. Añade cada una como un dispositivo aparte en el mismo grupo de dispositivos, asigna una macro y un perfil de ajustes por dispositivo, y usa Iniciar todos y Detener todos en el grupo. Consulta Grupos de dispositivos para argumentos y proxies por dispositivo.
Solución de problemas
MEmu ADB connect
La tarjeta del dispositivo muestra Error o “Failed to start device”, o MAS no lista ninguna entrada MEmu. Revisa estas causas:
- La instancia sigue arrancando. Espera a la pantalla de inicio, haz clic en Actualizar e inicia de nuevo.
- El puerto no encaja en la regla de búsqueda, así que MAS lo omitió. Usa Puerto personalizado con el número que usa MEmu.
- El puerto pertenece a otra instancia. Corrígelo con Editar dispositivo en la tarjeta.
- La búsqueda informó de “Failed to scan emulator ports”. Reinicia MAS y abre el diálogo de nuevo.
- adb imprimió “connection refused” o “cannot connect” en los logs del dispositivo. Nada escucha en ese puerto; reinicia la instancia y vuelve a comprobar el número.
MEmu ADB device offline
adb marca un dispositivo como offline cuando el demonio adb dentro de la instancia deja de responder, lo que suele ocurrir tras una suspensión, una actualización o un segundo servidor adb en la máquina. Haz clic en Detener en la tarjeta, reinicia la instancia de MEmu, cierra cualquier otra herramienta que ejecute su propio servidor adb y haz clic en Iniciar. MAS desconecta la entrada obsoleta y vuelve a conectar en cada inicio. Si sigue offline, reinicia MAS para que su servidor adb arranque limpio.
El grabador de macros de MEmu frente a MAS
Una rutina grabada en MEmu no se puede importar en MAS, porque MAS solo ejecuta macros en Python. Recréala: captura los botones como plantillas en Asset Lab, púlsalos con find_object_retry y haz un bucle con una condición de parada. El resultado sobrevive a avisos emergentes, cargas lentas y cambios de diseño que rompen una secuencia grabada, y se ejecuta en cualquier dispositivo que controle MAS. Si una macro de MAS se atasca, abre Logs en la tarjeta del dispositivo: ImageNotFoundError y TimeoutError nombran el paso que falló.
Contrólalo desde Python
Con la tarjeta en En ejecución, el src/app.py de una macro controla la instancia a través del paquete mas. El puerto lo elige MAS, así que los scripts nunca lo mencionan.
import mas
size = mas.get_screen_size()
mas.log(f"MEmu screen is {size.width}x{size.height}")
match = mas.find_object_retry(1234, total_tries=3, time_sleep=2.0)
if match:
mas.click(match.x, match.y)Lee la introducción al SDK para conocer todos los espacios de nombres y Controlar un emulador Android desde Python para un primer script completo.
Siguientes pasos
Páginas relacionadas
Gracias. Si algo está mal, cuéntanoslo en Discord.
¿Dudas? Pregunta en Discord