# Automatizar aplicaciones Android con Python: guía inicial

> Automatiza aplicaciones Android con Python en Macro Automation Studio: conecta un dispositivo y ejecuta un bot, pide una macro a MAS Agent o escribe la tuya.

Source: https://automationmacro.com/es/docs/getting-started (Empezar, updated 2026-09-05)

Macro Automation Studio (MAS) sirve para automatizar aplicaciones Android a través de la pantalla: mira el dispositivo, encuentra lo que necesita y toca. Esta página te lleva desde una instalación nueva hasta tu primera macro para automatizar aplicaciones Android con Python, ejecutándose en un emulador Android, en un dispositivo en la nube o en tu móvil. Está pensada para quien usa MAS por primera vez en Windows o Mac.

## Antes de empezar

- MAS está instalado y has iniciado sesión. Consulta [Instalar MAS](/docs/install).
- Tienes algo que automatizar: un emulador Android en este ordenador, un dispositivo en la nube o tu propio móvil. Consulta [Dispositivos](/docs/devices).
- Tu cuenta tiene una suscripción activa o la prueba gratuita. Todas las páginas de la app, salvo el inicio de sesión y **Suscripción**, la necesitan. Sin ella, MAS abre **Suscripción** y se queda ahí. Los planes están en la [página de precios](/pricing).

> [!NOTE]
> El SDK de Python ya está instalado. MAS incluye su propio entorno de Python 3.13 con el paquete `mas`, así que `import mas` funciona en el Code Editor sin que configures nada.

## Configurar Macro Automation Studio: elige un dispositivo

Una ejecución apunta a un solo dispositivo. Elige el tipo que te encaje:

| Dispositivo | Dónde se ejecuta | Ideal para |
|---|---|---|
| Emulador (BlueStacks, LDPlayer, MuMu Player, MEmu) | En este ordenador, por adb | Primeros pasos y pruebas locales |
| Dispositivo en la nube | En la nube de MAS, transmitido a la app por WebRTC | Ejecuciones que siguen con el ordenador apagado |
| Tu propio móvil | En este ordenador, por adb (avanzado) | Apps que solo se comportan bien en hardware real |

Para añadir un emulador:

1. Inicia el emulador y activa ADB en sus ajustes. Cada guía de emulador indica dónde está la opción.
2. En MAS, abre **Grupos de dispositivos** y haz clic en **Crear nuevo grupo**. Deja el tipo **Local**.
3. Abre el grupo y haz clic en **Añadir dispositivo**.
4. Escribe un **Nombre del dispositivo** y elige el puerto del emulador en la lista **Puerto**. Haz clic en **Actualizar** si la lista está vacía.
5. Haz clic en **Añadir dispositivo**.

Los dispositivos en la nube se crean en la página **Dispositivos en la nube** con **Crear** y aparecen como destinos de ejecución junto a los dispositivos locales. La ruta del móvil se describe en la página [Dispositivos](/docs/devices).

## Tres formas de conseguir una macro

### Ejecutar un bot del Marketplace

1. Abre **Marketplace** y busca la app o el juego.
2. Abre una publicación y haz clic en **Descargar**. El bot aparece en **Macros** con la etiqueta "Descargado del Marketplace".
3. En **Grupos de dispositivos**, abre tu grupo, elige el bot en el selector **Macro** del dispositivo y haz clic en **Iniciar**.
4. Sigue la pestaña **Logs** de la tarjeta del dispositivo. Haz clic en **Detener** cuando termines.

El recorrido completo con capturas está en [Cómo ejecutar una macro del Marketplace](/docs/run-macro-from-marketplace). Publicar tu propio bot se explica en la página [Marketplace](/docs/marketplace).

### Pedírsela a MAS Agent

1. Abre **Agente** y elige un dispositivo en **Dispositivo**.
2. Describe la tarea con palabras normales y haz clic en **Generar**.
3. Responde cuando aparezca la tarjeta "El agente necesita tu respuesta". El agente se detiene y pregunta en lugar de adivinar.
4. Cuando la macro supere 3 ejecuciones de validación, haz clic en **Añadir a mis macros**.

