Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

Iniciar o emulador pela linha de comando

O SDK do Android inclui um emulador de dispositivo Android, um dispositivo virtual que é executado no computador. O Android Emulator permite desenvolver e testar apps para Android sem usar um dispositivo físico.

Esta página descreve os recursos de linha de comando que você pode usar com o Android Emulator. Para mais informações sobre como usar a IU do Android Emulator, consulte Executar aplicativos no Android Emulator.

Iniciar o emulador

Use o comando emulator para iniciar o emulador, como uma alternativa para executar seu projeto ou iniciá-lo com o AVD Manager.

Esta é a sintaxe básica da linha de comando para iniciar um dispositivo virtual por um prompt de terminal:

emulator -avd avd_name [ {-option [value]} … ]
    

Ou

emulator @avd_name [ {-option [value]} … ]
    

Por exemplo, se você iniciar o emulador a partir do Android Studio em execução em um Mac, a linha de comando padrão será semelhante à seguinte:

/Users/janedoe/Library/Android/sdk/emulator/emulator -avd Nexus_5X_API_23 -netdelay none -netspeed full

Você pode especificar opções de inicialização ao iniciar o emulador, mas não depois disso.

Para uma lista de nomes de AVD, digite o seguinte comando:

emulator -list-avds

Quando você usa essa opção, ela exibe uma lista de nomes de AVD do seu diretório inicial do Android. Observe que você pode modificar o diretório inicial padrão configurando a variável de ambiente ANDROID_SDK_HOME: a raiz do diretório específico do usuário em que toda a configuração e o conteúdo do AVD são armazenados. Você poderia definir a variável de ambiente na janela de terminal antes de iniciar um dispositivo virtual ou poderia defini-la nas configurações de usuário no sistema operacional, por exemplo, no arquivo .bashrc no Linux.

Para interromper o Android Emulator, basta fechar a janela do emulador.

Instalar um app

Além de instalar um app no Android Studio ou na IU do emulador, é possível instalá-lo em um dispositivo virtual usando o utilitário adb.

Para instalar um app usando o adb e, em seguida, executá-lo e testá-lo, siga estas etapas gerais:

  1. Crie e empacote o app em um APK, conforme descrito em Criar e executar seu app.
  2. Inicie o emulador pela linha de comando, conforme descrito na seção anterior, usando qualquer opção de inicialização necessária.
  3. Instale o app usando o adb.
  4. Execute e teste o app no emulador.
    Enquanto o emulador estiver em execução, você também poderá usar o Console do Emulator para emitir comandos conforme necessário.
  5. O dispositivo virtual preserva o aplicativo e os dados de estado nas reinicializações, em uma partição de disco de dados do usuário (userdata-qemu.img)). Para limpar esses dados, inicie o emulador com a opção -wipe-data ou apague os dados no AVD Manager, por exemplo. Para mais informações sobre a partição de dados do usuário e outro armazenamento, consulte a seção a seguir.
    Para desinstalar um app, faça isso da maneira como você faria em um dispositivo Android.

Observação: para o utilitário adb, o dispositivo virtual é como um dispositivo físico real. Por esse motivo, talvez seja necessário usar a sinalização -d com alguns comandos comuns do adb, como install. A sinalização -d permite especificar quais dos vários dispositivos conectados serão usados como destino de um comando. Se você não especificar -d, o emulador será direcionado ao primeiro dispositivo da lista dele.

Noções básicas sobre os diretórios e arquivos padrão

O emulador utiliza arquivos associados, sendo que o sistema AVD e os diretórios de dados são os mais importantes. Ele ajuda a entender a estrutura de diretórios e arquivos do emulador ao especificar opções de linha de comando. No entanto, não costuma ser necessário modificar os diretórios ou arquivos padrão.

O Android Emulator usa o hipervisor Quick Emulator (QEMU, link em inglês). As versões iniciais do Android Emulator usavam o QEMU 1 (goldfish) e versões posteriores usavam o QEMU 2 (ranchu).

Diretório do sistema AVD

O diretório do sistema contém as imagens do sistema Android que o emulador usa para simular o sistema operacional. Ele tem arquivos somente leitura específicos da plataforma compartilhados por todos os AVDs do mesmo tipo, incluindo o nível da API, a arquitetura da CPU e a variante do Android. Os locais padrão são os seguintes:

  • Mac OS X e Linux: ~/Library/Android/sdk/system-images/android-apiLevel/variant/arch/
  • Microsoft Windows XP: C:\Documents and Settings\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\
  • Windows Vista: C:\Users\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\

Em que:

  • apiLevel é um nível numérico de API ou uma letra para versões de pré-lançamento. Por exemplo, android-M indicava a versão de pré-lançamento do Android Marshmallow. No lançamento, tornou-se uma API de nível 23, designada por android-23.
  • variant é um nome que corresponde a recursos específicos implementados pela imagem do sistema, por exemplo, google_apis ou android-wear.
  • arch é a arquitetura de CPU de destino, por exemplo, x86.

Use a opção -sysdir para especificar um diretório de sistema diferente para o AVD.

O emulador lê os seguintes arquivos do diretório do sistema.

