Dispositivos
Automação de emulador Android: emuladores, nuvem e celular
Automação de emulador Android no MAS: os emuladores que ele detecta, as regras de porta adb, como adicionar um dispositivo pela porta, nuvem e celular.
- Windows
- Mac
- Emulador
- Dispositivo na nuvem
- Celular
- Studio
- SDK Python
Nesta página
A automação de emulador Android no Macro Automation Studio (MAS) começa com um dispositivo: um emulador Android neste computador, um dispositivo na nuvem do MAS ou, como caminho avançado, o seu próprio celular. Esta página explica como o MAS encontra os emuladores, como você adiciona um e onde os outros dois tipos se encaixam.
Antes de começar
- O MAS está instalado e você fez login com um teste ou plano ativo. Veja Instalar o MAS. O MAS é um download gratuito para o teste; pegue-o na página de download.
- Para um emulador: o emulador está aberto e o ADB está ativado nas configurações dele. Os guias do BlueStacks, do LDPlayer, do MuMu Player e do MEmu mostram onde.
- Para um dispositivo na nuvem: um plano com o complemento de dispositivos na nuvem. Veja Dispositivos na nuvem.
Como o MAS encontra a porta adb do emulador
O MAS não roda adb devices para encontrar emuladores. Ele escaneia os processos em execução em busca de nomes de emuladores conhecidos, lê as portas TCP em que cada um escuta e só mantém uma porta quando ela fica dentro da faixa conhecida daquele emulador. Só contam portas ligadas a 127.0.0.1, 0.0.0.0 ou a todas as interfaces. O resultado preenche a lista Porta na caixa de diálogo Adicionar novo dispositivo, uma entrada por porta com o nome do emulador ao lado.
| Emulador | Nomes de processo que o MAS procura | Portas que o MAS aceita |
|---|---|---|
| BlueStacks | HD-Player, BlueStacks | 5555 a 8500 |
| LDPlayer | LdVBoxHeadless, Ld9BoxHeadless, dnplayer, LDPlayer, VBoxNetNAT | Portas ímpares de 5555 a 5599 |
| Nox | NoxVMHandle | 62001 a 63000 |
| MEmu | MEmuHeadless, MEmuHyper | 21503 e toda porta terminada em 3 acima dela, abaixo de 30000 |
| MuMu Player | NemuHeadless, MuMu | Portas ímpares de 5555 a 5599, porta 7555, 16384 a 16576, ou 26624 a 27264 |
Cada instância de emulador escuta na própria porta, então duas janelas do BlueStacks aparecem como duas entradas. Se o seu emulador não está na tabela, ou escuta fora da faixa, você ainda pode digitar a porta à mão.
Adicionar um emulador Android como dispositivo de automação
- No MAS, abra Grupos de dispositivos e clique em Criar novo grupo.
- Digite um Nome (3 a 255 caracteres), mantenha o tipo Local e clique em Criar grupo.
- Abra o grupo e clique em Adicionar dispositivo.
- Digite um Nome do dispositivo com até 50 caracteres.
- Escolha a porta em Porta. Clique em Atualizar para escanear de novo. Se a porta não aparecer, escolha Porta personalizada e digite-a (1024 a 65535).
- Se quiser, escolha uma Macro inicial.
- Clique em Adicionar dispositivo.
O card do dispositivo mostra a porta, a macro e o estado: Parado, Conectando, Iniciando, Em execução, Parando ou Erro. Iniciar conecta ao emulador com adb connect 127.0.0.1:<port> e inicia a macro; Parar encerra a execução. Uma porta pode pertencer a um único dispositivo; adicioná-la duas vezes falha com “Port is already in use”. Para trocar a porta depois, clique em Editar dispositivo.
Vários dispositivos em um grupo podem ter macros, argumentos e perfis de configurações diferentes, e Iniciar todos roda um após o outro. Veja Grupos de dispositivos.
Dispositivos na nuvem
Um dispositivo na nuvem é um dispositivo Android que o MAS roda para você. Você o cria na página Dispositivos na nuvem com Criar, escolhendo a versão do Android, um preset de tela e um DPI que ficam fixos pela vida do dispositivo. Iniciar faz o boot, Visualizar abre a tela ao vivo transmitida por WebRTC e Executar inicia uma macro que continua depois de você fechar o app. Dispositivos parados mantêm os dados; uma conta pode ter até 20 dispositivos na nuvem. Todo o resto, incluindo instalação de APKs e cotas, está na página Dispositivos na nuvem.
Seu próprio celular
O MAS adiciona todo dispositivo local pela porta e sempre disca 127.0.0.1. Não há tela de pareamento USB nem de pareamento sem fio. Um celular, portanto, só funciona quando o daemon adb dele pode ser alcançado em uma porta TCP deste computador. Por USB, você chega lá com um encaminhamento de porta do adb.
- No celular, ative as Opções do desenvolvedor e a Depuração USB, depois conecte o celular ao cabo.
- No computador, rode
adb devicese aceite o pedido de autorização no celular. O serial do celular precisa aparecer comodevice. - Diga ao daemon adb do celular para escutar também em TCP:
adb tcpip 5555. - Encaminhe uma porta local para ele:
adb forward tcp:5580 tcp:5555. Escolha qualquer porta local livre; 5580 é só um exemplo. - Confira:
adb connect 127.0.0.1:5580deve responder “connected”. - No MAS, adicione um dispositivo com Porta personalizada definida como
5580.
Mantenha o celular conectado ao cabo e com a tela ligada. O tamanho da tela e o DPI vêm do celular, então templates recortados em um emulador não vão corresponder; recorte-os a partir do celular no Asset Lab.
A depuração sem fio funciona do mesmo jeito depois que o celular está pareado e conectado com adb connect <phone-ip>:<port>: encaminhe uma porta local para a porta adb do celular e adicione essa porta local no MAS.
Controle pelo Python
O SDK não se importa com o tipo de dispositivo por baixo. mas.get_device_info() retorna o nome e o tamanho da tela, mas.get_screen_size() só o tamanho, e todo toque, deslize e captura de tela passa pelas mesmas chamadas. Os scripts são iniciados pelo MAS com o dispositivo já vinculado, então não há nada para conectar no código. Comece pela visão geral do SDK.
Solução de problemas
A lista Porta está vazia
O emulador não está aberto, o ADB está desligado nas configurações dele, ou ele não é um dos emuladores que o MAS escaneia. Clique em Atualizar depois que o emulador terminar de iniciar. Se continuar vazia, use Porta personalizada com a porta mostrada nas configurações do próprio emulador. Veja Solução de problemas de ADB.
A porta já está em uso
Outro dispositivo em um dos seus grupos já é dono dessa porta. Cada porta pode ser adicionada uma vez. Remova a entrada antiga ou escolha a porta da outra instância.
O dispositivo fica em Conectando ou termina em Erro
O MAS não conseguiu completar o adb connect, ou o emulador recusou o primeiro comando. Confira a porta, confirme que o ADB está ligado e siga a Solução de problemas de ADB.
Próximos passos
Páginas relacionadas
Obrigado. Se algo estiver errado, conte para a gente no Discord.
Dúvidas? Pergunte no Discord