EmuLabZip

Código aberto · MIT · v0.6

O laboratório de depuração do seu emulador Android e simulador iOS

O EmuLabZip reúne logs, tráfego de rede, desempenho, memória, armazenamento, crashes e acessibilidade dos seus emuladores Android e simuladores iOS em um único app nativo e rápido. Nada para instalar no dispositivo.

cargo install --git https://github.com/LuisPeixoto/EmuLabZip emulabzip-cli
  • Rust + Tauri
  • macOS · Windows · Linux
  • Android + iOS
  • MCP para assistentes de IA
App de desktop EmuLabZip mostrando a visão geral de um emulador Android: build, hardware, tela, bateria e uma prévia ao vivo

Funciona com

  • Android Emulator
  • iOS Simulator
  • ADB
  • simctl
  • Perfetto
  • Instruments
  • macOS
  • Windows
  • Linux

Tudo em um só lugar

Um laboratório para tudo que o seu emulador sabe

Chega de alternar entre Logcat, Instruments, os profilers do Android Studio e um proxy. O EmuLabZip usa as interfaces públicas de cada plataforma, então continua funcionando quando o Xcode e o Android Studio atualizam.

  • Logs ao vivo

    logcat e o log unificado do iOS em uma tabela fluida com milhares de linhas por segundo e filtros por nível, tag, texto e regex.

  • Desempenho

    CPU, memória, taxa de quadros, quadros lentos e bateria do app que você escolher, em gráficos em tempo real.

  • Memória

    Snapshots com diff por categoria, além de heap dumps (.hprof) e grafos de memória (.memgraph) a um clique.

  • Armazenamento

    Explore o sandbox de um app e abra bancos SQLite, preferências, property lists, JSON e imagens sem sair da ferramenta.

  • Proxy de rede

    Descriptografe o HTTPS do seu app, leia cabeçalhos e corpos, acompanhe WebSockets e HTTP/3, exporte HAR e importe capturas de pacotes.

  • Mocks e breakpoints

    Responda você mesmo a uma requisição, deixe-a lenta, bloqueie ou pare-a para editar a requisição ou a resposta.

  • Traces e flame graphs

    Traces de sistema do Perfetto com SQL, simpleperf e gravações do Instruments, exibidos como flame graphs.

  • Crashes e ANRs

    Crashes, crashes nativos e ANRs com stacks, os dados que o dispositivo registrou e dicas de simbolização.

  • Controles do dispositivo

    Mude localização, modo escuro, barra de status, bateria, permissões, notificações e links, sempre com um jeito de voltar.

  • Layout e acessibilidade

    Veja cada view de uma tela e audite rótulos, áreas de toque e contraste, no Android e no simulador do iOS.

  • Sessões e CI

    Grave uma execução inteira em um arquivo e deixe o emulabzip ci gravar em volta dos seus testes no GitHub Actions.

  • Comparar dispositivos

    Dois emuladores lado a lado: as duas telas, gráficos de CPU e memória e cada informação que difere.

Veja funcionando

Telas reais do app de verdade

Cada imagem é uma captura do EmuLabZip depurando um emulador Android ou um simulador iOS.

Tela de rede com requisições HTTPS de um emulador Android e HTTP/2 e HTTP/3 na coluna de protocolo

Requisições descriptografadas, com o protocolo usado

Cada requisição do seu app com cabeçalhos, corpos decodificados e tempos, e a versão do HTTP que cada uma usou.

Diálogo de regras com um mock que responde com o status 418

Mude o que o seu app recebe

Simule uma resposta, adicione um atraso, bloqueie uma requisição ou segure-a em um breakpoint, sem tocar no servidor.

Tela de layout com uma captura do Chrome em um emulador Android e a árvore das suas views

Cada view da tela

Uma captura com a árvore de views ao lado: nomes, tamanhos, ids e o que pode ser tocado.

Auditoria de acessibilidade listando áreas de toque pequenas e texto de baixo contraste em uma tela Android

Descubra no que um leitor de tela tropeçaria

Rótulos ausentes, áreas de toque pequenas e texto com pouco contraste, cada um com a view, o critério WCAG e a correção.

Tela de sessões resumindo uma execução gravada, com um crash, erros repetidos e requisições lentas

Uma execução inteira em um arquivo

Erros, crashes, requisições, CPU e memória de uma execução, guardados em um arquivo que você abre depois ou coleta do CI.

Flame graph de um perfil de CPU de um emulador Android

Para onde vai o tempo de CPU

Um perfil de CPU do sistema inteiro como flame graph, colorido conforme de quem é o código.

Tela de crashes mostrando um ANR com a thread principal bloqueada e dicas

Crashes, com o que tentar a seguir

Stacks agrupadas por thread, os detalhes do próprio dispositivo e dicas de simbolização.

Tela de comparação com um emulador Android e um simulador iOS lado a lado

Dois dispositivos lado a lado

Um emulador Android ao lado de um simulador de iPhone, com gráficos e uma tabela de diferenças.

Para scripts e CI

Uma linha de comando com tabelas para pessoas e JSON para scripts