Arquivo Descrição Opção para especificar um arquivo diferente
kernel-qemu ou kernel-ranchu A imagem do kernel binário para o AVD. kernel-ranchu é o emulador QEMU 2, a versão mais recente. -kernel
system.img A versão inicial somente leitura da imagem do sistema. Especificamente, a partição que contém as bibliotecas do sistema e os dados correspondentes ao nível e à variante da API. -system
ramdisk.img A imagem da partição de inicialização. Este é um subconjunto de system.img que é carregado pelo kernel inicialmente antes que a imagem do sistema seja ativada. Geralmente contém apenas alguns binários e scripts de inicialização. -ramdisk
userdata.img A versão inicial da partição de dados, que aparece como data/ no sistema emulado e contém todos os dados graváveis para o AVD. O emulador usa esse arquivo quando você cria um novo AVD ou usa a opção ‑wipe-data. Para mais informações, consulte a descrição do arquivo userdata-qemu.img na seção a seguir. -initdata
-init-data

Diretório de dados AVD

O diretório de dados AVD, também chamado de diretório de conteúdo, é específico para uma única instância do AVD e contém todos os dados modificáveis do AVD.

O local padrão é o seguinte, em que name é o nome do AVD:

  • Mac OS X e Linux: ~/.android/avd/name.avd/
  • Microsoft Windows XP: C:\Documents and Settings\user\.android\name.avd\
  • Windows Vista e posterior: C:\Users\user\.android\name.avd\

Use a opção -datadir para especificar um diretório diferente de dados do AVD.

A tabela a seguir lista os arquivos mais importantes contidos nesse diretório.

Arquivo Descrição Opção para especificar um arquivo diferente
userdata-qemu.img

O conteúdo da partição de dados, que aparece como data/ no sistema emulado. Quando você cria um novo AVD ou usa a opção -wipe-data para redefinir o AVD para o padrão de fábrica, o emulador copia o arquivo userdata.img no diretório do sistema para criar esse arquivo.

Cada instância de dispositivo virtual usa uma imagem de dados do usuário gravável para armazenar dados específicos do usuário e da sessão. Por exemplo, ela usa a imagem para armazenar dados, configurações, bancos de dados e arquivos de apps instalados de um usuário único. Cada usuário tem um diretório ANDROID_SDK_HOME diferente que armazena os diretórios de dados para os AVDs criados por esse usuário. Cada AVD tem um único arquivo userdata-qemu.img.

-data
cache.img A imagem da partição de cache, que aparece como cache/ no sistema emulado. Ela não tem conteúdo quando você cria um AVD ou usa a opção -wipe-data. A imagem armazena arquivos de download temporários e é preenchida pelo gerenciador de downloads e, às vezes, pelo sistema. Por exemplo, o navegador a usa para armazenar, em cache, páginas da Web e imagens salvas enquanto o emulador está em execução. Quando você desliga o dispositivo virtual, o arquivo é excluído. Você pode manter o arquivo usando a opção -cache. -cache
sdcard.img

(Opcional) Uma imagem da partição do cartão SD que permite simular um cartão SD em um dispositivo virtual. Você pode criar um arquivo de imagem de cartão SD no AVD Manager ou usar a ferramenta mksdcard. O arquivo é armazenado no computador de desenvolvimento e precisa ser carregado na inicialização.

Quando estiver definindo um AVD no AVD Manager, você terá a opção de usar um arquivo do cartão SD gerenciado automaticamente ou um arquivo criado com a ferramenta mksdcard. Você pode ver o arquivo sdcard.img associado a um AVD no AVD Manager. A opção -sdcard modifica o arquivo do cartão SD especificado no AVD.

Você pode procurar, enviar, copiar e remover arquivos de um cartão SD simulado usando a IU do emulador ou o utilitário adb enquanto o dispositivo virtual estiver em execução. Não é possível remover um cartão SD simulado de um dispositivo virtual em execução.

Para copiar arquivos no arquivo do cartão SD antes de carregá-lo, você pode montar o arquivo de imagem como um dispositivo de loop e, depois, copiar os arquivos. Também é possível usar um utilitário como o pacote mtools para copiar os arquivos diretamente para a imagem.

O emulador trata o arquivo como um conjunto de bytes, então, o formato do cartão SD não importa.

A opção -wipe-data não afeta este arquivo. Se quiser limpar o arquivo, você precisará excluir o arquivo e recriá-lo usando o AVD Manager ou a ferramenta mksdcard. Alterar o tamanho também exclui o arquivo e cria um novo.

-sdcard

Listar diretórios e arquivos usados pelo emulador

Você pode descobrir onde os arquivos estão localizados de duas maneiras:

  • Quando iniciar o emulador pela linha de comando, use a opção -verbose ou -debug init e observe a saída.
  • Use o comando emulator -help-option para listar um diretório padrão. Exemplo:
        emulator -help-datadir
    Use '-datadir <dir>' to specify a directory where writable image files will be searched. On this system, the default directory is: /Users/me/.android See '-help-disk-images' for more information about disk image files.

Opções de inicialização de linha de comando

Esta seção lista as opções que você pode usar na linha de comando ao iniciar o emulador.

Observação: o Android Emulator está em contínuo desenvolvimento para torná-lo mais confiável. Para ver mais informações sobre os problemas relatados em várias opções de linha de comando e informar bugs, consulte o Issue Tracker do Android.

Opções usadas com mais frequência

A tabela a seguir lista as opções de inicialização da linha de comando que você pode usar com mais frequência.

Opção da linha de comando Descrição
Quick Boot
-no-snapshot-load Executa uma inicialização a frio e salva o estado do emulador na saída.
-no-snapshot-save Executa uma inicialização rápida, se possível, mas não salva o estado do emulador na saída.
-no-snapshot Desativa completamente o recurso Quick Boot. Não carrega nem salva o estado do emulador.
Hardware do dispositivo
-camera-back mode
-camera-front mode
Define o modo de emulação para uma câmera voltada para trás ou para frente. Isso modifica qualquer configuração de câmera no AVD.

