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
Nesta página
- Antes de começar
- 1. Instalar o MEmu
- 2. Definir uma resolução fixa
- 3. Ativar o ADB no MEmu
- 4. A porta ADB do MEmu e como o MAS a escaneia
- 5. Conectar o MEmu Play pelo ADB no MAS
- Macros no MEmu
- Várias instâncias do MEmu
- Solução de problemas
- MEmu ADB connect
- MEmu ADB device offline
- Gravador de macros do MEmu versus o MAS
- 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
- Baixe o MEmu no site do fabricante e rode o instalador.
- Abra o MEmu e aguarde a tela inicial.
- 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
memuheadlessoumemuhyper. - 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
- Abra Grupos de dispositivos na barra lateral e abra um grupo, ou crie um.
- Clique em Adicionar dispositivo.
- Digite um Nome do dispositivo com até 50 caracteres.
- Em Porta, escolha a entrada
MEmudesta instância. Clique em Atualizar se a lista estiver vazia. - 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.
- Se quiser, escolha uma Macro inicial.
- 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.
- Para reconstruir uma rotina gravada como uma macro que enxerga a tela, siga Macros com reconhecimento de imagem.
- Para colocá-la em loop até uma condição ser atendida, ou rodá-la em um agendamento, leia Loops, condições de parada e agendamento.
- As macros do Marketplace são instaladas como macros do MAS e rodam no dispositivo que você atribuir.
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.
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
Obrigado. Se algo estiver errado, conte para a gente no Discord.
Dúvidas? Pergunte no Discord