El resultado es un proyecto de Python normal que puedes abrir en el Code Editor. Generar la macro consume créditos de IA; ejecutar la macro terminada no cuesta nada. Más información en la página [MAS Agent](/docs/agent).

### Escribir Python para automatizar aplicaciones Android

1. Abre **Macros** y haz clic en **Crear nuevo proyecto**.
2. Elige **Basado en código**, pon **Dispositivo objetivo** en móvil, nombra el proyecto y haz clic en **Crear proyecto**.
3. Abre el proyecto. El Code Editor muestra `src/app.py`. Pega el script de abajo.
4. Elige tu dispositivo y haz clic en **Ejecutar** (<kbd>F5</kbd>). **Detener** es <kbd>Mayús</kbd>+<kbd>F5</kbd> y **Guardar** es <kbd>Ctrl</kbd>+<kbd>S</kbd>.

La [introducción al SDK](/docs/sdk) explica los espacios de nombres; la [referencia de la API](/docs/api-reference) lista todas las funciones.

## Tu primer script

Este script lee el dispositivo, hace una captura de pantalla y pasa OCR por toda la pantalla. No cambia nada en el dispositivo.

```python
import mas

device = mas.get_device_info()
print(f"Connected to: {device.name}")

screen = mas.get_screen_size()
print(f"Screen: {screen.width}x{screen.height}")

shot = mas.take_screenshot()
print(f"Screenshot: {shot.width}x{shot.height}")

result = mas.read_text()
print(f"Screen text: {result.text[:100]}")

mas.log("First script finished")
```

`mas.log` escribe una línea con nivel en la consola de ejecución. Un `print` normal también funciona.

## Patrones habituales

### Encontrar una imagen y tocarla

Recorta el botón en Asset Lab para que llegue a tu biblioteca de imágenes con un ID y decláralo con `mas.images`. `find_object_retry` busca hasta tres veces, con dos segundos entre intentos, y devuelve `None` cuando nada coincide.

```python
import mas

images = mas.images({"play_button": 42})

match = mas.find_object_retry(images.play_button, total_tries=3, time_sleep=2.0)
if match:
    mas.click(match.x, match.y, delay_ms=1000)
else:
    mas.log("Play button not found", level="warning")
```

`find_object` compara con un umbral de 0.8 por defecto. `click` espera 1000 ms tras el toque para que la app reaccione; baja `delay_ms` en bucles rápidos.

### Leer texto de una región

```python
import mas
from mas import Region

score = mas.read_text(region=Region(x1=800, y1=10, x2=1050, y2=60), psm=7)
if score.text.strip().isdigit():
    print(f"Current score: {int(score.text)}")
```

`psm=7` trata la región como una sola línea, lo que va bien para contadores. Dibuja la región en Asset Lab y pruébala en directo antes de copiar las coordenadas.

### Gestionar errores

```python
import mas

try:
    match = mas.find_object_retry(42)
    if match:
        mas.click(match.x, match.y)
except mas.DeviceNotConnectedError:
    mas.log("No device connected", level="error")
except mas.ImageNotFoundError:
    mas.log("Image ID is not in your library", level="error")
except mas.TimeoutError:
    mas.log("The device did not answer in time", level="error")
except mas.RPCError as e:
    mas.log(f"RPC error: {e}", level="error")
```

## Solución de problemas

### Could not discover RPC port

El script se inició fuera de MAS o la app no está abierta. Ejecuta los scripts desde el Code Editor o desde una tarjeta de dispositivo; la app los lanza con los datos de conexión.

### La app abre Suscripción en vez de la página que elegí

Tu suscripción falta o ha caducado. Inicia la prueba o elige un plan y vuelve. Consulta [Facturación](/docs/billing).

### Dispositivo no encontrado o atascado en Conectando

El ADB del emulador está apagado, el emulador aún está arrancando o escucha en otro puerto. Consulta [Solución de problemas de ADB](/docs/adb-troubleshooting).