O mode pode ter qualquer um dos seguintes valores:

  • emulated: o emulador simula uma câmera no software.
  • webcamn: o emulador usa uma webcam conectada ao computador de desenvolvimento, especificada por número. Para uma lista de webcams, use a opção -webcam-list, por exemplo, webcam0.
  • none: desativa a câmera no dispositivo virtual.

Exemplo:


emulator @Nexus_5X_API_23 -camera-back webcam0
-webcam-list Lista as webcams que estão disponíveis para emulação no computador de desenvolvimento. Por exemplo:

emulator @Nexus_5X_API_23 -webcam-list
            List of web cameras connected to the computer:
            Camera 'webcam0' is connected to device 'webcam0'
            on channel 0 using pixel format 'UYVY'

No exemplo, a primeira webcam0 é o nome que você usa na linha de comando. A segunda webcam0 é o nome usado pelo sistema operacional no computador de desenvolvimento. O segundo nome varia de acordo com o sistema operacional.

A partir das Ferramentas do SDK 25.2.4, o nome do AVD é obrigatório, embora possa não ser no futuro.

Imagens do disco e memória
-memory size

Especifica o tamanho da RAM física de 128 a 4.096 MB. Exemplo:


emulator @Nexus_5X_API_23 -memory 2048

Esse valor substitui a configuração do AVD.

-sdcard filepath Especifica o nome do arquivo e o caminho para um arquivo de imagem da partição do cartão SD. Por exemplo:


emulator @Nexus_5X_API_23 -sdcard C:/sd/sdcard.img

Se o arquivo não for encontrado, o emulador ainda será aberto, mas sem um cartão SD. O comando retornará um aviso No SD Card Image.

Se você não especificar essa opção, o padrão será sdcard.img no diretório de dados, a menos que o AVD especifique algo diferente. Para detalhes sobre cartões SD emulados, consulte o diretório de dados do AVD.

-wipe-data Exclui os dados do usuário e copie os dados do arquivo de dados inicial. Essa opção limpa os dados do dispositivo virtual e os retorna ao mesmo estado em que foram definidos pela primeira vez. Todos os apps e configurações instalados são removidos. Exemplo:


emulator @Nexus_5X_API_23 -wipe-data

Por padrão, o arquivo de dados do usuário é userdata-qemu.img, e o arquivo de dados inicial é userdata.img, ambos residindo no diretório de dados. A opção -wipe-data não afeta o arquivo sdcard.img. Para mais informações sobre dados do usuário, consulte Noções básicas sobre os diretórios e arquivos padrão.

Depurar
-debug tags Ativa ou desativa a exibição de mensagens de depuração para uma ou mais tags. Separe várias tags com um espaço, vírgula ou coluna. Exemplo:


$ emulator @Nexus_5X_API_23 -debug init,metrics

Para desativar uma tag, coloque um traço (-) na frente dela. Por exemplo, a opção a seguir exibe todas as mensagens de depuração, exceto aquelas relacionadas a métricas e soquetes de rede:

-debug all,-socket,-metrics

Para uma lista de tags e descrições, use a opção -help-debug-tags. Exemplo:


emulator -help-debug-tags

Você pode definir as tags de depuração padrão na variável de ambiente ANDROID_VERBOSE. Defina as tags que você quer usar em uma lista delimitada por vírgulas. Veja um exemplo que a mostra definida com as tags socket e gles:


ANDROID_VERBOSE=socket,gles

Isso é equivalente a usar:

-debug-socket -debug-gles

-debug-tag
-debug-no-tag
Ativa um tipo de mensagem de depuração específico. Use a forma no para desativar um tipo de mensagem de depuração. Exemplo:


emulator @Nexus_5X_API_23 -debug-all -debug-no-metrics

Para uma lista de tags, use o comando emulator -help-debug-tags.

-logcat logtags Ativa a exibição de mensagens do logcat para uma ou mais tags e grava-as na janela de terminal. Por exemplo, o comando a seguir ativa mensagens de erro de todos os componentes:


emulator @Nexus_5X_API_23 -logcat *:e

logtags usa o mesmo formato do comando adb logcat logtags (digite adb logcat -help para ver mais informações). É uma lista de filtros de registro separados por espaços ou vírgulas do formato componentName:logLevel. componentName é um asterisco curinga (*) ou um nome de componente, como ActivityManager, SystemServer, InputManager, WindowManager e assim por diante. logLevel é um destes valores:

  • v: detalhado
  • d: depuração
  • i: informativo
  • w: nível de registro de avisos
  • e: erro
  • s: ser silenciado

O exemplo a seguir exibe mensagens do componente GSM no nível de registro informativo.


emulator @Nexus_5X_API_23 -logcat '*:s GSM:i'

Se você não inserir a opção -logcat na linha de comando, o emulador procurará a variável de ambiente ANDROID_LOG_TAGS. Se ANDROID_LOG_TAGS for definido com um valor válido de logtags e não estiver vazio, o emulador usará o próprio valor para ativar a saída do logcat para o terminal por padrão. Você também pode redirecionar as mesmas mensagens de registro, ou outras, para o terminal por meio do adb. Para ver mais informações sobre o logcat e o adb, consulte Ferramenta de linha de comando Logcat, Gravar e visualizar registros com o Logcat, classe Log e Referência de comandos do adb.

-show-kernel Exibe mensagens de depuração do kernel na janela do terminal. Exemplo:


emulator @Nexus_5X_API_23 -show-kernel

Um uso dessa opção é verificar se o processo de inicialização funciona corretamente.

