Iniciar o emulador pela linha de comando

O Android SDK inclui um emulador de dispositivo Android, um dispositivo virtual que é executado no computador. O Android Emulator permite desenvolver e testar apps 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.

Como 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 a partir de 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 onde toda a configuração e o conteúdo do AVD é armazenado. Você poderia definir a variável de ambiente na janela de terminal antes de iniciar um dispositivo virtual ou poderia defini-lo nas configurações de usuário no sistema operacional. Por exemplo, no arquivo .bashrc no Linux.

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

Instalação de um app

Além de instalar um app no Android Studio ou na IU do emulador, é possível instalar o app 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 Compilar e executar seu aplicativo.
  2. Inicie o emulador a partir da 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 app e os dados de estado dele 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 limpe 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: o utilitário adb considera o dispositivo virtual como um dispositivo físico real. Por esse motivo, talvez seja necessário usar a sinalização -d com alguns comandos adb comuns, como install. A sinalização -d permite especificar quais dos vários dispositivos conectados precisam ser usados como destino de um comando. Se você não especificar -d, o emulador segmentará o 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 do 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, onde 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 versões posteriores: 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 quando você usa a opção -wipe-data para redefinir o AVD para os padrões 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 usando a ferramenta mksdcard. O arquivo é armazenado no computador de desenvolvimento e precisa ser carregado na inicialização.

Ao definir um AVD no AVD Manager, você tem a opção de usar um arquivo de 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 para o arquivo de cartão SD antes de carregá-lo, você pode montar o arquivo de imagem como um dispositivo de loop e depois copiar os arquivos. Ou use 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.

Observe que a opção -wipe-data não afeta este arquivo. Se você quiser limpar o arquivo, é preciso excluí-lo e, em seguida, 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:

  • Ao iniciar o emulador a partir da 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 fornecer 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 Rastreador de problemas 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
Inicialização rápida
-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
Defina 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 Liste 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

Especifique 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 Especifique 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 Exclua 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 Ativar ou desativar 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 ver 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. Aqui está um exemplo mostrando uma lista definida com as tags socket e gles:


ANDROID_VERBOSE=socket,gles

Isso é equivalente a usar:

-debug-socket -debug-gles

-debug-tag
-debug-no-tag
Ative um tipo de mensagem de depuração específico. Utilize 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 Ative a exibição de mensagens do logcat para uma ou mais tags e grave-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ço ou vírgula, no formato componentName:logLevel. E 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 aviso
  • e: erro
  • s: silencioso

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 fornecer 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 Exiba 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 Imprima mensagens de inicialização do emulador na janela do terminal. Por exemplo:


emulator @Nexus_5X_API_23 -verbose

Ele exibe quais arquivos e configurações 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 Use 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. Use a opção -dns-server para especificar uma lista diferente de servidores DNS.

-http-proxy proxy Faça 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 configurar 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 procurará a variável de ambiente http_proxy e usará automaticamente qualquer valor correspondente ao formato do proxy. Para mais informações, consulte Usar o emulador com um proxy

-netdelay delay

Defina a emulação de latência de rede para 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: especifica a latência exata.
  • min:max: especifica as latências mínima e máxima individuais.

Exemplo:


emulator @Nexus_5X_API_23 -netdelay gsm

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

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


emulator @Nexus_5X_API_23 -netfast

Essa opção é o mesmo que especificar -netspeed full -netdelay none. Esses são os valores padrão para essas opções.

-netspeed speed

Defina 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 (limitando a largura de banda máxima da rede, também chamada de modelagem de rede), bem como latências de conexão mais altas. Você pode defini-lo por meio da configuração de um skin ou com as opções ‑netspeed e -netdelay.

-port port Defina 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}. A {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 adb iniciar 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
Defina 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 em vez disso, 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 de portas do console e do adb, consulte a opção -port.

-tcpdump filepath Capture os pacotes de rede e armazene-os 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, você pode usar 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 Configure 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 da 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.

Valores válidos para o mode são:

  • 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 de 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 imprimirá uma mensagem de erro.

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

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


emulator -accel-check

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

-engine engine

Especifique 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 precisa escolher 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 Selecione o modo de emulação da GPU. Exemplo:


emulator @Nexus_5X_API_23 -gpu swiftshader_indirect

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

-no-accel Desative 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 mais informações, consulte Configurar a aceleração de hardware.

-nojni
-no-jni
Desative 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} Configure 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

Defina o fuso horário do dispositivo virtual para 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 de timezone precisa estar no formato zoneinfo, 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.

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


emulator @Nexus_5X_API_23 -version

Ou


emulator -version
IU
-no-boot-anim Desativar 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 Defina 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: emular uma tela touch (padrão).
  • multi-touch: emular uma tela multi-touch.
  • no-touch: desativar a emulação de tela touch e multi-touch.

Opções avançadas

As seguintes opções de inicialização de 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 onde você está inserindo comandos. Para mais informações sobre o diretório do sistema AVD e o diretório de dados, 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

Ative 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

Especifique 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

Defina 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

Defina 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

Especifique 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

Use 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

Receba 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

Receba ajuda com relação às especificações do caractere device. Um parâmetro de device é exigido por algumas opções de emulador. Exemplo:


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

Receba 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

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


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

Especifique 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. Especifique 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

Use 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 ver 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

Desative 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

Inicie 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

Iniba 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 próprio estado quando fechado. Modifica a opção -snapshot.

Exemplo:


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

Evite 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

Evite 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 tente 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

Inicie 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

Desative 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

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


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

Defina 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 Passe 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

Veja a ajuda de -qemu. Exemplo:


emulator -qemu -h
-ramdisk filepath

Especifique 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

Informe 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

Crie 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

Especifique 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

Veja uma lista dos snapshots disponíveis. O comando imprime 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 imprimirá 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

Especifique 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

Especifique 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

Especifique 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, use o sistema libstdc++ em vez da versão empacotada com o sistema 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 configurá-lo pelas configurações de usuário no sistema operacional (como no arquivo .bashrc no Linux).

Listar tags de depuração

Para imprimir 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.