# Multi instância de emulador Android: grupos de dispositivos

> Agrupe janelas de emulador Android multi-instância e dispositivos na nuvem no MAS, dê a cada um macro, argumentos e proxy, e inicie todos de uma vez.

Source: https://automationmacro.com/pt-BR/docs/device-groups (Dispositivos, updated 2026-09-05)

Um grupo de dispositivos é a unidade que o Macro Automation Studio (MAS) usa para rodar macros em mais de um dispositivo, seja uma configuração multi-instância de emulador Android ou um conjunto de dispositivos na nuvem. Cada dispositivo do grupo tem sua própria macro, argumentos, proxy e webhooks, e o grupo tem **Iniciar todos** e **Parar todos**. Esta página cobre os dois tipos de grupo, a configuração por dispositivo, as execuções em massa, os logs e o agendamento.

## Antes de começar

- O MAS está instalado e você fez login com um teste ou plano ativo.
- Para um grupo local: uma ou mais instâncias de emulador abertas com o ADB ligado. Veja [Dispositivos](/docs/devices) para as regras de porta.
- Para um grupo na nuvem: pelo menos um dispositivo na nuvem criado na página **Dispositivos na nuvem**. Veja [Dispositivos na nuvem](/docs/cloud-devices). A [página de dispositivos na nuvem](/cloud-devices) explica o que o complemento inclui.

## Dois tipos de grupo

Um grupo contém um único tipo de dispositivo, escolhido na criação e fixo depois:

| Tipo | Opção em Tipo | O que contém | Onde as macros rodam |
|---|---|---|---|
| Local (`byod`) | **Local** | Emuladores neste computador, e o seu próprio celular por adb | Neste computador, controlando o dispositivo por adb |
| Nuvem | **Nuvem** | Dispositivos na nuvem que o MAS roda para você | Nos servidores do MAS, então o app pode fechar |

Um dispositivo na nuvem só pode entrar em um grupo na nuvem, e um emulador só pode entrar em um grupo local. Misturar é recusado com "a cloud device can only be added to a cloud group".

## Criar um grupo

1. Abra **Grupos de dispositivos** na barra lateral e clique em **Criar novo grupo**.
2. Digite um **Nome** de 3 a 255 caracteres e uma **Descrição** opcional.
3. Escolha o **Tipo**: **Local** ou **Nuvem**.
4. Clique em **Criar grupo**.

A lista de grupos mostra todo grupo com a contagem de dispositivos e uma contagem ao vivo dos dispositivos em execução. Use a visualização em grade ou em tabela, ordene por nome, idade ou contagem de dispositivos, e pesquise por nome. **Editar** muda o nome e a descrição; o tipo não pode mudar.

## Adicionar dispositivos

<div class="doc-tabs" data-tabs="kind">
<section data-tab="Grupo local">

1. Abra o grupo e clique em **Adicionar dispositivo**.
2. Digite um **Nome do dispositivo**.
3. Escolha a porta do emulador em **Porta**. Clique em **Atualizar** para escanear de novo, ou escolha **Porta personalizada** e digite-a.
4. Se quiser, escolha uma **Macro inicial**.
5. Clique em **Adicionar dispositivo**.

</section>
<section data-tab="Grupo na nuvem">

1. Abra o grupo e clique em **Adicionar dispositivo na nuvem**.
2. Escolha um dispositivo na lista. Os dispositivos que já estão neste grupo ficam ocultos.
3. Clique em **Adicionar**.

Dispositivos na nuvem são criados na página **Dispositivos na nuvem**, não aqui. Se a lista estiver vazia, a caixa de diálogo leva você até lá.

</section>
</div>

### BlueStacks, LDPlayer e outros emuladores Android multi-instância

Toda instância de emulador escuta na própria porta adb, e o MAS trata toda porta como um dispositivo separado. Três janelas do BlueStacks ou três instâncias do LDPlayer viram, portanto, três dispositivos no grupo, cada um com sua macro e seus argumentos. Os guias do [BlueStacks](/docs/bluestacks-setup-guide), do [LDPlayer](/docs/ldplayer-setup-guide), do [MuMu Player](/docs/mumu-setup-guide) e do [MEmu](/docs/memu-setup-guide) mostram onde fica a porta de cada instância, e o [guia de multi-instância](/docs/guides/multi-instance) monta uma farm completa.

> [!TIP]
> Dê aos dispositivos nomes iguais aos das instâncias do emulador. Os logs, o histórico de execuções e os payloads de webhook carregam o nome do dispositivo, então "LD-3" é mais fácil de rastrear do que "Dispositivo 7".

## Configurar cada dispositivo

Todo card de dispositivo tem os mesmos controles:

- **Macro**: escolha a macro que este dispositivo roda. Um dispositivo sem macro é pulado por **Iniciar todos**.
- **Configurações da macro**: abre o formulário de argumentos da macro para este dispositivo. A barra **Perfil** no topo decide onde os valores vivem: um [perfil de configurações](/docs/settings-profiles) nomeado, compartilhado por todo dispositivo que o segue, ou **Personalizado (somente este dispositivo)**. Salvar um perfil atualiza todo dispositivo que o usa, e a barra diz quantos. Toda macro tem um perfil **Padrão** que não pode ser excluído. **Novo** salva os valores atuais como um perfil novo.
- **Contagem de execuções**: quantas vezes a macro se repete neste dispositivo.
- **Configurações avançadas**: o seletor de **Proxy**, a linha **Notificações** mostrando quantos webhooks são avisados sobre este dispositivo, com um link **Gerenciar**, e **Dados do proxy hoje**.
- **Editar dispositivo** muda o nome e a porta; o botão de lixeira remove o dispositivo do grupo.