-verbose Imprime mensagens de inicialização do emulador na janela do terminal. Por exemplo:


emulator @Nexus_5X_API_23 -verbose

Ele exibe os arquivos e as configurações que estão realmente selecionados ao iniciar um dispositivo virtual definido em um AVD. Essa opção é o mesmo que especificar -debug-init.

Rede
-dns-server servers Usa os servidores DNS especificados. servers é uma lista separada por vírgulas de até quatro nomes de servidores DNS ou endereços IP. Por exemplo:

emulator @Nexus_5X_API_23 -dns-server 192.0.2.0,
192.0.2.255

Por padrão, o emulador tenta detectar os servidores DNS que você está usando e configura aliases especiais na rede de firewalls emulada para permitir que o sistema Android se conecte diretamente a eles. Usa a opção -dns-server para especificar uma lista diferente de servidores DNS.

-http-proxy proxy Faz todas as conexões TCP por meio de um proxy HTTP/HTTPS especificado. Se o emulador precisar acessar a Internet por meio de um servidor proxy, você poderá usar essa opção ou a variável de ambiente http_proxy para definir o redirecionamento apropriado. Exemplo:


emulator @Nexus_5X_API_23 -http-proxy myserver:1981

proxy pode ser um dos seguintes:
http://server:port
http://username:password@server:port

O prefixo http:// pode ser omitido.

Se essa opção não for fornecida, o emulador pesquisará a variável de ambiente http_proxy e usará automaticamente qualquer valor correspondente ao formato proxy. Para ver mais informações, consulte Usar o emulador com um proxy.

-netdelay delay

Define a emulação de latência de rede como um dos seguintes valores de delay em milissegundos:

  • gsm: GSM/CSD (mín. 150, máx. 550).
  • hscsd: HSCSD (mín. 80, máx. 400).
  • gprs: GPRS (mín. 35, máx. 200).
  • edge: EDGE/EGPRS (mín. 80, máx. 400).
  • umts: UMTS/3G (mín. 35, máx. 200).
  • hsdpa: HSDPA (mín. 0, máx. 0).
  • lte: LTE (mín. 0, máx. 0).
  • evdo: EVDO (mín. 0, máx. 0).
  • none: sem latência, o padrão (mín. 0, máx. 0).
  • num: especifique a latência exata.
  • min:max: especifique as latências mínimas e máximas individuais.

Exemplo:


emulator @Nexus_5X_API_23 -netdelay gsm

O emulador é compatível com a limitação de rede (que limita a largura de banda máxima da rede, também chamada de modelagem de rede) e com latências de conexão mais altas. Você pode defini-la por meio da configuração de um skin ou com as opções ‑netspeed e -netdelay.

-netfast Desativa a limitação de rede. Exemplo:


emulator @Nexus_5X_API_23 -netfast

Esta opção é igual a especificar -netspeed full -netdelay none. Esses são os valores padrão para essas opções.

-netspeed speed

Define a emulação de velocidade da rede. Especifique as velocidades máximas de upload e download da rede com um dos seguintes valores de speed em kbps:

  • gsm: GSM/CSD (upload: 14,4, download: 14,4).
  • hscsd: HSCSD (upload: 14,4, download: 57,6).
  • gprs: GPRS (upload: 28,8, download: 57,6).
  • edge: EDGE/EGPRS (upload: 473,6, download: 473,6).
  • umts: UMTS/3G (upload: 384, download: 384).
  • hsdpa: HSDPA (upload: 5.760, download: 13.980).
  • lte: LTE (upload: 58.000, download: 173.000).
  • evdo: EVDO (upload: 75.000, download: 280.000).
  • full: sem limite, o padrão (upload: 0.0, download: 0.0).
  • num: especifique a velocidade de upload e download.
  • up:down: especifique as velocidades individuais de upload e download.

Exemplo:


emulator @Nexus_5X_API_23 -netspeed edge

O emulador é compatível com a limitação de rede (que limita a largura de banda máxima da rede, também chamada de modelagem de rede) e com latências de conexão mais altas. Você pode defini-la pela configuração de aparência ou com as opções ‑netspeed e -netdelay.

-port port Define o número da porta TCP usada para o console e o adb. Exemplo:


emulator @Nexus_5X_API_23 -port 5556

O valor padrão é 5554 para a primeira instância de dispositivo virtual em execução na sua máquina. Um dispositivo virtual normalmente ocupa um par de portas adjacentes: uma porta de console e uma porta adb. O console do primeiro dispositivo virtual em execução em uma determinada máquina usa a porta do console 5554 e a porta adb 5555. Instâncias subsequentes usam números de porta crescentes de dois em dois, por exemplo, 5556/5557, 5558/5559 e assim por diante. O intervalo é de 5554 a 5682, permitindo 64 dispositivos virtuais simultâneos.

As atribuições de porta geralmente são o mesmo que especificar -ports port,{port + 1}. {port + 1} precisa estar livre e será reservada para o adb. Se qualquer uma das portas do console ou adb já estiver em uso, o emulador não será iniciado. A opção ‑port informa quais portas e número de série o dispositivo virtual está usando e avisa se há algum problema com os valores fornecidos. Na IU do emulador, você pode ver o número da porta do console no título da janela e visualizar o número da porta do adb selecionando Help > About.

Observe que, se o valor de port não for uniforme e estiver no intervalo de 5554 a 5584, o dispositivo virtual será iniciado, mas não ficará visível quando você usar o comando adb devices se o servidor do adb for iniciado após o emulador. Por esse motivo, recomendamos o uso de um número de porta par para o console.

