Buscar

Dispositivos

MEmu ADB: conectar o MEmu Play ao MAS pela porta 21503

Conecte o MEmu Play ao Macro Automation Studio pelo ADB na porta 21503, adicione-o como dispositivo, corrija o erro offline e rode macros no lugar do gravador.

  • Windows
  • Emulador
  • Studio
  • SDK Python
Iniciante Atualizado em 6 min de leitura
Nesta página
  1. Antes de começar
  2. 1. Instalar o MEmu
  3. 2. Definir uma resolução fixa
  4. 3. Ativar o ADB no MEmu
  5. 4. A porta ADB do MEmu e como o MAS a escaneia
  6. 5. Conectar o MEmu Play pelo ADB no MAS
  7. Macros no MEmu
  8. Várias instâncias do MEmu
  9. Solução de problemas
  10. MEmu ADB connect
  11. MEmu ADB device offline
  12. Gravador de macros do MEmu versus o MAS
  13. Controle pelo Python

Este guia mostra como conectar o MEmu Play ao Macro Automation Studio (MAS) pelo MEmu ADB, e como as macros do MAS diferem do gravador de macros do MEmu. O MEmu só existe para Windows, então todos os passos abaixo são passos de Windows.

Antes de começar

  • MAS instalado e com login feito no Windows 10 ou 11. O MAS é um download gratuito para o teste; pegue-o na página de download.
  • MEmu instalado a partir de memuplay.com e aberto pelo menos uma vez.
  • A instância totalmente iniciada até a tela inicial do Android.
  • Virtualização ativada na BIOS para uma instância estável.

1. Instalar o MEmu

  1. Baixe o MEmu no site do fabricante e rode o instalador.
  2. Abra o MEmu e aguarde a tela inicial.
  3. Faça login nos apps que você quer automatizar antes de adicionar o dispositivo ao MAS.

2. Definir uma resolução fixa

O MAS compara imagens template pixel a pixel. Abra as configurações do MEmu, escolha uma resolução fixa e mantenha. Macros escritas contra a base do MAS esperam 540x960 em retrato a 240 DPI; uma macro que você mesmo escreve espera a resolução que você capturou no Asset Lab. Reinicie a instância se o MEmu pedir.

3. Ativar o ADB no MEmu

A documentação oficial do MEmu não mostra nenhum botão de ADB. Uma instância em execução encaminha a porta adb do Android para o host como 127.0.0.1:21503, que é o endereço usado no guia de linha de comando do próprio MEmu. Se a sua build do MEmu tiver uma opção de ADB ou de desenvolvedor em Configurações, deixe-a ligada. Abra a instância e aguarde a tela inicial antes de continuar.

4. A porta ADB do MEmu e como o MAS a escaneia

A instância padrão do MEmu escuta em 21503. O MAS não usa adb devices para descobrir emuladores. Ele escaneia os processos em execução e mantém as portas que seguem estas regras:

  • O nome do processo contém memuheadless ou memuhyper.
  • A porta é 21503 ou maior, termina em 3 e está abaixo de 30000. Portas como 21513 e 21523 também batem, portanto.
  • O socket escuta em 127.0.0.1.

As portas que batem aparecem na caixa de diálogo Adicionar dispositivo com o rótulo MEmu, por exemplo 21503 - MEmu. O escaneamento roda quando você abre um grupo de dispositivos e a cada clique em Atualizar.

5. Conectar o MEmu Play pelo ADB no MAS

  1. Abra Grupos de dispositivos na barra lateral e abra um grupo, ou crie um.
  2. Clique em Adicionar dispositivo.
  3. Digite um Nome do dispositivo com até 50 caracteres.
  4. Em Porta, escolha a entrada MEmu desta instância. Clique em Atualizar se a lista estiver vazia.
  5. Se o MEmu usar uma porta que não segue a regra acima, escolha Porta personalizada e digite-a. O MAS aceita de 1024 a 65535.
  6. Se quiser, escolha uma Macro inicial.
  7. Clique em Adicionar dispositivo e depois em Iniciar no card do dispositivo.

O card mostra Conectando e depois Em execução. O MAS inicia seu servidor adb, remove qualquer entrada antiga de 127.0.0.1:<port> e roda adb connect contra ela.

Macros no MEmu

O gravador de macros do MEmu captura toques e deslizes em coordenadas fixas e os repete, opcionalmente em repetição. Ele não olha para a tela, então um carregamento lento, um pop-up ou um botão que mudou de lugar quebra a sequência, e a rotina só funciona dentro do MEmu.

Uma macro do MAS é um script Python que verifica a tela antes de agir. Ela encontra um botão com template matching, lê texto com OCR, espera com tentativas repetidas e ramifica conforme o que vê. O mesmo script roda no MEmu, em outros emuladores e em um dispositivo na nuvem sem alterações, porque o MAS controla o dispositivo por adb.

Várias instâncias do MEmu

Cada instância do gerenciador de multi-instâncias do MEmu escuta na própria porta. Adicione cada uma como um dispositivo separado no mesmo grupo de dispositivos, atribua uma macro e um perfil de configurações por dispositivo e use Iniciar todos e Parar todos no grupo. Veja Grupos de dispositivos para argumentos e proxies por dispositivo.

Solução de problemas

MEmu ADB connect

O card do dispositivo mostra Erro ou “Failed to start device”, ou o MAS não lista nenhuma entrada MEmu. Percorra estas causas:

  • A instância ainda está iniciando. Aguarde a tela inicial, depois clique em Atualizar e inicie de novo.
  • A porta não segue a regra de escaneamento, então o MAS a pulou. Use Porta personalizada com o número que o MEmu usa.
  • A porta pertence a outra instância. Corrija com Editar dispositivo no card.
  • O escaneamento informou “Failed to scan emulator ports”. Reinicie o MAS e abra a caixa de diálogo de novo.
  • O adb imprimiu “connection refused” ou “cannot connect” nos logs do dispositivo. Nada está escutando nessa porta; reinicie a instância e confira o número de novo.

MEmu ADB device offline

O adb marca um dispositivo como offline quando o daemon adb dentro da instância para de responder, o que costuma acontecer depois de uma suspensão, uma atualização ou um segundo servidor adb na máquina. Clique em Parar no card, reinicie a instância do MEmu, feche qualquer outra ferramenta que rode o próprio servidor adb e clique em Iniciar. O MAS desconecta a entrada antiga e reconecta a cada início. Se continuar offline, reinicie o MAS para que o servidor adb dele inicie limpo.

Gravador de macros do MEmu versus o MAS

Uma rotina gravada no MEmu não pode ser importada para o MAS, porque o MAS só roda macros Python. Recrie-a: capture os botões como templates no Asset Lab, clique neles com find_object_retry e faça o loop com uma condição de parada. O resultado sobrevive a pop-ups, carregamentos lentos e mudanças de layout que quebram uma sequência gravada, e roda em qualquer dispositivo que o MAS controle. Se uma macro do MAS travar, abra Logs no card do dispositivo: ImageNotFoundError e TimeoutError nomeiam o passo que falhou.

Controle pelo Python

Com o card em Em execução, o src/app.py de uma macro controla a instância pelo pacote mas. A porta é escolhida pelo MAS, então os scripts nunca a referenciam.

python
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)

Leia a visão geral do SDK para todos os namespaces, e Controlar um emulador Android pelo Python para um primeiro script completo.

Próximos passos

Páginas relacionadas

Esta página foi útil?

Dúvidas? Pergunte no Discord