Clique em **Salvar alterações** depois de editar a macro ou a contagem de execuções. As escolhas de proxy e de perfil salvam sozinhas.

### Proxy por dispositivo

Escolha um proxy na lista **Proxy**; **Sem proxy** o remove. Um proxy por dispositivo, fixo por padrão para cada dispositivo manter o próprio IP. Em um emulador, o proxy é aplicado durante cada execução; em um dispositivo na nuvem, ele é aplicado na próxima vez que o dispositivo iniciar. Detalhes, limites e o IP de saída nos webhooks estão na página [Proxies](/docs/proxies).

### Webhooks por dispositivo

Os endpoints de webhook têm escopo definido na página **Webhooks**: todos os dispositivos, grupos escolhidos ou dispositivos escolhidos. O card do dispositivo só informa quantos endpoints cobrem este dispositivo; mude o escopo na página Webhooks. Os eventos de execução carregam `device_id`, `device_name`, `device_port` e `group_id`, então um único endpoint consegue distinguir os dispositivos. Veja [Webhooks](/docs/webhooks).

## Iniciar e parar

**Iniciar** em um card roda só aquele dispositivo. Em um dispositivo local, o MAS conecta por adb e inicia a macro; em um dispositivo na nuvem, ele inicia uma execução no servidor.

**Iniciar todos** roda o grupo inteiro:

- Os dispositivos iniciam um após o outro, com meio segundo de intervalo, na ordem da lista.
- Um dispositivo sem macro atribuída é pulado e contado como falha; os outros iniciam mesmo assim.
- O resultado é uma contagem, por exemplo 9 com sucesso e 1 com falha, com até 5 mensagens de erro na notificação. A caixa de diálogo **Iniciando todos os dispositivos** mostra o progresso e um log da operação.
- Em um grupo na nuvem, **Iniciar todos** dispara uma execução no servidor por dispositivo, um de cada vez. O limite de dispositivos em execução do seu plano continua valendo, então um dispositivo que não consegue iniciar avisa na própria notificação.

**Parar todos** encerra toda execução do grupo do mesmo jeito. Parar uma execução na nuvem deixa o dispositivo na nuvem ligado.

Cada card mostra o seu estado: **Parado**, **Conectando**, **Baixando**, **Iniciando**, **Em execução**, **Parando** ou **Erro**. O cabeçalho do grupo resume em contagens de ativos, ociosos e com erro.

## Logs por dispositivo

Todo card tem uma aba **Dashboard**, que mostra a interface de execução da macro quando ela tem uma, e uma aba **Logs** com a saída do próprio dispositivo:

- Filtre por **Todos**, **Usuário**, **Exec**, **Erros** ou **Avisos**. As linhas de Usuário são a saída de `print` e `mas.log` do seu script; as linhas de Exec vêm do executor.
- **Pesquisar logs** filtra por texto, **Seguir** mantém a linha mais nova à vista, e **Hora** alterna as marcações de tempo.
- **Salvar** grava o log em um arquivo; **Limpar** esvazia o painel.

Os eventos de proxy e de webhook aparecem no mesmo painel, por exemplo "Proxy connected via office, traffic routed through 203.0.113.9". O painel de um dispositivo na nuvem mostra o final da saída da execução no servidor. As execuções concluídas, com código de saída e duração, ficam listadas em **Execuções**.

## Agendar um grupo

O [Agendador](/docs/scheduler) roda uma macro em uma porta, em um horário que ele escolhe entre os seus dispositivos. Para agendar um grupo inteiro, crie um job por dispositivo com o mesmo horário e a mesma recorrência. As execuções agendadas em um dispositivo que pertence a um grupo carregam o id desse grupo, então os webhooks com escopo de grupo também disparam para elas.

## Rotas de grupos e dispositivos para chaves de API

Uma [chave de API](/docs/api-keys) pode ler seus grupos e dispositivos: `GET /api/emulator/groups` e `GET /api/emulator/devices`. As duas retornam só o que o dono da chave possui, e as linhas de dispositivo incluem porta, macro, grupo e perfil de configurações. Criar, editar e excluir grupos ou dispositivos, e iniciá-los ou pará-los, exige o login do próprio app. Veja a [API REST](/docs/rest-api).

## Solução de problemas

### Iniciar todos informa dispositivos com falha

Abra a notificação ou o log da operação. "device X has no macro assigned" significa que o card não tem nenhuma **Macro** selecionada. Um dispositivo local que não consegue conectar falha com o erro do adb; siga a [Solução de problemas de ADB](/docs/adb-troubleshooting). Os dispositivos que iniciaram continuam rodando.

### Um dispositivo na nuvem não entra no grupo

O grupo é um grupo local. Crie um grupo com o **Tipo** definido como **Nuvem** e adicione o dispositivo ali. A mesma regra impede um emulador de entrar em um grupo na nuvem.

### Duas instâncias mostram a mesma porta

Cada porta pertence a um único dispositivo. Se duas janelas de emulador informam a mesma porta, uma delas está com o ADB desligado ou não terminou de iniciar. Aguarde a segunda instância terminar o boot, clique em **Atualizar** na lista de portas e adicione-a com a própria porta.