-ports
console-port,adb-port
Define as portas TCP usadas para o console e o adb. Exemplo:


emulator @Nexus_5X_API_23 -ports 5556,5559

O intervalo de portas válido é de 5554 a 5682, permitindo 64 dispositivos virtuais simultâneos. A opção -ports informa quais portas e número de série a instância do emulador está usando e avisa se há algum problema com os valores fornecidos.

Recomendamos usar a opção -port, quando possível. A opção -ports está disponível para configurações de rede que exigem configurações especiais.

Para mais informações sobre a configuração das portas do console e do adb, consulte a opção -port.

-tcpdump filepath Captura os pacotes de rede e os armazena em um arquivo. Exemplo:


emulator @Nexus_5X_API_23 -tcpdump /path/dumpfile.cap

Use a opção para começar a capturar todos os pacotes de rede que são enviados por meio da LAN Ethernet virtual do emulador. Depois, use uma ferramenta como o Wireshark para analisar o tráfego.

Observe que essa opção captura todos os pacotes Ethernet e não está limitada a conexões TCP.

Sistema
-accel mode Configura a aceleração da VM do emulador. Exemplo:


emulator @Nexus_5X_API_23 -accel auto

A emulação acelerada funciona apenas para imagens do sistema x86 e x86_64. No Linux, ela depende do KVM. No Windows e Mac, ela conta com CPU da Intel e um driver Intel HAXM. Essa opção é ignorada se você não estiver emulando um dispositivo x86 ou x86_64.

Estes são os valores válidos para mode:

  • auto: determina automaticamente se a aceleração é compatível e a utiliza quando possível (padrão).
  • off: desativa totalmente a aceleração, o que é útil principalmente para depuração.
  • on: força a aceleração. Se a KVM ou o HAXM não estiverem instalados ou não forem utilizáveis, o emulador não será iniciado e exibirá uma mensagem de erro.

Para ver mais informações, consulte Configurar a aceleração de hardware.

-accel-check Verifica se um hipervisor obrigatório para aceleração de VM do emulador está instalado (HAXM ou KVM). Exemplo:


emulator -accel-check

Para ver mais informações, consulte Determinar se o HAXM ou a KVM estão instalados.

-engine engine

Especifica o mecanismo do emulador:

  • auto: seleciona automaticamente um mecanismo (padrão).
  • classic: usa o antigo mecanismo QEMU 1.
  • qemu2: usa o novo mecanismo QEMU 2.

Exemplo:


emulator @Nexus_5X_API_23 -engine auto

A detecção automática indica o valor que fornece o melhor desempenho ao emular um determinado AVD. Use a opção -engine apenas para fins de depuração e comparação.

-gpu mode Seleciona o modo de emulação da GPU. Exemplo:


emulator @Nexus_5X_API_23 -gpu swiftshader_indirect

Para ver mais informações, consulte Configurar a aceleração de gráficos na linha de comando.

-no-accel Desativa a aceleração da VM do emulador ao usar uma imagem do sistema x86 ou x86_64. É útil apenas para depuração e é o mesmo que especificar -accel off. Exemplo:


emulator @Nexus_5X_API_23 -no-accel

Para ver mais informações, consulte Configurar a aceleração de hardware.

-nojni
-no-jni
Desativa as verificações estendidas de Java Native Interface (JNI) no ambiente de execução do Android Dalvik ou ART. Exemplo:


emulator @Nexus_5X_API_23 -nojni

Quando você inicia um dispositivo virtual, as verificações de JNI estendidas são ativadas por padrão. Para mais informações, consulte Dicas de JNI.

-selinux {disabled|permissive} Configura o módulo de segurança do Security-Enhanced Linux (SELinux) para o modo desativado ou permissivo em um sistema operacional Linux. Exemplo:


me-linux$ emulator @Nexus_5X_API_23 -selinux permissive

Por padrão, o SELinux está em modo de imposição, o que significa que a política de segurança é aplicada. O modo permissive carrega a política do SELinux, mas não a aplica; apenas registra violações da política. O modo disabled desativa o suporte ao kernel para o SELinux.

-timezone timezone

Define o fuso horário do dispositivo virtual como timezone, em vez do fuso horário do host. Por exemplo:


emulator @Nexus_5X_API_23 -timezone Europe/Paris

Por padrão, o emulador usa o fuso horário do computador de desenvolvimento. Use essa opção para especificar um fuso horário diferente ou se a detecção automática não estiver funcionando corretamente. O valor timezone precisa estar no formato zoneinfo (link em inglês), que é area/location ou area/subarea/location. Exemplo:

  • America/Los_Angeles
  • Europe/Paris
  • America/Argentina/Buenos_Aires

O fuso horário especificado precisa estar no banco de dados zoneinfo (link em inglês).

-version Exibe o número da versão do emulador. Exemplo:


emulator @Nexus_5X_API_23 -version

Ou


emulator -version
IU
-no-boot-anim Desativa a animação de inicialização durante a inicialização do emulador para inicialização mais rápida. Exemplo:


emulator @Nexus_5X_API_23 -no-boot-anim

Em computadores mais lentos, essa opção pode acelerar significativamente a sequência de inicialização.

-screen mode Define o modo de tela touch emulado. Exemplo:


emulator @Nexus_5X_API_23 -screen no-touch

O mode pode ter qualquer um dos seguintes valores:

  • touch: emula uma tela sensível ao toque (padrão).
  • multi-touch: emula uma tela multitoque.
  • no-touch: desativa a emulação de toque e de tela multitoque.

Opções avançadas

