Documentação
Tudo o que o EmuLabZip faz, um guia por recurso: do primeiro uso à linha de comando e ao servidor MCP para assistentes de IA.
Primeiros passos
Instale, conecte seu primeiro emulador ou simulador e resolva os problemas comuns.
- Primeiros passosDo primeiro uso à leitura dos logs do seu app em poucos minutos: instale o EmuLabZip, prepare as ferramentas da plataforma, inicie um dispositivo e explore.
- AndroidComo o EmuLabZip se conecta a emuladores e dispositivos Android via ADB, o que ele coleta de cada um, os estados possíveis de um dispositivo e dicas úteis.
- iOS SimulatorComo o EmuLabZip inspeciona o iOS Simulator com o xcrun simctl, o que ele coleta, como lidar com o volume do log unificado e quais são as limitações atuais.
- Dispositivos: emuladores e simuladoresCrie, inicie, pare, apague e exclua emuladores e simuladores pela view Devices ou pela linha de comando, e mantenha os snapshots de um emulador.
- Solução de problemasSoluções para os problemas mais comuns do EmuLabZip: dispositivos que não aparecem, logs vazios, falhas de rede, HTTPS, crashes, traces, vídeo, plugins e MCP.
Inspecione seu app
Logs, layout, storage, crashes, stacks legíveis, frameworks e web views.
- LogsO visualizador de logs acompanha o logcat no Android e o log unificado no iOS: filtros, leitura, pausa, exportação e limites de linhas explicados.
- Layout e acessibilidadeVeja as views na tela com um screenshot, a árvore de views e suas propriedades, e rode uma auditoria de acessibilidade pela interface, CLI ou assistentes.
- StorageA ferramenta Storage navega pelos arquivos do app no Android e no iOS Simulator e abre bancos SQLite, preferências, Realm, MMKV e outros formatos no lugar.
- Alterando os dados de um appEdite linhas SQLite, SharedPreferences e property lists do app no dispositivo com confirmação, backup, verificação e desfazer, pela interface ou pela CLI.
- CrashesA ferramenta Crashes lista crashes, crashes nativos e ANRs de um dispositivo, com stack, detalhes e dicas do que tentar, e avisa quando surge um novo.
- Stacks legíveisTransforme stacks de builds de release em nomes legíveis com mapping.txt, source maps do React Native e dSYM, mantidos por app e versão.
- Por dentro dos frameworksVeja por dentro de apps Flutter, React Native, Jetpack Compose e SwiftUI: detecção do framework, árvore de widgets e componentes, frames, memória e console.
- Estado do React NativeLeia o estado ao vivo de um app React Native em desenvolvimento, com Redux, React Query, contextos e stores próprios, e acompanhe as ações do Redux.
- Páginas web em appsInspecione as páginas web dentro de apps híbridos: console, JavaScript e requisições da WebView, como no DevTools do Chrome, e Safari no iOS.
Desempenho
CPU, memória, vazamentos, traces, energia, tempo de início e orçamentos.
- DesempenhoA ferramenta Performance mede CPU, memória, taxa de quadros e bateria do app e do dispositivo, com gráficos ao vivo dos últimos dois minutos.
- MemóriaA ferramenta Memory mostra para onde vai a memória do app, compara dois momentos para ver o que cresceu e gera heap dumps no Android e no iOS.
- Encontrando vazamentos em heap dumpsO EmuLabZip lê um .hprof do Android e um .memgraph do iOS e lista Activities vazadas, caminhos até a raiz do GC e objetos que mais retêm memória.
- TracesGrave o que o sistema e um app fizeram em alguns segundos, com Perfetto, simpleperf e Instruments, e descubra por que algo ficou lento, com flame graphs.
- EnergiaMeça quanta energia um app consome durante o uso, com estimativa em mAh no Android e tempo de CPU e estado térmico no iOS Simulator.
- Tempo de abertura do appMeça quanto tempo um app leva para abrir, de forma repetível, com início frio, morno ou quente e a mediana de várias execuções no Android e no iOS.
- Orçamentos e baselinesDefina quanto uma execução pode custar em abertura, memória, CPU, requisições e crashes, e faça o emulabzip ci falhar ao passar do orçamento ou da baseline.
Rede
Capture, simule e altere requisições; GraphQL, gRPC, WebSockets, replay e analytics.
- NetworkA ferramenta Network é um proxy de depuração que decifra HTTPS com uma CA local e lista cada requisição com cabeçalhos, corpo e tempos, sem mudar o app.
- Mocks e breakpointsUse regras no proxy para mudar o que o app recebe sem tocar no servidor: responda você mesmo, atrase, falhe ou pare uma requisição e edite à mão.
- Regras de rede: arquivos, outros servidores e contratosRegras de rede que respondem com um arquivo local, enviam a requisição a outro servidor, validam a resposta contra um OpenAPI e se encadeiam.
- Scripts de regraEscreva scripts WebAssembly que inspecionam uma requisição ou resposta e decidem o que fazer: adicionar cabeçalho, ocultar campo ou falhar, em sandbox.
- Condições de redeTeste como um app lida com uma rede lenta, com latência, com perdas ou ausente, usando presets ou valores próprios aplicados na hora pelo proxy.
- GraphQLVeja requisições GraphQL na ferramenta Network nomeadas pela operação, com a query e as variáveis lidas, inclusive lotes, e erros na aba Response.
- gRPC e protobufVeja chamadas gRPC na ferramenta Network por método e status, com streaming, trailers e mensagens protobuf lidas como JSON, com ou sem arquivos .proto.
- Mensagens WebSocketVeja como o EmuLabZip lê o tráfego WebSocket como mensagens, na aba Messages, e quais são os limites de mensagens guardadas e do export HAR.
- Importando uma captura de pacotesAbra um arquivo .pcap ou .pcapng no EmuLabZip e veja requisições HTTP, conexões TLS e consultas DNS como no tráfego ao vivo, sem usar o proxy.
- Reproduzindo uma gravaçãoFaça o app rodar sem internet respondendo as requisições a partir de uma gravação, para reproduzir bugs de backend e manter testes de CI repetíveis.
- Inspetor de analyticsVeja decodificados, em tempo real, os eventos que um app envia ao Segment, Amplitude, Mixpanel e Firebase Analytics, em uma lista própria.
Qualidade
Segurança e privacidade, tamanho da build, idioma e tamanho de texto, regressão visual.
- Auditoria de segurança e privacidadeAudite um app em busca de segredos e dados pessoais no log, no armazenamento e nas requisições, de flags perigosas e de lacunas de privacidade no iOS.
- Tamanho do buildAnalise um APK, AAB ou IPA para ver onde estão os bytes, compare dois builds e falhe o CI quando o tamanho passar do orçamento definido no emulabzip.toml.
- Idioma, tamanho do texto e texto que não cabeMude o idioma e o tamanho do texto de um dispositivo, encontre texto que não cabe na tela e teste várias combinações de idioma e tamanho com um comando.
- Regressão visualGuarde uma imagem de como uma tela deve ser (a baseline) e veja o que mudou quando ela é diferente, com limite de tolerância, regiões ignoradas e CI.
Sessões e CI
Grave uma execução, leia sua linha do tempo, compare dispositivos, salve o estado do app, reporte bugs e rode no CI.
- SessõesGrave tudo o que acontece em um dispositivo enquanto um app é usado, em um único arquivo .ezsession que você abre depois, anexa a um bug ou coleta do CI.
- Linha do tempo e vídeo da telaVeja log, requisições, toques, quadros lentos, GCs e crashes de uma sessão em um só eixo de tempo, com o vídeo da tela gravado em pedaços ao lado.
- Comparando dois dispositivosColoque dois dispositivos lado a lado enquanto usa o app nos dois, com telas, gráficos de CPU e memória e uma lista das diferenças entre eles.
- Estado do app: salvar, restaurar e compararSalve todo o estado de um app (bancos, preferências, arquivos) em um .ezstate, restaure-o quando quiser e compare a estrutura entre dois salvamentos.
- Relatórios de bugEmpacote screenshot, dispositivo, log, requisições com falha e crashes legíveis em um único arquivo HTML e, se quiser, abra uma issue já preenchida.
- Modo CIGrave uma sessão em volta de qualquer comando de teste com emulabzip ci, mantendo o código de saída do comando e falhando por crash, orçamento ou regressão.
Automação e IA
Entrada e fluxos, deep links, controles do dispositivo, o servidor MCP para assistentes de IA e plugins.
- Entrada e fluxosToque, digite e pressione teclas em um dispositivo Android, grave o que você faz em um fluxo, reproduza-o e exporte para Maestro ou para um shell script.
- Deep linksAbra deep links no dispositivo e verifique se o domínio e o app concordam, com o que está certo, o que merece atenção e o que corrigir, no Android e no iOS.
- ControlsA ferramenta Controls muda o que um dispositivo informa ou faz: localização, tema, barra de status, bateria, permissões, notificações e links, tudo reversível.
- Servidor MCPO servidor MCP do EmuLabZip deixa um assistente de IA ler logs, crashes e requisições, controlar a tela e gravar sessões nos seus emuladores e simuladores.
- MCP referenceEvery tool, prompt and resource of the EmuLabZip MCP server for AI assistants, by area, with its arguments and whether it reads, changes or asks first.
- PluginsUm plugin é um coletor seu: uma pasta com plugin.json e um programa que imprime JSON, e o EmuLabZip desenha métricas, tabelas, texto e linhas de log.
Personalização
Temas e layout.
- TemasO EmuLabZip tem dez temas; você pode criar o seu, importar o de outra pessoa e compartilhar o seu na galeria da comunidade, em Settings, Appearance.
- Personalizando o layoutRedimensione painéis, recolha ou reordene a barra lateral e ajuste largura da página, tamanho do texto, densidade e escala da interface em Settings.
Referência
A linha de comando, a arquitetura, a distribuição e o roadmap.
- Linha de comandoO comando emulabzip dá os mesmos dados do app desktop em um terminal ou script: dispositivos, logs, desempenho, rede, sessões, controles e muito mais.
- ArquiteturaComo o EmuLabZip é organizado em um workspace Cargo, com crates pequenos atrás de uma trait comum, dois front ends e as regras de projeto.
- DistribuiçãoComo publicar uma versão do EmuLabZip com o GitHub Actions a partir de uma tag, a assinatura de código opcional e como ativar as atualizações no app.
- RoadmapO plano do EmuLabZip por fases, do que já foi lançado (v0.1 a v0.14) ao que vem a seguir até a versão 1.0, com os limites conhecidos de cada fase.
- Como as ferramentas oficiais funcionamO que descobrimos sobre como o Xcode Instruments e os profilers do Android Studio coletam dados, e quais interfaces públicas o EmuLabZip usa no lugar.