O mesmo motor do app, em um binário pequeno. Use no seu notebook ou no pipeline de CI.

  • Simule ou bloqueie requisições a partir de um arquivo JSON com net --rules
  • Quebre o build quando a tela piorar com a11y --fail-on
  • Grave logs, requisições, crashes e capturas em volta dos seus testes com ci
  • Funciona em macOS, Windows e Linux, com emuladores Android e simuladores iOS

Feito para assistentes de IA

Deixe seu assistente de IA olhar o emulador

O EmuLabZip inclui um servidor MCP. Conecte o Claude, ou qualquer cliente MCP, e ele poderá ler logs e crashes, tirar capturas de tela, auditar uma tela e controlar o dispositivo.

  • 29 ferramentas: logs, crashes, traces, layout, sessões e controles do dispositivo
  • Fala apenas por entrada e saída padrão, sem abrir nenhuma porta de rede
  • As ações são validadas e os plugins só rodam depois que você os ativa

Veja como conectar um assistente

Por que o EmuLabZip

Feito para você confiar seus dispositivos a ele

Uma ferramenta pequena, rápida e honesta, feita às claras.

  • Código aberto, MIT

    Leia o código, rode, altere. Sem conta, sem telemetria e sem conexões próprias.

  • Só interfaces públicas

    ADB, simctl, Perfetto e a árvore de acessibilidade. Sem frameworks privados e sem agente instalado no dispositivo.

  • Android e iOS juntos

    Uma ferramenta e um hábito só para as duas plataformas, em vez de uma ferramenta para cada.

  • Nativo e leve

    Um núcleo em Rust com interface Tauri: download pequeno, início rápido e pouco uso de memória.

  • Desfaz o que muda

    As configurações de proxy e as alterações no dispositivo são restauradas ao parar, mesmo depois de um erro.

  • Feito para automatizar

    Cada recurso está na linha de comando e no servidor MCP, com saída em JSON.

Roadmap

Para onde o EmuLabZip está indo

Seis fases já foram concluídas. As quatro próximas levam a uma versão 1.0 estável.

  1. v0.1 – v0.3

    Observar

    Dispositivos, logs, desempenho, memória, armazenamento e o proxy de rede.

  2. v0.4

    Traces

    Perfetto, simpleperf e Instruments, com flame graphs e SQL.

  3. v0.5

    Crashes e automação

    Crashes, controles do dispositivo, um servidor MCP e plugins.

  4. v0.6

    Ferramentas avançadas

    Mocks, breakpoints, WebSockets, HTTP/3, layout, acessibilidade, sessões e CI.

  5. v0.8

    Por dentro dos frameworks

    Flutter, React Native, Compose e SwiftUI; gRPC e GraphQL.

  6. v0.9

    Dispositivos e plataformas

    iPhones físicos, Android por Wi-Fi, Wear OS, TV e plataformas da Apple.

  7. v1.0

    Equipe e ecossistema

    Relatórios compartilháveis, bibliotecas de regras, uma extensão do VS Code e uma promessa de estabilidade.

Perguntas

Perguntas frequentes

O que é o EmuLabZip?

O EmuLabZip é um app de desktop e uma ferramenta de linha de comando, gratuitos e de código aberto, para inspecionar, monitorar e depurar apps rodando em emuladores Android e simuladores iOS: logs, tráfego de rede, desempenho, memória, armazenamento, crashes, layout e acessibilidade.

O EmuLabZip é gratuito?

Sim. O EmuLabZip é código aberto com licença MIT. Não há conta, plano pago nem telemetria.

Em quais sistemas operacionais funciona?

macOS, Windows e Linux. Os simuladores de iOS precisam de um Mac com Xcode, porque a Apple só os oferece lá. Os emuladores Android funcionam nos três sistemas.

Preciso instalar algo no emulador?

Não. O EmuLabZip usa as ferramentas públicas de cada plataforma (ADB e simctl), então nada é instalado no dispositivo nem dentro do seu app.

Ele consegue ver o tráfego HTTPS do meu app?

Sim. O proxy embutido descriptografa o HTTPS quando o emulador confia no certificado do EmuLabZip, que o app instala para você. Apps que fixam o certificado passam sem alteração.

Funciona com assistentes de IA?

Sim. O EmuLabZip inclui um servidor MCP, então assistentes como o Claude podem ler logs e crashes, tirar capturas de tela, auditar acessibilidade e controlar o dispositivo.

Posso usar no CI?

Sim. O comando emulabzip ci grava uma sessão em volta do seu comando de testes, mantém o código de saída dele e pode reprovar a execução quando o app dá crash ou a tela tem problemas de acessibilidade.

Suporta dispositivos físicos?

Ainda não. Hoje há suporte a emuladores Android e simuladores iOS. iPhones físicos e Android por Wi-Fi estão previstos para a v0.9.

Comece a depurar seus emuladores em um minuto

Baixe o app, inicie um emulador ou um simulador e ele aparece sozinho.

Criado por Luis Peixoto

O EmuLabZip é criado e mantido por Luis Peixoto, engenheiro de software que trabalha com apps mobile em React Native e Flutter e construiu o laboratório que queria para depurar emuladores e simuladores.

GitHub · luispeixoto.dev