As seguintes opções de inicialização pela linha de comando estão disponíveis, mas não são usadas normalmente pelo desenvolvedor médio de apps.

Nas descrições, o diretório de trabalho é o diretório atual no terminal em que você está inserindo comandos. Para mais informações sobre o diretório do sistema e o diretório de dados do AVD, assim como sobre os arquivos armazenados neles, consulte Noções básicas sobre os diretórios e arquivos padrão.

Algumas dessas opções são apropriadas para desenvolvedores de apps externos e algumas delas são usadas principalmente por desenvolvedores de plataformas. Os desenvolvedores de apps criam apps Android e os executam em AVDs específicos. Os desenvolvedores de plataformas trabalham no sistema Android e o executam dentro do emulador sem nenhum AVD pré-criado. Eles são membros internos da equipe do Android, não são desenvolvedores de apps externos.

Opção avançada Breve descrição
-bootchart timeout

Ativa a inicialização, com um tempo limite em segundos. Algumas imagens do sistema Android têm um sistema init modificado que integra um recurso de inicialização (link em inglês). Você pode passar um período de tempo limite de inicialização para o sistema com essa opção. Se seu sistema init não tiver a inicialização ativada, a opção não fará nada. Essa opção é útil principalmente para desenvolvedores de plataformas, não para desenvolvedores de apps externos.

Exemplo:


emulator @Nexus_5X_API_23 -bootchart 120
-cache filepath

Especifica um arquivo de imagem da partição de cache. Forneça um nome de arquivo e um caminho absoluto ou um caminho relativo ao diretório de dados, para configurar um arquivo de cache persistente. Se o arquivo não existir, o emulador o criará como um arquivo vazio. Se você não usar essa opção, o padrão será um arquivo temporário chamado cache.img. Para mais informações, consulte o diretório de dados do AVD.

Exemplo:


    emulator @Nexus_5X_API_23 -cache
       ~/.android/avd/Nexus_5X_API_23.avd/cache_persistent.img
    
-cache-size size

Define o tamanho da partição de cache em MB. Se você não especificar essa opção, o padrão será 66 MB. Normalmente, a maioria dos desenvolvedores de apps não precisa dessa opção, a menos que precisem fazer o download de arquivos muito grandes, maiores do que o cache padrão. Para mais informações sobre o arquivo de cache, consulte o diretório de dados do AVD.

Exemplo:


emulator @Nexus_5X_API_23 -cache-size 1000
-data filepath

Define o arquivo de imagem da partição de dados do usuário. Forneça um nome de arquivo e um caminho absoluto ou um caminho relativo para o diretório de trabalho, para configurar um arquivo de dados do usuário persistente. Se o arquivo não existir, o emulador cria uma imagem a partir do arquivo userdata.img padrão, armazena-o no nome de arquivo especificado e mantém os dados do usuário no encerramento. Se você não usar essa opção, o padrão será um arquivo chamado userdata-qemu.img. Para mais informações sobre o arquivo de dados do usuário, consulte o diretório de dados do AVD.

Exemplo:


emulator @Nexus_5X_API_23 -data
       ~/.android/avd/Nexus_5X_API_23.avd/userdata-test.img
-datadir dir

Especifica um diretório de dados usando um caminho absoluto. Para mais informações, consulte o diretório de dados do AVD.

Exemplo:


emulator @Nexus_5X_API_23 -datadir
       ~/.android/avd/Nexus_5X_API_23.avd/mytest
-force-32bit

Usa o emulador de 32 bits em plataformas de 64 bits. Ocasionalmente, essa opção é útil para testes ou depuração. Por exemplo, havia um problema em que o emulador às vezes não era executado no Windows de 64 bits, mas era no de 32 bits. Essa opção foi útil para realizar comparações a fim de depurar o problema. Veja um exemplo:


emulator @Nexus_5X_API_23 -force-32bit
-help-disk-images

Pede ajuda com relação às imagens de disco. Fornece informações relevantes para desenvolvedores de apps e de plataformas. Exemplo:


emulator -help-disk-images
-help-char-devices

Pede ajuda sobre as especificações de device de caracteres. Um parâmetro de device é exigido por algumas opções de emulador. Exemplo:


emulator -help-char-devices
-help-sdk-images

Pede ajuda com relação às imagens de disco relevantes para desenvolvedores de apps. Explica onde os arquivos de imagem estão localizados para um AVD criado com as ferramentas do SDK. Exemplo:


emulator -help-sdk-images
-help-build-images

Pede ajuda sobre imagens de disco relevantes para desenvolvedores de plataformas. Exemplo:


emulator -help-build-images
-initdata filepath
-init-data filepath

Especifica a versão inicial da partição de dados. Depois de excluir permanentemente os dados do usuário, o emulador copia o conteúdo do arquivo especificado para os dados do usuário (por padrão, o arquivo userdata-qemu.img) em vez de usar o arquivo userdata.img padrão como a versão inicial. Especifica o nome do arquivo e um caminho absoluto ou relativo para o diretório de trabalho. Se você não especificar um caminho, ele colocará o arquivo no diretório do sistema. Para mais informações, consulte o diretório do sistema AVD.

Exemplo:


emulator @Nexus_5X_API_23 -initdata
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/userdata-test.img
-kernel filepath

Usa um kernel emulado específico. Se você não especificar um caminho, o emulador procurará no diretório do sistema. Se você não especificar essa opção, o padrão será kernel-ranchu. Para mais informações, consulte o diretório do sistema AVD. Use a opção ‑show‑kernel para visualizar as mensagens de depuração do kernel.

Exemplo:


    emulator @Nexus_5X_API_23 -kernel
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/kernel-test.img -show-kernel
-noaudio
-no-audio

Desativa a compatibilidade com áudio para esse dispositivo virtual. Alguns computadores Linux e Windows têm drivers de áudio com falhas que causam sintomas diferentes, como impedir que o emulador seja iniciado. Nesse caso, você pode usar essa opção para superar o problema. Como alternativa, você pode usar a variável de ambiente QEMU_AUDIO_DRV para alterar o back-end de áudio.

Exemplo:


emulator @Nexus_5X_API_23 -noaudio
-nocache
-no-cache

Inicia o emulador sem uma partição de cache. Se você não usar essa opção, o padrão será um arquivo temporário chamado cache.img. Essa opção é apenas para desenvolvedores de plataformas. Para mais informações, consulte o diretório de dados do AVD.

Exemplo:


emulator @Nexus_5X_API_23 -nocache
-no-snapshot

Inibe tanto o carregamento automático quanto as operações de salvamento, fazendo com que o emulador execute uma sequência de inicialização completa e perca o estado quando fechado. Ele substitui a opção -snapshot.

Exemplo:


emulator @Nexus_5X_API_23 -no-snapshot
-no-snapshot-load

Evita que o emulador carregue o estado AVD do armazenamento de snapshots. Execute uma inicialização completa.

Exemplo:


emulator @Nexus_5X_API_23 -no-snapshot-load
-no-snapshot-save

Evita que o emulador salve o estado do AVD no armazenamento de snapshots ao sair, o que significa que todas as alterações serão perdidas.

Exemplo:


emulator @Nexus_5X_API_23 -no-snapshot-save
-no-snapshot-update-time

Não tenta corrigir a hora do relógio do AVD imediatamente na restauração do snapshot. Essa opção pode ser útil durante o teste, porque evita um salto de tempo repentino. Porém, atualizações de tempo ainda serão enviadas para o AVD a cada 15 segundos.

Exemplo:


emulator @Nexus_5X_API_23 -no-snapshot-update-time
-no-snapstorage

Inicia o emulador sem ativar um arquivo para armazenar ou carregar snapshots de estado, forçando uma inicialização completa e desativando a funcionalidade de snapshot de estado. Essa opção modifica as opções -snapstorage e -snapshot.

Exemplo:


emulator @Nexus_5X_API_23 -no-snapstorage
-no-window

Desativa a exibição da janela gráfica no emulador. Essa opção é útil ao executar o emulador em servidores que não têm exibição. Você ainda poderá acessar o emulador por meio do adb ou do console. Exemplo:


emulator @Nexus_5X_API_23 -no-window
-partition-size size

Especifica o tamanho da partição de dados do sistema em MB. Exemplo:


emulator @Nexus_5X_API_23 -partition-size 1024
-prop name=value

Define uma propriedade do sistema Android no emulador na inicialização. name precisa ser um nome de propriedade de, no máximo, 32 caracteres sem espaços, e value precisa ser uma string com, no máximo, 92 caracteres. Você pode especificar várias opções de ‑prop em uma linha de comando. Essa opção pode ser útil para depuração. Exemplo:


    emulator @Nexus_5X_API_23 -prop status.battery.level_raw=80
       -prop ro.serialno=123456
    
-qemu args Passa argumentos para o software emulador QEMU. Observe que o QEMU 1 e o QEMU 2 podem usar argumentos diferentes. Ao usar essa opção, ela precisa ser a última opção especificada, porque todas as opções depois dela são interpretadas como específicas do QEMU. Essa opção é bastante avançada e recomenda-se que seja usada somente por desenvolvedores que estejam muito familiarizados com emulação QEMU e Android.
-qemu -h

Mostra a ajuda de -qemu. Exemplo:


emulator -qemu -h
-ramdisk filepath

Especifica uma imagem de inicialização do ramdisk. Especifique o nome do arquivo e um caminho absoluto ou um caminho relativo para o diretório de trabalho. Se você não usar essa opção, o padrão será o arquivo ramdisk.img no diretório do sistema. Para mais informações, consulte o diretório do sistema AVD.

Exemplo:


emulator @Nexus_5X_API_23 -ramdisk
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/ramdisk-test.img
-report-console socket

Informa a porta do console para um terceiro remoto antes de iniciar a emulação. Pode ser útil para um script de teste automatizado. socket precisa usar um destes formatos:

  • tcp:port[,server][,max=seconds][,ipv6]
  • unix:port[,server][,max=seconds][,ipv6]

Para mais informações, use a opção -help-report-console, conforme descrito em Ajuda detalhada para uma opção específica.

-shell

Cria um console do shell raiz no terminal atual. Ele difere do comando adb shell das seguintes maneiras:

  • Cria um shell raiz que permite modificar várias partes do sistema.
  • Funciona mesmo se o daemon do adb no sistema emulado estiver corrompido.
  • Pressionar Ctrl+C (⌘C) interrompe o emulador, em vez do shell.

Exemplo:


emulator @Nexus_5X_API_23 -shell
-snapshot name

Especifica o nome de um snapshot dentro de um arquivo de armazenamento de snapshots para iniciar e salvar operações automaticamente. Em vez de executar uma sequência de inicialização completa, o emulador pode retomar a execução a partir de um snapshot de estado anterior, que costuma ser significativamente mais rápido. Quando você fornece essa opção, o emulador carrega o snapshot desse nome a partir da imagem e o salva com o mesmo nome na saída. Se você não usar essa opção, o padrão será uma sequência de inicialização completa. Se o snapshot especificado não existir, o emulador executará uma sequência de inicialização completa e uma operação de salvamento.

Consulte a opção -snapstorage para ver mais informações sobre como especificar um arquivo de armazenamento de snapshot e o arquivo padrão.


    emulator @Nexus_5X_API_23 -snapshot snapshot2
    

É importante lembrar que no processo de carregamento de um snapshot, todo o conteúdo do sistema, os dados do usuário e as imagens do cartão SD são substituídos com o conteúdo que eles mantinham quando o snapshot foi feito. A menos que você salve essas informações em um snapshot diferente, todas as alterações feitas desde então serão perdidas.

Você também pode criar um snapshot a partir do Console do Emulator usando o comando avd snapshot save name. Para mais informações, consulte Enviar comandos do Console do Emulator para um dispositivo virtual.

-snapshot-list

Exibe uma lista dos snapshots disponíveis. O comando exibe uma tabela de snapshots armazenados no arquivo de armazenamento de snapshots em que o emulador foi iniciado e, em seguida, sai. Se você especificar -snapstorage file, esse comando exibirá uma tabela dos snapshots armazenados no arquivo.

Exemplo:


    emulator @Nexus_5X_API_23 -snapshot-list -snapstorage
       ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
    

Você pode usar os valores da coluna ID e TAG na saída como argumentos para a opção -snapshot.

-snapstorage filepath

Especifica um arquivo de repositório que contenha todos os snapshots de estado. Todos os snapshots criados durante a execução serão salvos nesse arquivo, e apenas os snapshots que estiverem nesse arquivo poderão ser restaurados durante a execução do emulador. Se você não especificar essa opção, o padrão será snapshots.img no diretório de dados. Se o arquivo especificado não existir, o emulador será iniciado, mas sem compatibilidade com o salvamento ou carregamento de snapshots de estado.

Exemplo:


    emulator @Nexus_5X_API_23 -snapstorage
       ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
    
-sysdir dir

Especifica um diretório do sistema usando um caminho absoluto. Para mais informações, consulte o diretório do sistema AVD. Exemplo:


emulator @Nexus_5X_API_23 -sysdir
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/test
-system filepath

Especifica um arquivo de sistema inicial. Forneça o nome do arquivo e um caminho absoluto ou relativo ao diretório de trabalho. Se você não usar essa opção, o padrão será o arquivo system.img no diretório do sistema. Para mais informações, consulte o diretório do sistema AVD. Por exemplo:


emulator @Nexus_5X_API_23 -system
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/system-test.img
-use-system-libs

No Linux, usa o sistema libstdc++ em vez da versão empacotada com o sistema do emulador. Use essa opção apenas se o emulador não iniciar normalmente, embora ela nem sempre funcione. Como alternativa, defina a variável de ambiente ANDROID_EMULATOR_USE_SYSTEM_LIBS como 1.

Exemplo:


me-linux$ emulator @Nexus_5X_API_23 -use-system-libs
-writable-system

Use essa opção para ter uma imagem do sistema gravável durante a sessão de emulação. Para fazer isso:

  1. Inicie um dispositivo virtual com a opção -writable-system.
  2. Insira o comando adb remount a partir de um terminal de comando para dizer ao emulador para reativar system/ como leitura/gravação (ele é ativado como somente leitura por padrão).

Observe que o uso dessa sinalização criará uma cópia temporária da imagem do sistema que pode ser muito grande (várias centenas de MB), mas será destruída quando o emulador sair.

Opções obsoletas

As seguintes opções da linha de comando estão obsoletas:

  • -audio-in
  • -audio-out
  • -charmap
  • -code-profile
  • -cpu-delay
  • -dpi-device
  • -dynamic_skin
  • -enable-kvm
  • -gps
  • -image
  • -keyset
  • -help-keys
  • -help-keyset-file
  • -nand-limits
  • -noskin
  • -no-skin
  • -onion
  • -onion-alpha
  • -onion-rotation
  • -radio
  • -ranchu
  • -raw-keys
  • -scale
  • -shared-net-id
  • -shell-serial
  • -skin
  • -skindir
  • -trace
  • -useaudio

Ajuda sobre opções de linha de comando

Esta seção descreve como receber ajuda com relação às opções de linha de comando. A seção a seguir fornece informações mais detalhadas sobre as opções de linha de comando do emulador normalmente usadas que estão disponíveis quando você inicia o emulador.

Listar todas as opções do emulador

Para imprimir uma lista de todas as opções do emulador, incluindo uma breve descrição, insira este comando:

emulator -help
    

Ajuda detalhada para uma opção específica

Para imprimir ajuda para uma opção de inicialização específica, insira este comando:

emulator -help-option
    

Exemplo:

emulator -help-netspeed
    

Essa ajuda é mais detalhada que a descrição fornecida pela opção -help.

Ajuda detalhada para todas as opções

Para receber ajuda detalhada sobre todas as opções do emulador, insira este comando:

emulator -help-all
    

Listar variáveis de ambiente do emulador

Para ver uma lista de variáveis de ambiente do emulador, insira este comando:

emulator -help-environment
    

Você pode definir variáveis de ambiente na janela do terminal antes de iniciar um dispositivo virtual ou você pode defini-las nas configurações de usuário no sistema operacional (como no arquivo .bashrc no Linux).

Listar tags de depuração

Para exibir uma lista de tags para as opções -debug, insira este comando:

emulator -help-debug-tags
    

As opções -debug permitem ativar ou desativar mensagens de depuração de componentes específicos do emulador, conforme especificado pelas tags.