Notas da versão do Android Emulator

O Android Emulator está incluído no Android Studio.

As versões do emulador anteriores à 25.3.0 eram distribuídas como parte das Ferramentas do SDK do Android.

Para garantir que você tenha a versão mais recente, procure atualizações no SDK Manager.

Para fazer o download de versões anteriores do Android Emulator, consulte os Arquivos de download do Emulator.

Para conferir as notas das versões do Android Emulator anteriores à 25.3.0, consulte as notas da versão do componente Ferramentas do SDK do Android.

Para problemas conhecidos e soluções, consulte a página de solução de problemas do emulador.

34.1.19 (7 de março de 2024)

Testado com o Android Studio Iguana Stable.

  • [Correção de bug] Problema 312677259: foi corrigido o congelamento da tela no emulador incorporado após o redimensionamento da janela.

34.1.18 (29 de fevereiro de 2024)

Testado com o Android Studio Iguana Stable.

  • Dispositivos adicionados ao emulador, incluindo:
    • Pixel Fold
    • Pixel Tablet
    • Pixel 8
    • Pixel 8 Pro
    • Pixel 7a
  • Teste de integração do gRPC: os endpoints do gRPC agora estão disponíveis para testes instrumentados em execução no emulador que permitem testar cenários realistas. Esse recurso permite que os desenvolvedores interajam de maneira segura com o endpoint do gRPC hospedado pelo Android Emulator nos testes de instrumentação do Android.
  • Várias correções de bugs

33.1.24 (28 de dezembro de 2023)

Testado com o Android Studio Hedgehog Stable e o Iguana Beta 1.

  • Foi corrigido o problema com a webcam do emulador que não permite a gravação da tela em formato mp4.
  • Foi corrigida uma falha do emulador no AVD do Pixel Fold quando ele é desdobrado durante uma gravação de tela.
  • Foi corrigido um problema em que o Pixel Fold mostrava uma aparência de smartphone diferente com um teclado desconectado e não podia ser usado (corrigido no Windows, Mac Intel e Linux).
  • Foi corrigida a falha na aparência dos sensores virtuais no modo Independente (corrigida no Windows, Mac Intel e Linux).
  • Foram corrigidas algumas falhas, especialmente ao fechar o emulador.

33.1.23 (30 de novembro de 2023)

Testado com o Android Studio Giraffe Patch 4 e o Hedgehog Stable.

  • Nova implementação dobrável para emular melhor o dispositivo Pixel Fold. Funciona com o nível 34 da API mais recente.
  • Upgrade do back-end de gráficos: implementamos o protocolo gfxstream no back-end de gráficos. Isso melhora o desempenho geral dos gráficos e a estabilidade do seu sistema. Além disso, introduzimos o suporte à Vulkan 1.3, começando pela imagem do sistema com o nível 34 da API.
  • Solicitação de recurso: opção para desativar o gesto de pinça para aplicar zoom ou reatribuir o atalho.
  • [Correção de bug] Problema 302562962: correção da falha da webcam do emulador ao usar o MacOS Sonoma.
  • [Correção de bug] Problema 293503871: correção do problema em que a configuração "Microfone" não era salva quando o emulador era reiniciado.
  • [Correção de bug] Problema 270386314: correção de erro de animação em que a barra lateral ficava aberta quando a tela do AVD era minimizada.
  • [Correção de bug] Problema 154896775: correção da ferramenta de envio de bugs.

32.1.15 (29 de agosto de 2023)

Testado com o Android Studio Giraffe Patch 1 e o Hedgehog Canary 16.

  • Atende aos requisitos do GAS HW para sensores no emulador AAE.
  • [Correção de bug] Problema 266201208: SMS em hebraico não é enviado na API 33.
  • [Correção de bug] Problema 257097404: o emulador não mostra o horário correto depois que o host é ativado nas APIs 29 e 30.
  • [Correção de bug] Problema 228201899: o Google Maps não aparece dentro dos controles estendidos do Android Emulator.

32.1.14 (27 de junho de 2023)

Testado com o Android Studio Hedgehog Canary 8, o Giraffe Beta 5 e o Flamingo Stable.

  • As orientações e distorções da câmera do emulador foram corrigidas.
  • [Correção de bug] Problema 257097404: o emulador não mostra o horário correto depois que o host é ativado. Esse bug ainda pode ser reproduzido para as APIs 29 e 30.
  • [Correção de bug] Problema 243456582: as versões do Android mais recentes que a API 30 podem não iniciar corretamente no emulador em máquinas Mac M1.

32.1.13 (22 de maio de 2023)

Testado com o Android Studio Hedgehog Canary 2, o Giraffe Beta 1 e o Flamingo Stable.

  • Foi adicionado suporte aos AVDs do Pixel Fold e do Pixel Tablet.
  • O problema de falha do gLinux foi corrigido.
  • [Correção de bug] Problema 215231636: o emulador com uma API acima do nível 30 não funciona em processadores Intel de 12ª geração.
  • [Correção de bug] Problema 275397905: alto nível de falhas no Android Emulator M1 ao mover o foco do cursor para dentro e para fora do emulador repetidamente.
  • Problema conhecido com a inicialização do AVD: Problema 281725854. Consulte a página de solução de problemas do emulador para mais informações.

32.1.12 (21 de março de 2023)

Testado com o Android Studio Giraffe Canary 10, o Flamingo RC e o Electric Eel Patch 2.

  • [Correção de bug] Problema 267647323: a rede não funciona no emulador iniciado pelo Android Studio.
  • [Correção de bug] Problema 268498686: a tela do emulador fica piscando.
  • [Correção de bug] Problema 270034824: a performance do emulador piorou após a atualização para a versão 33.1.1.
  • [Correção de bug] Problema 225541819: abrir o Chrome trava o emulador na configuração x86_64.
  • [Correção de bug] Problema 257097404: o emulador não mostra o horário correto depois que o host é ativado.
  • Adicionar relatórios de erros para dispositivos Apple M1.

32.1.11 (8 de fevereiro de 2023)

Testado com o Android Studio Giraffe Canary 2, o Flamingo Beta 1 e o Electric Eel Patch 1.

  • Otimizações de velocidade da rede.
  • Suporte para mouse no Emulator incorporado.
  • Melhorias no Virtio-snd.
  • Desativação do uso de links simbólicos ao descompactar o Android Emulator durante a instalação.
  • Correção de falha na verificação do emulador.

31.3.14 (13 de dezembro de 2022)

Testado com o Android Studio Dolphin, Electric Eel RC1 e Flamingo Canary 9.

  • [Correção de bug] Correção de falhas de AVD que ocorrem ao fazer login na Play Store.

31.3.13 (27 de outubro de 2022)

Testado com o Android Studio Dolphin, Electric Eel Beta 2 e Flamingo Canary 5.

  • [Correção de bug] Problema 249948338: o parâmetro de fuso horário não funciona.
  • [Correção de bug] Problema 249366543: a opção -dns-server do emulador não funciona depois da API 31.

31.3.12 (10 de outubro de 2022)

Testado com o Android Studio Dolphin e o Electric Eel Beta 1.

Esta atualização inclui as seguintes melhorias e correções:

  • [Correção de bug] Problema 247843000: erro de manipulação de caminho relativo do AVD.
  • Aumentar o tamanho do disco para a API 24 e versões mais recentes

31.3.11 (23 de setembro de 2022)

Testado com o Android Studio Dolphin e o Electric Eel Canary 10.

Esta atualização inclui as seguintes melhorias e correções:

  • [Correção de bug] Falha de AVD incorporada no emulador na janela Controles estendidos
  • [Correção de bug] Problema 183139207: problemas de áudio associados ao emulador de ativação do microfone.
  • [Correção de bug] Problema 229764024: bug no toque de aderência do AVD que resulta em problemas de comportamento da interface.
  • [Correção de bug] Erro ao iniciar o AVD da API 33 no Mac M1.
  • [Correção de bug] Problema 243053479: lentidão na rede após a atualização do emulador.
  • [Correção de bug] Problema 244617627: localização de mapas não funcional no Windows e no Linux.
  • [Correção de bug] Problema 232971796: botão "Chamada de dispositivo" com falha na página "Controles estendidos" > Smartphone
  • Atualizar o Android Emulator para minigbm
  • Migração de scripts de build para Python3

31.3.10 (18 de agosto de 2022)

Testado com o Android Studio Dolphin Beta 5 e o Electric Eel Canary 9.

Os downloads autônomos do emulador já estão disponíveis. Se você estiver enfrentando problemas ou falhas nesta versão estável mais recente, informe um bug e faça o download de uma versão que já estava funcionando nos arquivos de download do emulador.

Esta atualização inclui as seguintes melhorias e correções:

  • Melhor suporte a caminho Unicode no Windows.
  • Melhor processamento do encerramento do emulador para que uma nova inicialização do mesmo AVD possa ser bem-sucedida.
  • Atualização do design do AVD dobrável e das configurações padrão.
  • Atualização dos botões do emulador do Wear.
  • Melhorias no streaming de áudio do gRPC.
  • Comando redimensionável do console do emulador adicionado.
  • Correção do Chrome para a API 31.
  • [Correção de bug] A autenticação da Conta do Google falhou com o GmsCore v21.42.18.

31.2.10 (20 de abril de 2022)

Testado com o Android Studio Dolphin Canary 8 e o Chipmunk RC 1.

Esta atualização inclui as seguintes melhorias e correções:

  • Foi adicionado um utilitário para carregar funções Vulkan com substitutos.
  • [Correção de bug] Correção do erro de build do gcc8.

31.2.9 (23 de março de 2022)

Testado com o Android Studio Dolphin Canary 7.

Essa atualização inclui a seguinte correção:

  • [Correção de bug] Ignorar pressão de memória ao salvar snapshots em máquinas M1.

31.2.8 (7 de fevereiro de 2022)

Testado com o Android Studio Bumblebee Patch 1 e o Chipmunk Canary 6.

Esta atualização inclui as seguintes melhorias e correções:

  • [Correção de bug] Falha ao fazer login nos apps.
  • [Correção de bug] Problema 215368358: a "reinicialização do adb" na plataforma Intel causa uma falha no avd com a "solicitação de desligamento da vCPU".

31.2.7 (1º de fevereiro de 2022)

Testado com o Android Studio Bumblebee Patch 1 e o Chipmunk Canary 6.

Essa atualização inclui a seguinte correção:

  • [Correção de bug] Erro de travamento do emulador em máquinas M1.

31.2.6 (20 de janeiro de 2022)

Testado com o Android Studio Arctic Fox, Bumblebee Beta 4 e Chipmunk Canary 6.

Esta atualização inclui as seguintes melhorias e correções:

  • Botões do Wear foram adicionados ao emulador do Wear OS.
  • Agora todas as propriedades do veículo podem ser editadas na guia VHAL.
  • [Correção de bug] A autenticação da Conta do Google falhou com o GmsCore v21.42.18.
  • [Correção de bug] O Netshaper não funcionou bem com o VirtioWifi.
  • [Correção de bug] O comando do console do mouse do evento não funcionou.
  • A checagem de KVM foi adicionada à criação do AVD local.

31.1.3 (18 de janeiro de 2022)

Esta atualização inclui as seguintes melhorias e correções:

  • Portas de console ativadas para o Fuchsia.
  • Ao redimensionar uma janela com várias telas, a orientação é ignorada.
  • Wi-Fi: foi adicionado suporte para filtrar pacotes unicast com base no endereço MAC do MAT.
  • Wi-Fi: foi corrigida uma falha quando a vmnet está em uso.

30.9.5 (15 de dezembro de 2021)

Esta atualização inclui as seguintes melhorias e correções:

  • Foi adicionado o recurso de redimensionamento fácil para janelas de computadores ou tablets.
  • Foi adicionado suporte à entrada multitoque de dispositivos host compatíveis.
  • VirtioWifi: foi adicionado suporte à rede de toque.
  • Foi ativada a entrada por seletor giratório de imagens do sistema do Wear.
  • O problema de configuração de áudio do gRPC foi corrigido.
  • A reprodução do emulador SensorReplay foi atualizada para oferecer suporte aos sensores padrão do Android.
  • O emulador foi conectado a periféricos e dispositivos via USB.

30.4.5 (23 de fevereiro de 2021)

Esta atualização inclui as seguintes melhorias e correções:

  • macOS: correção de problemas com distorção da entrada de áudio.
  • Inclusão de suporte ao virtio-vsock no espaço do usuário.
  • As imagens do sistema futuras usarão virtio-console para mensagens do logcat e do kernel.
  • Aceleração da renderização Vulkan.
  • Inclusão de compatibilidade com depuração de snapshots em caso de falha no teste.
  • virtio-gpu: atualização das definições para que haja compatibilidade com as enumerações de recursos de blob mais recentes.
  • Inclusão de compatibilidade com os snapshots para transferências gráficas do tipo "asg".
  • macOS: inclusão de suporte a criação no SDK 11.1 ou mais recentes para macOS.
  • O KVMclock é ativado por padrão em imagens do sistema mais recentes.
  • Inclusão de compatibilidade com um sensor de frequência cardíaca em emuladores do Wear.
  • Remoção do back-end Vulkan de libportability.
  • Inclusão de compatibilidade com mais recursos no simulador moderno.

30.0.26 (16 de agosto de 2020)

Esta atualização inclui vários novos recursos, melhorias nos recursos existentes e correções de bugs.

Suporte a dobráveis com sensor de articulação virtual e visualização em 3D

  • Adição de suporte a sensores de articulação para dispositivos dobráveis. Isso exigirá uma imagem futura do sistema Android 11 e configuração do AVD. Os parâmetros de articulação e visualização tridimensionais agora estão integrados às predefinições dobráveis atuais. Os seguintes podem ser usados, por exemplo, com o arquivo config.ini do AVD dobrável 7.3:

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
    
  • Os dispositivos dobráveis agora também carregam um parâmetro de subtipo. A propriedade config.ini de hw.sensor.hinge.sub_type = hinge/fold já está disponível. Veja a postagem do blog Desenvolvimento do Android 11 com o Android Emulator (em inglês) para saber mais.

  • O sensor de articulação agora é ativado por padrão.

  • Se um dispositivo dobrável estiver configurado, o emulador agora enviará atualizações de sensores de ângulo de articulação e mudanças de postura ao convidado. Os dispositivos dobráveis atuais agora atualizam o ângulo e a posição do sensor de articulação quando a dobra da barra de ferramentas ou os botões de articulação são pressionados.

Emulador para hosts ARM64

  • O código-fonte do emulador do Linux agora é compatível com compilação cruzada de hosts x86_64 a hosts arm64, permitindo a execução de imagens de sistema arm64 com virtualização KVM. Atualmente, só há compatibilidade com -gpu swiftshader_indirect (renderização de host arm64 de Swiftshader), mas um conjunto compatível de bibliotecas libEGL/libGLESv2 de GPU host também pode ser usado substituindo lib64/gles_swiftshader por elas e reiniciando com -gpu swiftshader_indirect. Os snapshots também podem não estar funcionando (adicione -no-snapshot à linha de comando). Instruções:

    mkdir emu
    cd emu
    repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1
    repo sync -qcj 12
    cd external/qemu
    pip install absl-py
    pip install urlfetch
    sudo apt-get install crossbuild-essential-arm64
    python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
    
  • A compatibilidade com o Apple Silicon está em andamento.

Suporte ao virtio-gpu

  • Inclusão de suporte no lado do host a futuros recursos de blob com virtio-gpu.
  • Devido à forma como a renderização do emulador funciona, agora processamos virtio-gpu virtqueue na linha de execução vcpu, porque a renderização é transferida para outras linhas de execução de qualquer maneira. A renderização virtio-gpu vai ser ativada em uma imagem futura do sistema e da versão do emulador.
  • Em uma imagem futura do sistema, o emulador vai poder executar todos os gráficos com uma pilha baseada em virtio-gpu.

Outros novos recursos e melhorias

  • A visualização externa USB agora está disponível no Windows usando -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>. É provável que já esteja funcionando no Linux e no macOS.
  • As bibliotecas WebRTC foram atualizadas para a M83.
  • Agora, o emulador é compatível com streaming de áudio em contêineres sobre WebRTC.
  • O endpoint darwinn foi removido.
  • A decodificação do VPx CUDA para vídeo agora vai estar disponível, se a decodificação do VPx CUDA estiver disponível no hardware pela variável de ambiente ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.
  • No macOS, o SSE 4.1 e 4.2 agora estão disponíveis no convidado Android.
  • No macOS, o INVTSC agora está ativado por padrão. Isso pode melhorar a precisão das medições de tempo do convidado.
  • Agora, rastreamos qual painel de controle estendido foi selecionado pelo usuário nas métricas.
  • Agora, o emulador Linux usa o relógio paravirtualizado da KVM quando a versão do kernel convidado é >= 5.4 (imagens do sistema R ou mais recente).
  • O emulador agora usa LZ4 para descompactar kernels convidados, tornando-o compatível com o pipeline moderno do kernel.
  • Foram adicionados comandos do console para ver o diretório do AVD do emulador, o caminho do arquivo de descoberta no caso de uso incorporado ao Studio e o caminho para os snapshots:

    adb emu avd path # Obtains path to AVD directory
    adb emu avd discoverypath # Obtains path to discovery file
    adb emu avd snapshotspath # Obtains path to snapshots folder
    adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
    
  • Para facilitar a economia de espaço na tela vertical, adicionamos uma opção para ocultar o frame do dispositivo para o AVD atual em Extended Controls > Settings. Para ocultar globalmente os frames de dispositivo de todos os AVDs, disponibilizamos a flag de recurso NoDeviceFrame, que pode ser ativada com o lançamento do emulador na linha de comando com o frame -feature NoDevice, ou tornada permanente com a adição de NoDeviceFrame = on a ~/.android/advancedFeatures.ini (crie esse arquivo se ele ainda não existir).

  • Adição de um item de lista suspensa na página da rede celular para ativar e desativar a compatibilidade com a medição. Isso é um ambiente autônomo para imagens de sistema mais antigas que não são compatíveis com a chave de medição 5G.

    • Também adicionamos o comando do console para a mesma finalidade: gsm meter on|off
  • Atualização do conjunto de ferramentas / build para C++17.

Correções: emulador incorporado

  • A área de transferência funcionará agora.
  • Correção do problema em que caracteres maiúsculos eram entregues como caracteres minúsculos no emulador.
  • Correção do carregamento do token do console a partir de um caminho unicode nas janelas.
  • Correção da mensagem de erro SO_REUSEPORT no Linux.
  • Foi corrigido um problema de corrupção ao enviar comandos de snapshot pelo gRPC, bem como ao pressionar o botão para salvar o snapshot no emulador incorporado do Android Studio.
  • Ao usar o emulador Linux incorporado ao Studio, descobrimos que, se isso for feito pela Área de trabalho remota do Google Chrome, vai ocorrer um bug em que XDG_RUNTIME_DIR não está definido e pode fazer com que o emulador incorporado não apareça devido aos arquivos de descoberta do emulador que estão sendo colocados em XDG_RUNTIME_DIR. Verifique o status do problema correspondente no Chrome issue tracker (link em inglês).

    Como solução alternativa, o emulador agora volta a usar arquivos de descoberta em um diretório potencialmente diferente, baseado no UID do usuário: /run/user/&lt;uid>.

  • Emulador incorporado: dispositivos com bordas arredondadas/entalhes agora mudam o layout para liberar espaço para cantos e entalhes. Isso requer uma inicialização a frio desses emuladores.

  • O endpoint gRPC agora permite o envio de SMS ao dispositivo.

Correções gerais

  • Problemas de compatibilidade na execução do emulador do Windows com o Riot Vanguard. Agora, o emulador do Windows detecta o anti-aquecimento do Vanguard e exibe uma mensagem de aviso se o Vanguard for detectado.
  • Correção do erro FD_SETSIZE no Windows Agora, usamos WSAEventSelect() em vez de select() para estabelecer conexões sem bloqueio a servidores de loopback.
  • Foi adicionado suporte ao recurso F16C CPUID do emulador do Linux com correções de problemas na execução de alguns aplicativos ARM64 pela tradução do NDK. macOS/Windows em andamento.
  • Correção da reprodução de rota gpx/kml para seguir os carimbos de data/hora.
  • Correção do ícone de rejeição na inicialização para MacOs.
  • Se hw.audioInput=no e hw.audioOutput=no em config.ini, o áudio do emulador agora está desativado corretamente.
  • Foi corrigido um problema em que, quando a janela do emulador era minimizada enquanto a janela de controles estendidos estava aberta, mas não ativa, a janela de controles estendidos continuava aparecendo ao redimensionar a janela do emulador. Removeremos completamente o comportamento (o caso com a janela de controles estendidos ativos) em uma atualização futura.
  • Correção de um bug intermitente com Wi-Fi que não era conectado quando o emulador era iniciado.
  • Foi corrigido um travamento em espera quando o emulador emite comandos do shell com tempos longos ou indefinidos.
  • Atualização de pc-bios com correções para oferecer melhor suporte a imagens grandes transmitidas para -initrd. A BIOS anterior usou um método muito ineficiente.
  • Correção de uma falha durante o encerramento quando a opção -wifi-server-port era usada.
  • O emulador agora imprime um aviso se as opções não compatíveis forem transmitidas para -prop (apenas os objetos qemu.* são compatíveis).
  • Durante a criação do emulador no Windows, é provável que ocorram menos falhas para gravar nos arquivos. Para mais informações, consulte as instruções de criação do Windows.
  • Desativado o botão de zoom para AVDs dobráveis que causava problemas.
  • Agora, o emulador informa corretamente o tempo de inicialização proveniente de uma reinicialização do dispositivo.
  • Linux: no caso de não haver permissões suficientes do KVM, o emulador vai exibir as instruções de depuração mais rapidamente.
  • Correção do problema em que o emulador não inicializava imagens recentes do sistema sem aceleração.
  • Correção de corrupção da memória ou falha ao iniciar de um detector de conclusão da inicialização.
  • Foi corrigido um vazamento de memória durante sessões longas de gravação de tela.
  • Os ícones do emulador foram atualizados para refletir a marca do Studio 4.1.
  • O suporte à detecção de sessões remotas no Windows foi melhorado.

Correções: decodificação de gráficos e vídeos

  • Foi corrigido um problema em que o jogo Asphalt 9 mais recente era renderizado com uma tela preta.
  • Remoção do spam sobre como limpar o buffer mapeado com NULL.
  • Correção de uma disputa ao desmontar o estado do Vulkan quando um app Vulkan convidado foi encerrado.
  • Os sombreadores de emulação do ASAS/ETC2 do Vulkan agora são inseridos na biblioteca libOpenglRender. Isso é mais confiável do que ler do sistema de arquivos.
  • Foi corrigido um problema no Vulkan em que, ao executar com uma instância do Vulkan 1.0 no host, vkGetImageMemoryRequirements2KHR limpava incorretamente o campo pNext da estrutura VkMemoryRequirements2 retornada.
  • Foi corrigido um vazamento de memória no renderizador Vulkan.
  • Foi corrigida uma regressão recente em que os sombreadores GLSL ES 1.00 com nomes de variável como isampler2D falhavam na compilação.
  • Atualizado o tradutor de sombreador do ANGLE com várias correções que corrigem possíveis falhas para compilar sombreadores no Linux.
  • Agora, o emulador trava se a compilação do sombreador de framebuffer básico falhar para monitorar o fenômeno.
  • Atualização do tradutor de sombreador do ANGLE para acompanhar o ANGLE ascendente. Isso corrige um problema na corrupção de memória ao traduzir e sombreadores de OpenGL ES dobráveis que usavam matrizes não quadradas. O tradutor de sombreador agora é uma biblioteca compartilhada separada: libshadertranslator.dll.
  • Foi corrigido um problema na inicialização do Vulkan em alguns drivers de GPU em que determinadas funções de dispositivo 1.1 não eram encontradas.
  • Vulkan: voltamos a usar o carregador pré-criado como uma solução ao carregador do Vulkan de sistema que causava problemas em algumas configurações. Descobriremos uma solução melhor.
  • Foi corrigido um problema ao usar a memória externa Vulkan, em que era possível importar índices de tipos de memória incompatíveis no host.
  • Foi corrigido um problema na emulação de GL_ALIASED_POINT_SIZE_RANGE, em que não havia suporte para o tipo enumerado no host.
  • Correção do problema em algumas GPUs de host que impedia a compilação de sombreadores Skia devido a erros relacionados a GL_EXT_shader_framebuffer_fetch.
  • Como nossa cópia do renderizador D3D9 ANGLE foi removida há algumas versões, agora também alternamos automaticamente os usuários que estavam naquele renderizador para d3d11 ANGLE se ele estava selecionado nas preferências de interface.
  • Mais informações de depuração foram adicionadas à inicialização do WGL no Windows para rastrear falhas.
  • Quando hw.gltransport=virtio-gpu-pipe, o desempenho é aprimorado ao não alternar o host em transferências do host para o convidado.
  • Foi adicionado mais um registro de depuração para quando a emulação OpenGLES falhar na inicialização.
  • Foi corrigido um problema com as imagens do YouTube piscando ou não aparecendo no carregamento do snapshot.
  • Como sempre encontramos problemas na decodificação de hardware CUDA do libvpx, voltamos para a decodificação de software para libvpx. Se você tem uma implementação de decodificação de hardware CUDA com suporte no lado do host, a decodificação de hardware de libvpx pode ser reativada com a variável de ambiente ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.

30.0.10 (30 de abril de 2020)

Esta atualização inclui suporte à execução do emulador diretamente no Android Studio e em dispositivos virtuais com o modo de janela Freeform ativado por padrão.

Executar o emulador no Android Studio

O Android Emulator agora pode ser executado diretamente no Android Studio. Use esse recurso para economizar espaço na tela, para navegar rapidamente entre o emulador e a janela do editor usando teclas de atalho e organizar o fluxo de trabalho do ambiente de desenvolvimento integrado e do emulador em uma única janela do aplicativo.

Modo de janela de forma livre

Agora você pode criar um AVD com o modo de janela de forma livre ativado, selecionando o perfil de hardware do tablet Freeform de 13,5 polegadas ao criar um dispositivo virtual no Android Studio. Esse perfil de hardware exige uma imagem do sistema com ao menos a versão 3 da prévia para desenvolvedores do Android 11.

Problemas conhecidos

No momento, o redimensionamento de janelas de forma livre está corrompido devido a problemas na transferência de foco para o Gerenciador de janelas. Isso será abordado em uma versão futura do sistema Android 11.

30.0.0 (19 de fevereiro de 2020)

Esta atualização inclui imagens do sistema do Android 11 (nível 30 da API) e performance aprimorada ao executar binários do ARM.

Imagens do sistema Android 11

Agora você pode criar um AVD que execute o Android 11 selecionando uma das imagens de sistema disponíveis da API de nível 30:

  • x86: inclui ABIs x86 e ARMv7.
  • x86_64: inclui as autoridades de publicidade x86, x86_64, ARMv7 e ARM64.

Suporte para binários ARM em imagens do sistema Android 9 e 11

Se você não conseguia usar o Android Emulator porque seu app dependia de binários ARM, agora é possível usar a imagem do sistema Android 9 x86 ou qualquer imagem do sistema Android 11 para executar o app. Não é mais necessário fazer download de uma imagem de sistema específica para executar binários ARM. Por padrão, essas imagens de sistema do Android 9 e do Android 11 oferecem suporte ao ARM e oferecem uma performance significativamente melhor em comparação com aquelas com emulação ARM completa.

Problemas conhecidos

  • Alguns binários ARMv7 não são executados em imagens do sistema Android 11 x86 e x86_64. Considere criar para o ARM64 ao segmentar o Android 11.

29.0.11 (29 de maio de 2019)

Esta atualização inclui as seguintes melhorias e correções:

  • Windows: o emulador agora depende da DLL libgcc que enviamos em vez de ser compilado com libgcc estaticamente.
  • Linux: foi adicionado suporte ao logcat com a API gRPC. Para saber mais sobre o gRPC, consulte Emulador de streaming gRPC (Linux).
  • O emulador agora inclui um build headless para convidados x86 de 32 bits (qemu-system-i386). Esse recurso permite que imagens x86 de 32 bits para APIs de nível 26 e anteriores sejam executadas com o build headless. Observe que para convidados x86 de 32 bits com API 27 e mais recente, o emulador usa o mecanismo de 64 bits (qemu-system-x86_64) porque nessas imagens do sistema, embora o espaço do usuário seja de 32 bits, o kernel é de 64 bits. O Android Studio usa o kernel para selecionar mecanismos de emulação.
  • Agora você pode especificar caminhos personalizados da biblioteca do Qt usando a variável de ambiente ANDROID_QT_LIB_PATH.
  • Você também pode executar o emulador com binários anteriores que usam QEMU1, se os executáveis QEMU1 (emulator[64]-[x86|arm|etc]) forem colocados no diretório do emulador.
  • Windows: foi corrigido um problema que às vezes fazia com que o emulador falhasse quando era iniciado com uma mensagem de solicitação de desativação de vCPU.
  • Foi corrigido um problema com uma barreira de pipeline desnecessária em texturas compactadas emuladas no Vulkan.
  • Correção de um erro que ocorria com solicitações HTTP proxy quando a codificação de transferência em partes era usada. Para saber mais, consulte os detalhes de confirmação.

29.0.9 (7 de maio de 2019)

Essa atualização inclui a seguinte correção:

  • Windows: correção de um problema quando a câmera de cena virtual e a webcam não funcionavam no emulador.

29.0.8 (6 de maio de 2019)

Esta atualização inclui as seguintes melhorias e correções:

  • Foi adicionado suporte a várias exibições de hardware virtual quando há um serviço de convidado para enumerar e definir cada exibição. Várias telas de hardware virtual serão incluídas em uma futura atualização de imagem do sistema do emulador.
  • Foi adicionada uma nova opção de linha de comando: -delay-adb. Essa opção suprime o processamento de pacotes ADB até que o convidado tenha concluído a inicialização (desativada em uma inicialização a frio). Ela também ajuda a resolver problemas que podem ocorrer se você usa o emulador em um ambiente de CI que reinicia o emulador e usa o DDMS ao mesmo tempo.
  • Correção de um erro que ocorria quando snapshots eram carregados, onde glIsRenderbuffer retornaria o valor incorreto.
  • Correção de alguns problemas com o estado desatualizado quando o convidado Android é reiniciado.
  • Windows: correção de problemas que impediam a inicialização do emulador quando o nome de usuário do Windows tinha caracteres ou espaços não ASCII.

Problemas conhecidos

  • A interface de snapshots está desativada para imagens de sistema do Automotive, porque os snapshots atualmente não oferecem suporte a essas imagens do sistema.

29.0.6 (1º de maio de 2019)

Esta atualização inclui vários novos recursos, melhorias nos recursos existentes e correções de bugs.

Remoção do suporte a QEMU1 e Windows de 32 bits

Para manter o emulador melhor, não enviamos mais binários do QEMU1 e do Windows de 32 bits. Se você estiver usando o Windows de 32 bits, não será possível atualizar para a versão 29.0.6.

Requisitos para imagens do sistema Android Q

Se você quiser executar um AVD que use uma imagem do sistema Android Q, precisará usar a versão 29.0.6 (esta versão) ou mais recente.

Melhorias no Project Marble

Esta atualização continua nosso trabalho na iniciativa Project Marble, anunciada na Conferência de Desenvolvedores Android, em novembro de 2018. Para saber mais sobre outras melhorias do Project Marble em versões anteriores, consulte Android Emulator: melhorias do Project Marble (link em inglês).

Para essa atualização, a maioria dos nossos esforços do Project Marble teve o objetivo de reduzir o uso de recursos do emulador, como o uso de CPU quando inativo. Também incluímos mudanças que facilitam o trabalho com o emulador em uma variedade maior de ambientes e abordamos problemas gerais de qualidade.

As seções a seguir descrevem as melhorias do Project Marble incluídas nesta atualização:

Melhorias no comportamento do áudio do host

A partir da versão 28.0.3, o emulador bloqueia a entrada de áudio do host por padrão.

Se você quiser usar os dados de áudio do host, poderá ativar essa opção acessando Extended Controls > Microphone e ativando a opção Virtual microphone uses host audio input. Essa opção é automaticamente desativada sempre que o emulador é reiniciado.

Se você está usando a linha de comando, também pode ativar o áudio do host usando a opção -allow-host-audio e usar os comandos ADB abaixo para ativar ou desativar os dados de áudio do host, respectivamente:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Melhorias para builds headless do emulador

A partir da versão 28.0.25, o emulador inclui uma opção de build headless que pode ser executada sem a interface. Você pode usar builds headless para ajudar a configurar o emulador para fluxos de trabalho do Docker e de integração contínua (CI).

Com essa atualização, fizemos outras melhorias para permitir que o emulador seja executado com um número mínimo de dependências. No Linux, as versões headless não incluem mais as bibliotecas pulseaudio ou libX11. As bibliotecas compartilhadas dependentes do sistema que não são empacotadas com o emulador foram reduzidas à seguinte lista:

  • Linux-vdso.so.1
  • Libutil.so.1
  • Libm.so.6
  • Libdl.so.2
  • Librt.so.1
  • Libpthread.so.0
  • Libgcc_s.so.1
  • Libc.so.6
  • ld-linux-x86-64.so.2

Bibliotecas de IU do Qt atualizadas para 5.12 LTS

Esta atualização inclui as seguintes melhorias da versão Qt 5.12 LTS:

  • Para evitar falhas na decodificação de libpng do Qt ao iniciar algumas imagens do sistema, o emulador agora usa a própria cópia de libpng para decodificar imagens PNG.
  • Para resolver problemas em algumas instalações do Linux que contêm versões incompatíveis de algumas bibliotecas dependentes do Qt, agora empacotamos libfreetype, libsoftokn, libsqlite3 e libxkbcommon com o emulador.
  • O emulador agora usa as bibliotecas de janelas nativas da plataforma para receber as dimensões do monitor, em vez de usar as bibliotecas do Qt, que retornavam resultados não confiáveis.

Otimizações automáticas de CPU após inicialização a frio

Para abordar o uso da CPU, o emulador agora executa os seguintes comandos ADB em uma inicialização a frio após receber um sinal boot complete:

adb shell settings put screen_off_timeout 214783647
Este comando aumenta o tempo limite de tela desligada para que o emulador possa ser usado no modo de bateria sem estar carregando. No modo de bateria, o uso da CPU em segundo plano é muito reduzido.
No modo de carregamento CA, as operações em segundo plano do GMSCore, como atualizações de apps, podem ocupar todos os núcleos da CPU do dispositivo (e, por extensão, da máquina do usuário) sem aviso prévio.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
Este comando revoga as permissões de microfone do app Pesquisa Google, o que reduz muito o uso da CPU na tela inicial e no inicializador quando o app Pesquisa Google está ativo.
O comando é executado junto com o comportamento padrão do emulador de desativar o áudio do host. Além disso, fornece automaticamente a mitigação de uso da CPU descrita para a detecção de hotword da versão 28.0.23.

Novas variáveis de ambiente para monitoramento de desempenho

Agora você pode usar duas novas variáveis de ambiente para permitir o monitoramento detalhado do desempenho do emulador e do uso de recursos.

SHOW_PERF_STATS=1
Esta variável de ambiente permite o rastreamento do uso de CPU e RAM. O rastreamento para uso de RAM distingue entre o uso de gráficos e a memória residente total.
ANDROID_EMU_TRACING=1
Esta variável de ambiente permite a impressão toda vez que uma operação de entrada ou de gráficos leva muito tempo (mais de 1 ms).
Também estamos usando essa variável de ambiente para ajudar a diagnosticar problemas que os usuários do Windows tiveram com mais instabilidade (frames perdidos) do que os usuários do macOS ou Linux.

Melhorias gerais no Project Marble

Esta atualização também inclui as seguintes melhorias gerais que fazem parte da iniciativa Project Marble:

  • Agora é possível pausar imediatamente todas as vCPUs no emulador usando os seguintes comandos do console:
    • adb emu avd pause
    • adb emu avd resume
  • Grande redução na sobrecarga de desenho OpenGL. Essa melhoria reduz o uso da CPU enquanto o emulador reproduz animações.
  • Restauração da compatibilidade com o dispositivo de rede virtual e1000 da linha principal do QEMU. Você pode usar esse dispositivo para configurar o emulador em um ambiente de rede em ponte. Em um ambiente de rede em ponte, o emulador é mostrado na rede do host e vice-versa.
  • Binários adequados da BIOS do QEMU 2.12 agora são usados para iniciar o emulador.
  • Atualização da versão do ffmpeg para 3.4.5 para codificação e decodificação de vídeo.
  • Redução significativa na sobrecarga de E/S do loop principal do QEMU no macOS, substituindo o loop principal baseado em select() por um loop principal baseado em kqueue.
  • O tamanho do buffer do Logcat aumentou para 2 MB a fim de resolver problemas com EOF instável inesperado ao executar o logcat com o emulador.
  • O emulador agora exporta a variável de ambiente LC_ALL=C por padrão. Essa mudança aborda falhas e problemas de incompatibilidade associados à execução do emulador em diferentes localidades.
  • Agora, você pode rastrear o uso da CPU e da RAM pelo emulador usando estatísticas de performance, que podem ser acessadas em Extended Controls > Settings > Advanced > Performance Stats. Use essas estatísticas para diagnosticar problemas rapidamente se o emulador parecer estar usando muita CPU ou RAM.
  • Agora, glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE usa o resultado da GPU do host em vez de um resultado emulado. Essa mudança ajuda a corrigir problemas em que imagens e recursos não são exibidos devido ao formato inadequado de leitura.
  • Foi adicionado suporte às extensões OpenGL ES GL_EXT_texture_format_BGRA8888 e GL_APPLE_texture_format_BGRA8888 quando elas oferecem suporte ao host.
  • Adicionamos mais informações de diagnóstico à interface do Bugreport. Além disso, é possível acessar relatórios de bugs no console usando os seguintes comandos:
    • telnet localhost 5554
    • avd bugreport
  • Nas imagens do sistema Android Q, o emulador aumenta o tamanho mínimo de RAM para 2 GB.
  • Inclusão de mais registro e impressão sempre que o OpenGL ou o hipervisor falha ao inicializar.
  • Se o emulador não pode iniciar uma instância -read-only simultânea de um AVD, ele tenta reiniciar o AVD -read-only mais três vezes nos três segundos seguintes. Essa mudança aumenta a probabilidade de o emulador iniciar instâncias -read-only simultâneas de um AVD se outras instâncias graváveis desse AVD não tiverem concluído a limpeza de arquivos desatualizados.
  • Para as próximas imagens do sistema, o emulador agora é compatível com o Hardware Composer 2.0. Essa alteração diminuirá a sobrecarga do driver ao executar a maioria das animações.
  • Agora, o build do emulador se baseia no CMake/Ninja.
  • Na interface de controles estendidos do emulador, as linhas divisórias da tabela de atalhos do teclado foram restauradas.
  • Os usuários podem fornecer métricas de uso de CPU e RAM à nossa equipe em um intervalo de 10 segundos. Usamos essas métricas para enriquecer nossos dados sobre o uso de recursos do emulador com diferentes casos de uso dos nossos usuários, o que nos permite tornar o emulador mais eficiente e responsivo.

Correções gerais no Project Marble

Esta atualização também inclui as seguintes correções gerais que fazem parte da iniciativa Project Marble:

  • Correção de problemas com frames incorretos exibidos em sistemas com GPUs Intel ao usar imagens do sistema Android Q.
  • Foram corrigidos problemas em que uma tela preta era mostrada quando imagens do sistema Android Q eram usadas com skins do Pixel 2 XL (ou qualquer skin com entalhe ou cantos arredondados).
  • Foi corrigido um problema em que a opção de linha de comando -partition-size não definia o tamanho da partição de dados.
  • Foi corrigido um problema em que o pulseaudio no emulador Linx girava e ocupava todo o núcleo da CPU em algumas situações.
  • Correção de problemas com acesso à memória fora do limite ao processar texturas compactadas.
  • Correção de erros de GL que ocorriam no host em glTexSubImage2D durante a atualização de determinados buffers gralloc (com formato RGB 565, RGB10A2, RGB(A)16F).
  • Correção de um problema de exibição (em inglês) de imagens do sistema Android Q com snapshots, em que a geometria da aba de notificações era renderizada com uma configuração de divisor de instância inadequada.
  • Foram corrigidos alguns problemas de falhas e congelamentos na inicialização difíceis de reproduzir, que aconteciam devido ao fato do Qt perder sinais ou ter estados irregulares e inconsistentes na inicialização.
  • Correção de vários problemas de simultaneidade. Agora, podemos compilar o emulador Linux com o ThreadSanitizer (TSAN), que pode facilmente revelar bugs que antes eram difíceis de reproduzir.
  • Para usuários de Linux: descobrimos que, em determinados kernels de host, o kernel convidado do Android pode causar erros e sair do KVM com um erro genérico de hardware. Agora, o emulador irá realizar a operação abort() quando isso acontecer para aumentar a capacidade de depuração. Anteriormente, o emulador simplesmente desligava.
  • Para usuários do Linux: para conveniência com configurações de CI, você pode usar a nova opção de linha de comando -stdouterr-file <file-name> para redirecionar stdout e stderr para um arquivo.
  • Foi corrigido um problema em que SO_REUSEADDR era usado incorretamente. Para saber mais, consulte os detalhes de confirmação.
  • Foi corrigido um problema de longa data com o emulador do Windows em que subprocessos, como comandos adb, não eram iniciados quando o nome de usuário continha espaços.
  • Foi corrigido um problema de inicialização ausente do RCU nas linhas de execução da vCPU do HAXM. Essa correção poderá resolver algumas falhas e disputas.
  • Foi corrigida uma falha que acontecia com determinados padrões de salvar e carregar snapshots da interface relacionada usando imagens recentes do sistema Android Q.
  • Foi corrigido um problema em que a câmera de cena virtual ficava em branco quando o emulador era inicializado usando um snapshot e um macro de RA estava sendo reproduzido ao salvar esse snapshot.
  • Foi corrigido um problema em que alguns usuários com configurações de área de trabalho remota encontravam uma tela preta ao iniciar o emulador no Linux. Para evitar isso, agora, o emulador configura explicitamente MESA_RGB_VISUAL. Para saber mais, consulte os detalhes de confirmação.
  • Correção de um problema em que os botões de rotação apareciam nos AVDs da TV.
  • Foi corrigido um problema em que, quando o emulador era configurado para ficar sempre na parte de cima, a janela de controles estendidos aparecia toda vez que o emulador era girado.

Perfis de hardware para dispositivos dobráveis

Agora, o emulador inclui perfis de hardware para dispositivos dobráveis. Para usar esses novos perfis de hardware, é necessário ter o Android Studio 3.5 Canary 10 ou mais recente.

Há dois perfis de hardware dobrável que podem ser usados para criar um AVD:

  • Dobrável 7,3": 1536 x 2152 desdobrado, 4,6" 840 x 1960 dobrado
  • Dobrável 8": 2200 x 2480 desdobrado, 6,6" 1480 x 2480 dobrado

Ao executar o emulador usando um desses perfis de hardware, você pode dobrar e desdobrar o dispositivo usando as ações de dobrar e desdobrar na barra de ferramentas do emulador, os comandos do console ou os seguintes atalhos do teclado:

  • Dobrar: Ctrl + F (Command + F no macOS)
  • Desdobrar: Ctrl + U (Command + U no macOS)

Macros de RA

O emulador agora inclui macros que podem ajudar a testar ações comuns de RA. Por exemplo, use uma macro para redefinir todos os sensores do dispositivo para o estado padrão.

Para saber mais, consulte Testar ações comuns de RA com macros.

Compatibilidade com Vulkan (Windows, Linux)

Usuários do Windows e Linux agora podem testar apps Vulkan com o Android Emulator até o Vulkan 1.1 usando uma imagem de sistema compatível (Android Q Beta 3 ou mais recente para Vulkan 1.1, Android Q Beta 2 para Vulkan 1.0) e uma GPU host compatível (isso inclui a maioria das GPUs Intel, NVIDIA e AMD de 2014 e mais recentes).

Para ativar o suporte do Vulkan, adicione as flags de recursos abaixo ao arquivo ~/.android/advancedFeatures.ini (crie o arquivo, se ele não existir):

  • Vulkan = on
  • GLDirectMem = on

Suporte inicial para desenvolvedores de ROM

Os desenvolvedores de ROM que estão criando as versões sdk_phone_x86 ou sdk_phone_x86_64 (variantes de userdebug, eng) na ramificação master de AOSP agora podem executar um emulador ativado por Vulkan.

Esse suporte ainda é experimental e é voltado principalmente para desenvolvedores que trabalham em imagens de sistema, drivers e mecanismos de jogos. Ainda faltam muitas extensões. No entanto, a memória HOST_COHERENT é compatível e agora você pode executar os exemplos do tutorial da API Vulkan (em inglês).

Se você estiver usando o Linux, tente fazer isso usando os seguintes comandos:

mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem

Renderização Skia com Vulkan

As GPUs NVIDIA e AMD com suporte a Vulkan também têm suporte à interoperabilidade sem cópia com OpenGL usando a extensão GL_EXT_memory_objects. O emulador utiliza esse recurso para oferecer uma forma completa de renderizar a interface do Android usando as APIs Skia Vulkan.

Se você tem uma GPU NVIDIA ou AMD compatível com Vulkan, use os seguintes comandos para testar a renderização do Skia com uma imagem de sistema compatível (Android Q Beta 3 e mais recentes):

adb shell
su
setprop debug.hwui.renderer skiavk
stop
start

Suporte a Vulkan no macOS

O suporte ao macOS ainda é experimental, mas o emulador já inclui as APIs Swiftshader, MoltenVK e libportability (gfx-rs). Teste essas APIs configurando as seguintes variáveis de ambiente:

  • Swiftshader: ANDROID_EMU_VK_ICD=swiftshader
  • MoltenVK: ANDROID_EMU_VK_ICD=moltenvk
  • libportability: ANDROID_EMU_VK_ICD=portability

Problemas conhecidos

Às vezes, o HAXM não consegue mapear a memória coerente do Vulkan para o convidado e desliga o emulador. Isso será tratado em uma atualização futura do HAXM.

Emulador de streaming gRPC (Linux)

Tentamos sempre tornar o emulador o mais versátil possível, permitindo a renderização e a interatividade da GPU host na maior gama de contextos de execução. Nossos usuários de CI e áreas de trabalho remotas têm os seguintes problemas de longa data:

  • O envio de comandos de entrada de forma programática para o emulador envolve a execução de comandos adb shell, que podem sofrer sobrecarga, ou o uso do console telnet, que é mais rápido, mas pode não funcionar com determinadas configurações de rede.
  • Os usuários de CI muitas vezes executam emuladores headless, o que pode dificultar a percepção de problemas que exigem que a tela seja visível ou interativa.
  • Usuários de área de trabalho remota geralmente não podem interagir com o emulador ao usar a renderização do host de GPU, porque essa renderização geralmente é vinculada a telas não virtuais do host.

Para resolver isso, ao executar em uma máquina Linux, o emulador agora exibe um serviço gRPC, uma estrutura geral para RPC que funciona em HTTP.

Por padrão, o serviço gRPC do emulador está desativado, mas você pode ativá-lo usando a seguinte opção de linha de comando, em que <port> é a porta em que o emulador exibe solicitações gRPC (geralmente 5556):

-grpc <port>

Depois que o serviço é iniciado, os comandos gRPC podem ser emitidos a partir de clientes. O conjunto atual de comandos permite o envio de eventos de entrada e o recebimento de capturas de tela. Esses comandos ajudam a resolver os seguintes problemas:

  • Comandos de entrada podem ser enviados para o emulador com baixa sobrecarga sobre HTTP. O HTTP também permite que os comandos sejam enviados em configurações de rede adicionais.
  • Os comandos de captura de tela podem ser enviados para consultar a tela atual, mesmo que o emulador esteja sendo executado de forma headless. Para interatividade, os eventos de entrada também podem ser enviados de volta ao emulador.
  • Os usuários de computadores remotos podem executar o emulador headless na tela principal com renderização acelerada por GPU enquanto usam o gRPC para receber capturas de tela e enviar eventos de entrada para interagir com o emulador.

Para ver uma lista completa dos comandos disponíveis, consulte este protobuf.

Para ajudar a começar a usar o gRPC, fornecemos alguns clientes de amostra que você pode consultar.

Atualmente, estão incluídas as seguintes amostras:

  • Um serviço baseado em Go que pode ser usado para consultar estados do emulador.
  • Um app React que demonstra interatividade remota por captura de tela e RPCs de entrada. Este exemplo requer a versão 3.7.0 ou mais recente do protobuf.
  • Uma amostra em Python que consulta a configuração de VM do emulador e depois envia uma série de comandos.

28.0.25 (29 de março de 2019)

Esta atualização inclui as seguintes melhorias e correções:

Compilação de emulador headless

É difícil configurar o emulador com o Docker e outros fluxos de trabalho de integração contínua (CI, na sigla em inglês), devido à expectativa implícita de que o sistema oferece suporte ao Qt e às respectivas dependências da biblioteca compartilhada, entre outros problemas.

Como primeiro passo para resolver isso, introduzimos uma variante do inicializador do emulador com executáveis QEMU que não dependem do Qt. No Linux, ainda há um link para libX11, mas esperamos removê-lo também em breve.

Para usar o emulador headless, execute-o a partir da linha de comando como de costume, mas substitua a invocação do binário do emulador por emulator-headless. Para saber mais, consulte a atualização da versão 28.1.8 Canary.

  • Correção da exibição incorreta de frames em GPUs Intel ao executar imagens do sistema Android Q.
  • Correção de problemas em que uma tela preta era exibida ao usar imagens do sistema Android Q com skins do Pixel 2 XL.
  • Os binários mais recentes da BIOS agora são usados para iniciar o emulador. Essa mudança pode ajudar a reduzir erros de "solicitação de desligamento de vCPU" que acontecem algumas vezes ao iniciar o emulador no Windows.
  • Foi retirada uma correção para o problema de tela errada ao retomar imagens do sistema Android Q de um snapshot (em inglês).
  • Os usuários estavam tendo problemas de emuladores “não autorizados” (em inglês) devido a uma mudança incompatível no ADB no Platform Tools 28.0.2. Agora, você pode usar com segurança o ADB no Platform Tools 28.0.2 com o emulador. Se você tiver problemas com emuladores "não autorizados", siga estas etapas de solução de problemas:
    1. Saia de todos os emuladores.
    2. Exclua os arquivos ~/.android/adbkey e ~/.android/adbkey.pub.
    3. Execute este comando: adb kill-server
    4. Execute este comando: adb devices
    5. Limpe os dados do AVD.
    6. Reinicie o emulador.

28.0.23 (29 de janeiro de 2019)

Esta atualização inclui as seguintes melhorias e correções:

Entrada de áudio do host desativada por padrão

Uma postagem recente no Reddit (em inglês) detalhou como o SO Android convidado sempre usava o áudio do microfone do host e, assim, permitia que o "Ok Google" funcionasse inesperadamente. Lamentamos por isso e vamos trabalhar com a equipe do Android para garantir que a detecção de hotwords também seja desativada na imagem do sistema.

Para resolver isso, fizemos as seguintes alterações:

  • Os dados reais de áudio do host agora são silenciados por padrão. Quando o convidado usa o microfone, silêncio é transmitido, em vez do áudio do host.
  • Se você quiser usar os dados de áudio do host, ative essa opção acessando Extended Controls > Microphone e ativando Virtual microphone uses host audio input. Essa opção é automaticamente desativada sempre que o emulador é reiniciado.

Atualizações em investigações de uso da CPU

Durante nossas investigações do Project Marble, notamos que o alto uso de CPU no emulador geralmente se enquadra nestas três categorias:

Em inatividade: atualizações automáticas de apps nas imagens da Play Store

Descobrimos que todos os apps instalados são atualizados em intervalos aleatórios, mesmo quando o usuário não está conectado. Durante o processo, o uso da CPU é direcionado ao número de núcleos x 100% (geralmente cerca de 400%) no GMSCore e no dex2oat. É possível atenuar esse problema desativando as atualizações automáticas de aplicativos no aplicativo Play Store.

Em inatividade: detecção de hotwords

Na tela inicial e sem qualquer app em primeiro plano, pode haver um grande uso da CPU (cerca de 25% com picos de até 50%). Isso é causado pela detecção de hotwords que dá um ping constantemente no host. Não é possível atenuar esse problema desativando a entrada de áudio do host, porque o uso da CPU é causado principalmente pelo tempo que leva para ir do host ao convidado. No entanto, é possível mitigar esse problema revogando as permissões de microfone do Google app.

Em atividade, às vezes em inatividade: animações

A terceira fonte de alto uso da CPU são as animações. Descobrimos que, ao otimizar a pilha do driver gráfico, também podemos reduzir o uso da CPU, mesmo quando o emulador não estiver inativo. Lançaremos otimizações de drivers gráficos de forma incremental como parte do Project Marble.

28.0.22 (21 de dezembro de 2018)

Esta atualização inclui as seguintes melhorias e correções:

  • Correção de um problema de longa data em que, em algumas configurações, o emulador do Mac reiniciava ou ocorria kernel panic no salvamento do Quick Boot (problema 120951634).
  • Ao usar um arquivo mapeado como o snapshot de RAM, o emulador agora reverte o mapeamento de arquivo explicitamente ao sair.

28.0.20 (11 de dezembro de 2018)

Esta atualização inclui as seguintes melhorias e correções:

  • Correção de um problema no Windows que fazia o emulador congelar durante o carregamento de snapshots com determinados modelos de GPUs Intel.
  • Correção de um problema que causava um estado de dispositivo ADB unauthorized ao usar um local ANDROID_SDK_HOME não padrão.
  • Correção de um problema no Windows que fazia o emulador falhar ao inicializar imagens do sistema com a aceleração da CPU desativada.
  • Correção do problema de tela do emulador pixelada. O downsampling funcionará normalmente agora.
  • Foi corrigido um problema no macOS 10.14 e mais recentes em que o controle de mouselook da câmera de cena virtual ficava muito sensível devido a uma interação com as novas configurações de segurança de acessibilidade.
  • Correção de um erro no cálculo do fuso horário que poderia fazer com que o relógio do emulador fosse mudado esporadicamente.
  • Foram corrigidos erros de renderização em vários apps cocos2d e Unreal Engine.
  • O emulador passou a ser compatível com Wi-Fi ponto a ponto. Agora, dois emuladores podem se comunicar diretamente por Wi-Fi se usarem a imagem mais recente da Play Store do Android Pie. Para usar o Wi-Fi ponto a ponto, inicie dois AVDs com os mesmos argumentos -wifi-server-port e -wifi-client-port:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • Foi adicionado suporte a mais webcams no Windows, aceitando tamanhos de frames incompatíveis e os redimensionando de forma dinâmica para se ajustarem à configuração da câmera do convidado Android.

28.0.16 (novembro de 2018)

Esta atualização inclui vários novos recursos, melhorias nos recursos existentes e correções de bugs.

Uso de recursos

Agora, o emulador usa menos RAM geral, especialmente ao usar imagens do sistema com API de nível 28 ou mais recente. Essas imagens do sistema incluem melhor uso de memória para drivers gráficos do convidado.

Além disso, também melhoramos o uso de recursos nas seguintes áreas:

  • Uso reduzido de memória do emulador durante testes de longa duração. Se você ainda tiver problemas com o uso de memória durante esse tipo de teste, informe um problema que descreva seu caso de uso no Issue Tracker.
  • Uso reduzido da CPU ao executar aplicativos com animações.
  • Foi corrigido um problema em que o contexto QEMU AIO podia vazar no Windows.

Executar várias instâncias de um único AVD simultaneamente

É possível iniciar várias instâncias do mesmo AVD e executá-las simultaneamente. As instâncias iniciadas após a primeira são somente leitura, e as mudanças no disco virtual convidado são descartadas na saída.

Para executar várias instâncias do mesmo AVD ao mesmo tempo, inicie qualquer instância após a primeira a partir da linha de comando usando a sinalização -read-only.

Esse recurso é possível copiando os arquivos QCOW2 associados às partes graváveis da imagem do Android. Para ajudar a gerenciar o espaço em disco, também empacotamos a ferramenta de linha de comando qemu-img para permitir que você confirme previamente arquivos QCOW2 antes de iniciar várias instâncias.

Além disso, quando usado acoplado ao recurso de snapshots de RAM convidado com backup de arquivos , várias instâncias AVD compartilham o snapshot principal do AVD Quick Boot como fonte comum de RAM convidado copy-on-write. Essa propriedade significa que as instâncias compartilham muito da memória RAM em comum. Use esse recurso para executar testes que precisem de execução simultânea em vários dispositivos.

Agradecemos seu feedback sobre possíveis casos de uso que fazem parte de seu fluxo de trabalho interativo ou de CI normal. Crie ou apoie problemas no Issue Tracker.

Snapshots de RAM convidado com backup de arquivos

Ao pré-alocar e mapear a RAM de convidado como um arquivo, o emulador agora pode salvar snapshots do Quickboot durante o tempo de execução, em vez de fazer todo o trabalho na saída. Se você estiver observando um tempo de salvamento longo ao fechar seus emuladores, ative esse recurso para melhorar a performance do Quick Boot. Por padrão, um snapshot do Quick Boot é salvo na saída e carregado novamente, como ao suspender e ativar um dispositivo real.

Como a RAM de convidado do Android agora é salva automaticamente por padrão, se você quiser definir um estado de dispositivo e carregar repetidamente desse estado, vai precisar pedir ao emulador para descartar as mudanças após cada sessão. Você pode fazer isso das seguintes maneiras:

  • Use as sinalizações -no-snapshot-save ou -read-only ao iniciar o emulador a partir da linha de comando.
  • Acesse Extended Controls > Snapshots > Settings e alterne Auto-save current state to Quickboot? para No.
  • Reinicie o emulador depois de selecionar essa opção. Se o emulador estiver configurado para salvar automaticamente, você poderá executar o seguinte comando para definir um checkpoint:
    adb emu avd snapshot remap 0
    
    Depois de executar esse comando, o snapshot do Quick Boot do emulador vai permanecer nesse checkpoint. Execute o mesmo comando novamente para carregar o emulador pelo checkpoint.

Snapshots que são criados e carregados pela interface de snapshots continuam funcionando como antes, sem mapeamento de arquivo.

Como essa é uma grande mudança na forma como o Quick Boot funciona, gostaríamos muito de saber se ela melhora a performance do Quick Boot e que tipo de problemas você encontra ao usá-la. Se tiver problemas, você poderá desativar esse recurso adicionando a seguinte linha ao arquivo ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off

Quando você inicializa o emulador de um snapshot (usando a opção de linha de comando -snapshot ou iniciando de um snapshot no gerenciador de AVD), o emulador desativa o salvamento automático de snapshots do Quick Boot e o salvamento dos snapshots na saída. Isso reduz as chances de um snapshot do Quick Boot ser substituído acidentalmente e evita caminhos substitutos lentos que não usem snapshots do Quick Boot com backup de arquivos.

QEMU 2.12

Reformulamos nossa variante QEMU do QEMU 2.9 para o QEMU 2.12. Essa atualização inclui as seguintes mudanças do QEMU:

Aqui estão algumas das mudanças notáveis que afetam o Android Emulator:

  • x86: o gdbstub agora fornece acesso aos registros SSE.
  • Imagens de disco: o bloqueio de imagem foi adicionado e é ativado por padrão. Vários processos QEMU não poderão gravar na mesma imagem se o host for compatível com bloqueio OFD ou posix, a menos que as opções forem especificadas de outra forma.
  • O qemu-img: qemu-img resize é compatível com a pré-alocação das novas partes da imagem.
  • A redução de QCOW2 agora oferece suporte a qemu e qemu-img.

Acessibilidade

  • Foram corrigidos problemas com leitores de tela e o suporte a essas ferramentas foi melhorado na interface de snapshot e de gravador de tela.
  • Os ícones de notificação do Quick Boot se tornaram mais acessíveis aos usuários daltônicos.

Gráficos

  • Correção de um problema de acesso à memória fora dos limites que poderia ocorrer para ponteiros de matriz de vértice do OpenGL ES.
  • Algumas GPUs mais antigas não eram compatíveis com o OpenGL 2.1 ou versões mais recentes (o que é necessário) ou tinham outros problemas de confiabilidade. Esses problemas podiam fazer com que o emulador falhasse ao iniciar, congelasse ou ficasse inutilizável na configuração de GPU padrão. O emulador agora alternará automaticamente para o renderizador Swiftshader se detectar que essas GPUs estão em uso.
  • Foi corrigido um problema que fazia com que o emulador não postasse o framebuffer correto se FBO != 0 estivesse vinculado ao tempo de eglSwapBuffers.
  • Foi corrigido um problema em que a tela virtual do Android só era exibida no canto superior esquerdo. Acreditamos que isso ocorria devido à configuração incorreta de variáveis de ambiente do Qt. O emulador agora substitui todas as variáveis de ambiente relacionadas ao dimensionamento do Qt.
  • Foi corrigido um problema em que o emulador travava em algumas situações ao carregar apps GLES1 de um snapshot.
  • Foram corrigidos problemas de simultaneidade no OpenGL e inicialização de linhas de execução de renderização que podiam resultar em liberações duplas ou dados corrompidos.
  • Agora, o Android Emulator oferece suporte a textura compactada LDR ASTC (GL_KHR_texture_compression_astc_ldr) para imagens de sistema que usam a API de nível 28 ou mais recente.
  • A maioria das GPUs modernas pode iniciar o emulador com o OpenGL ES 3.x ativado por padrão sem usar a flag de recurso GLESDynamicVersion.
  • O uso de -gpu guest (renderização de software no convidado) foi descontinuado. As imagens do sistema para o nível 28 ou mais recente da API agora passam a usar automaticamente o Swiftshader (-gpu swiftshader_indirect).
  • Se o emulador for iniciado na linha de comando usando a flag -no-window, o renderizador padrão vai ser Swiftshader.

Localização

  • Agora, o emulador pode atualizar a orientação junto com a posição de latitude e longitude. O sensor virtual do magnetômetro se ajusta dinamicamente ao norte magnético inferindo o movimento ao reproduzir um arquivo GPX ou KML.
  • A velocidade do dispositivo agora pode ser configurada na página "Location".
  • Ao reproduzir um arquivo GPX ou KML, a velocidade é definida automaticamente, e é configurada como zero quando a reprodução termina.
  • A altitude não está mais restrita entre -1.000 e +10.000 metros.
  • Correção de um problema em que a localização do GPS virtual não era atualizada periodicamente, a menos que a janela "Extended Controls" fosse aberta pelo menos uma vez.

Câmera

No Windows, agora mais webcams são compatíveis porque o emulador redimensiona dinamicamente os frames da câmera que são entregues pela webcam. Esse recurso também impede que erros na entrega de frames causem a paralisação do emulador.

Play Store

Para resolver problemas de falta de espaço em disco nas imagens da Play Store, o emulador agora redimensiona automaticamente a partição de dados do usuário para 6 GB ao executar com um novo AVD da Play Store.

Melhorias gerais de qualidade e correções

  • Alguns usuários informaram que o emulador está lento. Identificamos uma causa possível, em que o diretório temporário do emulador fica com muitos arquivos obsoletos. Como solução alternativa, o emulador não armazena mais arquivos de verificação de atividade do ADB nesse diretório. No entanto, isso também pode ajudar a excluir o conteúdo dessa pasta. A pasta está localizada em um dos seguintes locais, dependendo do sistema operacional:
    • Windows: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS or Linux: /tmp/android-<username>/*
  • Se o emulador não puder ser iniciado devido à falta de memória RAM livre, uma mensagem de erro vai ser exibida. Se você estiver no Windows e perceber que há RAM livre, mas ainda assim não conseguir iniciar o emulador, pode ser que a taxa de confirmação tenha sido excedida. Para receber ajuda com esse problema, consulte a página de solução de problemas do emulador.
  • A opção de linha de comando -sysdir agora substitui corretamente o diretório inferido deProj rev 24/11 10h - arq grande, seg 158 okimagem do sistema.
  • Agora, o modem virtual é compatível com a consulta +MAI de informações de atividade de modelo.
  • Correção de vários problemas com vazamentos de memória, corrupção de memória e uso da CPU. Se ocorrerem falhas, vazamentos de memória ou outro uso alto de recursos, crie um problema no Issue Tracker.
  • Foi corrigido um problema do macOS 10.14 em que o uso de fones de ouvido Bluetooth com o emulador piorava o áudio globalmente. Para evitar isso, o emulador agora evita usar áudio Bluetooth ao executar no macOS (Problema 37070892, link em inglês)
  • Correção de um problema no Windows em que o relógio do emulador não estava no fuso horário correto.
  • Correção da lentidão do emulador e travamento em sistemas Linux com discos rígidos giratórios (HDDs).
  • Correção de alguns avisos de compilação que poderiam levar a corrupção de pilha no macOS.
  • Correção de problemas que poderiam resultar em relatórios incorretos de travamento.
  • Correção de um problema com a destruição de conjuntos de linhas de execução que poderia causar uma falha se uma das linhas de execução não fosse criada.
  • Correção de um problema no macOS em que os timers não eram confiáveis, levando a interrupções e outros comportamentos estranhos. Se o emulador travar no macOS, crie um problema no Issue Tracker.
  • Correção de um problema em que o fechamento do emulador desativava a interface, mas não fechava o emulador.
  • Correção de problemas envolvendo falhas esporádicas, incluindo um cancelamento devido à abertura de muitas instâncias de /dev/urandom.
  • Foi corrigido um problema que fazia com que o emulador falhasse na primeira inicialização quando o adb era encerrado à força.
  • O build do MIPS foi removido. Se você ainda precisa do MIPS, crie um problema no Issue Tracker.
  • Foi corrigido um problema em que as conexões do ADB podiam se corromper no carregamento do snapshot.
  • Foi corrigido um problema em que a janela do emulador tinha uma imagem consecutiva ou era teletransportada para fora da tela ao retomar um snapshot quando a orientação do dispositivo era diferente da orientação padrão do AVD.
  • Correção de problemas envolvendo falhas ao salvar snapshots.
  • No Linux, os sistemas de arquivos btrfs podem causar lentidões extremas, porque o emulador salva automaticamente os snapshots e usa o copy-on-write para dispositivos de disco virtual. Recomendamos limpar o diretório ~/.android/avd e executar o seguinte comando no diretório ~/.android/avd vazio:
    chattr +C
    
    Isso cria novos snapshots em uma pasta em que o copy-on-write está desativado.

HAXM 7.3.2

Gostaríamos de mencionar o HAXM 7.3.2 novamente, porque ele precisa ser instalado para que imagens recentes do sistema sejam executadas corretamente no emulador. O HAXM 7.3.2 já está disponível no canal Stable e também pode ser instalado manualmente em https://github.com/intel/haxm/releases.

Aqui estão alguns dos problemas que esta versão do HAXM resolveu:

  • Correção de falhas aleatórias em sistemas operacionais convidados que usam um kernel recente do Linux (>= 4.6). Por exemplo, Ubuntu 18.04 (39, 74).
  • Correção de um bug no emulador de instruções x86 que poderia levar a uma falha no host (#93).

Descontinuação para Windows de 32 bits

Devido ao baixo uso e aos altos custos de manutenção, planejamos suspender o uso da versão de 32 bits do Android Emulator que é executado no Windows. Vamos lançar um plano de transição antes da remoção e do fim da versão de 32 bits do emulador do Android. No entanto, estamos receptivos a qualquer feedback ou preocupação com essa mudança futura.

Entre em contato pelo Issue Tracker se você depende da versão de 32 bits do Android Emulator executada no Windows e diga como podemos atender você melhor no futuro.

27.3.10 (agosto de 2018)

Esta atualização inclui a seguinte correção de bug:

Correção da configuração de tamanho de RAM

Alguns usuários informaram que o emulador está lento. Identificamos uma causa possível em que o tamanho da RAM do AVD no arquivo config.ini estava sendo configurado incorretamente.

Para reduzir esse problema, o emulador aumenta o nível mínimo de RAM para imagens que usam o nível 26 ou mais recente da API. Assim, o nível padrão do Android Studio (1.536 MB) passa a ser usado. Se o arquivo config.ini do AVD não estiver listando hw.ramSize em megabytes, crie um problema no Issue Tracker. Você pode encontrar o arquivo config.ini no seguinte local:

~/.android/avd/<avdname>.avd/config.ini

27.3.9 (julho de 2018)

Esta atualização inclui as seguintes melhorias e correções de bug:

Mensagens de erro aprimoradas para o Windows Hypervisor Platform

Alguns usuários estavam tendo dificuldade em diagnosticar por que o Windows Hypervisor Platform (WHPX) não inicializava quando eles ativavam um emulador WHPX. Para ajudar a diagnosticar esses problemas, adicionamos mensagens de erro mais informativas. Você pode ativar essas mensagens de erro executando o emulador na linha de comando, usando a sinalização -verbose.

Correções gerais

  • Foram corrigidos erros OpenGL que ocorrem ao carregar um snapshot no aplicativo da câmera.

27.3.8 (julho de 2018)

Esta atualização inclui vários novos recursos, melhorias nos recursos existentes e correções de bugs.

Snapshots

Agora você pode salvar vários snapshots do AVD para determinada configuração de dispositivo e escolher quais dos snapshots salvos devem ser carregados ao iniciar o emulador.

Desde o Android Studio 3.2 Canary 13, cada configuração de dispositivo inclui um controle nas configurações avançadas da caixa de diálogo "Virtual Device Configuration", em que você pode especificar qual snapshot do AVD carregar ao iniciar o AVD.

Para acomodar essa expansão dos recursos de snapshot, adicionamos a categoria Snapshots à caixa de diálogo Extended controls. Esse novo painel contém controles para salvar e carregar snapshots AVD, incluindo os controles para salvar e carregar snapshot do Quick Boot que estavam anteriormente no painel Settings.

Você pode editar o nome e a descrição de cada snapshot salvo.

Para mais detalhes, consulte Snapshots.

HAXM 7.2.0

O HAXM 7.2.0 agora está disponível em todos os canais.

Esta atualização inclui correções de bugs e suporte aprimorado para grandes quantidades de RAM. Além disso, com essa atualização do HAXM e o Emulador 27.3 e mais recentes, os snapshots carregam o conteúdo correspondente na RAM sob demanda, em vez de carregar o snapshot inteiro quando o dispositivo virtual é iniciado. Essa mudança diminuirá bastante o tempo necessário para carregar um snapshot.

Para saber mais detalhes, consulte Configurar aceleração de VM.

27.2.9 (maio de 2018)

Esta atualização inclui vários novos recursos, melhorias nos recursos existentes e correções de bugs.

Gravação de tela

Agora você pode gravar vídeo e áudio no Android Emulator e salvar a gravação em um arquivo WebM ou GIF animado.

Os controles de gravação de tela estão na guia Screen record da janela Extended controls.

Dica: também é possível abrir os controles de gravação de tela pressionando Control + Shift + R (no Mac, Command + Shift + R).

Para iniciar a gravação da tela, clique no botão Start recording na guia Screen record. Para interromper a gravação, clique em Stop recording.

Os controles para exibir e salvar o vídeo gravado ficam na parte de baixo da guia Screen record. Para salvar o vídeo, escolha WebM ou GIF no menu da parte de baixo da guia e clique em Save.

Você também pode gravar e salvar uma gravação de tela do emulador usando a seguinte opção na linha de comando:

adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm

Capturas de tela

É possível fazer capturas de tela a partir da linha de comando com um dos seguintes comandos:

  • screenrecord screenshot [destination-directory]
  • adb emu screenrecord screenshot [destination-directory]

As capturas de tela são salvas no formato PNG.

Câmera de cena virtual e ARCore

Desenvolver e testar apps de realidade aumentada (RA) com o ARCore ficou ainda mais fácil com a nova câmera de cena virtual, que permite que você tenha sua experiência de RA em um ambiente virtual.

Para informações sobre como usar a câmera de cena virtual no emulador, consulte Executar apps de RA no Android Emulator.

Google Play Store em imagens de dispositivos Pixel

A Google Play Store agora está ativada para imagens de dispositivos Pixel e Pixel 2. Isso é indicado no AVD Manager do Android Studio 3.2 e versões mais recentes pelo logotipo do Google Play na coluna Play Store. Os AVDs com a Google Play Store ativada têm uma guia Google Play na caixa de diálogo Extended controls, que oferece um botão para a atualização do Google Play Services no dispositivo.

Snapshots

Agora, você pode carregar um snapshot do Quick Boot sem reiniciar o emulador. Para carregar um snapshot, abra a página Settings na janela Extended Controls e clique no botão Load Now.

Fizemos várias melhorias no carregamento e salvamento de snapshots para aumentar a eficiência do uso de recursos e minimizar o tempo de cada operação. Se você ainda observar salvamentos muito longos, informe o problema fornecendo detalhes da CPU, da RAM e das configurações de qualquer software antivírus/firewall/ de segurança em execução.

Renderização com Skia

Ao usar imagens para a API 27 ou mais recentes, o emulador pode renderizar a interface do Android com o Skia, que executa a renderização de forma mais suave e eficiente.

Por enquanto, é preciso ativar explicitamente o Skia para usá-lo.

Para ativar a renderização com Skia, use os seguintes comandos no shell adb:

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

Câmera

No Windows, o Android Emulator agora usa o Media Foundation como o back-end da webcam, o que melhora bastante a performance e o frame rate para a captura de webcam, até 720p 30 FPS.

No Mac, agora você pode usar webcam0 e webcam1 juntos.

Diversos

A opção de linha de comando -phone-number-prefix mudou para -phone-number [number], o que permite a configuração do número de telefone completo.

Agora você pode usar endereços SMS alfanuméricos.

Correções

  • A versão para Linux do Android Emulator agora é compilada usando um conjunto de ferramentas moderno, Clang C++. Essa mudança corrige o problema do emulador não iniciar devido a erros libGL e libstdc++.
  • Correção de várias causas de falhas e travamentos.
  • Para evitar travamentos e interrupções causados pela falta de espaço livre em disco, o emulador agora confere se há espaço suficiente na inicialização e não inicia quando não há pelo menos 2 GB livres.
  • Correção de um problema que impedia a renderização de alguns jogos Unity.
  • Foi corrigido um problema de DNS que fazia com que o emulador não conseguisse se conectar à rede.
  • Correção de um problema que causava mudanças no armazenamento interno alocado para um AVD com a caixa de diálogo "Virtual Device Configuration" e fazia com que não funcionasse.
  • Correção do problema de vários processos do adb serem criados, mas não serem encerrados corretamente.
  • Correção de um problema que fazia com que os botões de rotação e outras partes da interface parassem de responder, a menos que a janela "Extended controls" estivesse aberta.
  • Correção de um problema que fazia com que o recurso de copiar e colar do host não funcionasse, a menos que a caixa de diálogo "Extended controls" fosse aberta pelo menos uma vez.
  • O retângulo de redimensionamento do emulador sem frames foi atualizado para acompanhar melhor o tema visual do emulador.
  • Telefone e SMS agora são desativados corretamente quando o modo avião é ativado.
  • Foi corrigido um problema que fazia com que a funcionalidade de SMS e celular fosse desativada após o carregamento de um snapshot.
  • Você não receberá mais mensagens de aviso falsas dizendo: “Unable to open... \pstore.bin. Permission denied.”.
  • Correção de um problema que impedia o reposicionamento do AVD em algumas telas de Mac.
  • Correção de problemas com telas piscando e em branco em computadores MacBook Pro mais recentes ao executar AVDs com skins do Pixel 2 XL.
  • Correção de problemas com telas em branco ao alternar para o modo com zoom enquanto um emulador sem frames estava ativo.
  • Correção de um problema que fazia com que o skin do dispositivo e o conteúdo do emulador ficassem fora de sincronia quando o zoom era aumentado.

Se você ainda estiver com interrupções ou outras instabilidades, registre um problema.

27.1.12 (março de 2018)

Esta atualização inclui correções para os seguintes problemas:

  • A qualidade de áudio do Bluetooth era degradada após iniciar o emulador (problema 37095756).
  • Os locais enviados para um emulador eram enviados para todos eles (problema 73450633).
  • A localização do GPS configurada usando o console era substituída pelos valores definidos usando Extended Controls > Location na interface gráfica do usuário (problema 73471760).

Se você ainda estiver com interrupções ou outras instabilidades, registre um problema.

Com essa atualização, uma imagem do sistema atual e uma versão de visualização do Android Studio, você pode usar o Android Emulator para executar aplicativos de realidade aumentada criados com o ARCore. Para saber mais sobre os requisitos e instruções, consulte Executar aplicativos de RA no Android Emulator.

27.1.10 (fevereiro de 2018)

  • Resolução de captura da câmera

    Frames de 720p agora podem ser capturados por uma webcam conectada.

    Para trabalhar com o Android 8.1 (API de nível 27) e imagens de sistema mais recentes, a webcam conectada precisa conseguir capturar frames de 720p.

  • Correções

    • Foi corrigido um problema que fazia com que a captura da webcam algumas vezes gerasse uma imagem distorcida ou totalmente verde.
    • Correção de um problema que tornava possível ver a seguinte mensagem, mesmo quando não havia travamento: "emulator: ERROR: detected a hanging thread 'Qt event loop'. No response for 15000 ms".

Se você ainda estiver com interrupções ou outras instabilidades, registre um problema.

27.1.7 (fevereiro de 2018)

  • Janela de emulador sem frames:

    Por padrão, os emuladores com arquivos de skin do dispositivo agora são exibidos sem o frame da janela ao redor. Para mostrar o frame da janela, ative a opção Show window frame around device no painel "Settings" da janela Extended Controls.

  • Melhorias no Quick Boot para tornar o trabalho com os snapshots do AVD mais eficiente:

    • Salve um snapshot do AVD quando quiser usando o botão Save Now no painel "Settings" da caixa de diálogo Extended Controls.
    • Em muitos casos, o emulador reduz o tempo necessário para salvar um snapshot ao salvar apenas a diferença entre o estado atual e o snapshot salvo anteriormente.

    Para mais detalhes, consulte a documentação do Quick Boot.

  • O emulador foi atualizado para usar o QEMU 2.9.

    Algumas das melhorias notáveis incluem:

    • E/S otimizada e bloqueio de encadeamento de E/S mais refinado para um desempenho melhor;
    • correção de erros desde o QEMU 2.8 (26.1.4);
    • nova implementação do back-end do HAXM.

    Confira a lista completa de alterações no registro de alterações do QEMU 2.9.

  • Implementação do Swiftshader em conformidade com o OpenGL ES 3.0:

    Agora, o renderizador Swiftshader do emulador está em total conformidade com o OpenGL ES 3.0. Para ver detalhes sobre o renderizador Swiftshader, consulte a seção Settings > Advanced de Extended Controls.

  • Correções

    • Correção de um problema em que o compartilhamento da área de transferência não funcionava, a menos que a opção Enable clipboard sharing fosse desativada e depois ativada.
    • Correção de um travamento ao usar o back-end de renderização do Swiftshader com AVDs de baixa resolução.

27.0.5 (janeiro de 2018)

  • O ANGLE para renderização no Windows agora é desativado por padrão.

    Se o ANGLE for melhor para você, reative-o com a sinalização de linha de comando -gpu angle_indirect. Ou abra a janela "Extended controls", navegue até Settings > Advanced e selecione ANGLE D3D11 para a configuração do renderizador OpenGL ES.

  • Foi corrigido um problema em que Shift+B não digitava um caractere maiúsculo B.

27.0.2 (dezembro de 2017)

  • O novo recurso Quick Boot fornece tempos menores de inicialização do emulador com base em um snapshot da sua instância do AVD.

    O Quick Boot é ativado por padrão para todos os AVDs. Na primeira vez que você iniciar um AVD, ele executará uma inicialização a frio (semelhante a ligar um dispositivo). Todas as inicializações subsequentes serão rápidas, e o sistema será restaurado para o estado em que você fechou o emulador (como acontece quando se ativa um dispositivo).

    Se você quiser controlar quando o emulador salva um snapshot, abra a janela Extended controls do emulador e clique em Settings. Você pode selecionar uma das configurações abaixo para Save quick boot state on exit:

    • Yes: sempre salvar o snapshot do Quick Boot ao fechar o emulador. Esse é o padrão.
    • No: nunca salvar o snapshot do Quick Boot. Sempre executar uma inicialização a frio.
    • Ask: perguntar se o usuário quer ou não salvar o snapshot do Quick Boot ao fechar o emulador.

    Sua seleção se aplica apenas ao AVD aberto no momento.

    Para saber mais, consulte a documentação do Quick Boot.

  • Inclusão de compatibilidade com o Mac OpenGL ES 3 (para imagens do sistema usando o nível de API 24 e mais recentes, APIs do Google e ABI x86).

  • Para maior estabilidade em aplicativos OpenGL ES 2+, o emulador agora usa o perfil principal do OpenGL, se ele estiver disponível.

  • Novas opções para renderização com Swiftshader/ANGLE:

    • -gpu swiftshader_indirect: variante mais rápida e estável do Swiftshader que funciona com o Quick Boot.
    • -gpu angle_indirect (somente Windows): variante mais rápida e estável do ANGLE D3D que funciona com o Quick Boot.

    As opções -gpu swiftshader e -gpu angle mais antigas estão obsoletas. Na janela "Extended controls", as opções "SwiftShader" e "ANGLE" para a configuração do renderizador OpenGL ES em Settings > Advanced agora usam as variantes *_indirect.

  • Várias outras correções de bugs.

26.1.4 (agosto de 2017)

Esta é uma versão pequena com correções de bugs e as seguintes melhorias na configuração da GPU:

  • Ativação de animação na inicialização ao executar no renderizador ANGLE
  • Desativação de GLES3 ao executar no renderizador ANGLE

26.1.3 (agosto de 2017)

Esta é uma versão secundária com correções de bugs, melhorias de performance e pequenas mudanças nos recursos.

  • Agora, esta versão é necessária para usar as imagens mais recentes do sistema Android 8.0. Elas estão em conformidade com o Treble, com partições separadas de vendor.img.
  • O novo HAXM 6.2.0 já está disponível (verifique no SDK Manager) e inclui as seguintes atualizações:
    • Melhor uso de memória. O conjunto de pico de memória em funcionamento fixado pelo HAXM não é mais igual ao tamanho da RAM do AVD. Em vez disso, a memória é paginada sob demanda. Isso ajudará o emulador a ser executado de forma mais confiável em máquinas com quantidades menores de RAM.
    • Agora, o emulador com HAXM 6.2.0 pode ser inicializado com mais rapidez no macOS, ignorando uma fase de inicialização demorada.
  • Melhorias na configuração da GPU
    • Foram corrigidos problemas de tela preta na inicialização ao executar a renderização de software no lado do convidado voltando para a renderização de software no lado do host com o Swiftshader. As revisões recentes de imagens do sistema para os níveis de API 19 a 25 com as APIs do Google terão processamento no lado do convidado.
    • Correção de um problema em que o emulador era alternado para um renderizador de software devido à detecção da presença de GPUs Intel mais antigas, mas o emulador estava sendo executado em uma GPU discreta. A determinação de quais GPUs serão alternadas para usar a renderização ANGLE ou Swiftshader é feita da seguinte maneira:
      • iGPUs Intel mais antigas têm problemas de driver em OpenGL e ANGLE D3D. Os usuários com Intel HD Graphics 3xxx e anteriores precisam usar Swiftshader.
      • Alguns usuários relataram não conseguir usar imagens do nível 25 da API devido a um bug em que o Pixel Launcher ficava travando. Esse parece ser um problema de driver em alguns modelos Intel HD 4xxx. Então, eles serão alternados para o ANGLE automaticamente.
    • Para melhores resultados com a emulação de GPU, recomendamos o uso de uma GPU NVIDIA ou AMD discreta ou uma GPU Intel mais recente (Iris, HD 5xxx, HD 5xx/6xx).
    • Foi corrigido um problema que impedia a inicialização do emulador (falha na inicialização de emulação OpenGL) se o AVD estivesse configurado com hw.gpu.mode=host e o emulador fosse iniciado em um cliente de área de trabalho remota.
    • Esclarecimento das configurações "OpenGL ES API level (requires restart)". Foi adicionada uma opção de fazer downgrade do OpenGL ES 3 para o 2 caso o usuário tivesse problemas ou precisasse testar em níveis de API anteriores do OpenGL ES.
    • O uso do renderizador Mesa foi descontinuado. hw.gpu.mode=mesa agora vai ser alternado automaticamente para usar Swiftshader no host.
  • Melhorias para o macOS:
    • O emulador agora é totalmente compatível com o macOS 10.13 High Sierra por meio do Hypervisor.Framework ou do HAXM 6.2.0.
    • O Hypervisor.framework agora é ativado por padrão no macOS para imagens x86 de 32 bits a fim de melhorar a performance e a compatibilidade com o macOS. Se você tiver problemas com ele especificamente, crie um relatório de bug e adicione HVF = off a ~/.android/advancedFeatures.ini. Crie esse arquivo se ele não existir.
    • Correção do problema "sem Internet/falha ao anexar o depurador ao usar o Hypervisor.framework".
    • Para melhorar a compatibilidade e performance da captura da webcam, a captura da câmera baseada no QTKit foi substituída por uma captura em buffer baseada no AVFoundation.
  • Foi adicionado suporte a Wi-Fi para algumas imagens do sistema (atualmente apenas do nível de API 25). Um ponto de acesso chamado "AndroidWifi" está disponível, e o Android se conecta automaticamente a ele. O suporte ao Wi-Fi pode ser desativado, executando o emulador com o parâmetro de linha de comando -feature -Wifi.
  • Alguns usuários informaram a preocupação de que as imagens do sistema da Play Store de tamanho fixo não tinham armazenamento suficiente. Por isso, aumentamos o tamanho de 800 MB para 2 GB, por padrão.
  • Inclusão de um atalho de teclado (Ctrl+Shift+U) para abrir a página de interface de relatório de bugs diretamente da página de configurações.
  • Foi corrigido um problema em que, quando uma CPU mais antiga com Intel x86 EPT, mas sem UG, era usada com um núcleo configurado, o emulador não era inicializado.
  • Foi corrigido um problema em que o HyperV era detectado incorretamente se o emulador estivesse em execução em um hipervisor Xen.
  • Correção de um problema em que o emulador travava ao iniciar em algumas configurações do Linux.

26.1.2 (julho de 2017)

Esta versão inclui novos recursos e melhorias de desempenho.

  • Foi adicionada a capacidade de definir uma configuração personalizada de proxy HTTP nos controles estendidos (clique em More , Settings e Proxy). Por padrão, o emulador usa as configurações de proxy HTTP do Android Studio, mas essa tela permite que você defina uma configuração de proxy manual.

  • Foi adicionado suporte a VNC para GPU de modo convidado para que o emulador possa ser visualizado e controlado remotamente. Por exemplo, você pode iniciar o emulador e deixar o VNC detectar a porta 5901 da seguinte maneira:

    1. Execute: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Abra um visualizador de VNC, como o tightvnc viewer, para se conectar à porta 5901.

      • Para usar o cliente de compartilhamento de tela integrado do Mac, é necessária uma senha VNC ao iniciar o emulador. Para configurar uma senha, use este comando:

        emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio

        Em seguida, insira change vnc password no console e uma senha.

    No momento, o Android O não é compatível com o modo VNC.

  • Foi adicionado um botão File a bug na tela de ajuda de controles estendidos. Clique em More e em Help e Emulator help. Ao clicar em File a bug, será aberta uma caixa de diálogo em que você verá os detalhes do relatório do bug, como captura de tela, informações de configuração do AVD e um registro do relatórios do bug. Salve o relatório ou informe problemas no emulador.

  • Inclusão de sensor de giroscópio ao emulador e ao painel de sensores virtuais. Para que o sensor funcione, é preciso uma imagem do sistema compatível com o giroscópio (atualmente os níveis de API 24 e 25).

  • Acréscimo do DNS preferencial do host à lista de DNS do Qemu no Windows, quando várias interfaces de rede virtual no host introduzem diversos endereços DNS que não são funcionais para o emulador.

  • Foi adicionado suporte experimental do macOS Hypervisor.Framework a imagens x86 de 32 bits no macOS 10.10 ou mais recente usando flags do servidor, o que melhora o tempo de inicialização e o desempenho.

    • Se você tiver problemas com ele, adicione a linha HVF = off em ~/.android/advancedFeatures.ini.
  • O OpenGL ES 3.x agora é ativado por padrão para imagens do sistema e GPUs host compatíveis com o OpenGL ES 3. Atualmente, apenas o Android O (API de nível 26) e os hosts Windows/Linux oferecem suporte ao OpenGL ES 3.

    • Se você tiver problemas com o OpenGL ES 3, adicione a linha GLESDynamicVersion = off em ~/.android/advancedFeatures.ini.
  • O Emulador agora usa FBOs OpenGL fora da tela para toda a renderização, exceto para a publicação final da imagem de exibição, o que ajuda a resolver problemas de consistência de cores nas plataformas.

  • Depois de coletar dados sobre problemas repentinos de lentidão no emulador, determinamos que o problema pode estar relacionado a alguma interação entre drivers Intel OpenGL mais antigos e atualizações do Windows. Assim, os usuários com GPUs Intel HD 4000, 3000, 2000 e relacionadas têm a renderização definida por padrão como um renderizador D3D (ANGLE) ou Swiftshader (renderizador de software).

26.0.0 (março de 2017)

Esta versão é compatível com o nível 26 da API. Ela também inclui várias melhorias de performance e correções de bugs.

Revisão secundária 26.0.3 (maio de 2017)

  • Foram adicionadas flags de recursos atualizáveis on-line para resolver rapidamente problemas decorrentes de configurações de hardware com problemas. Isso permite que o Google implemente correções e recursos que dependem das configurações do usuário, atualizando as flags do lado do servidor. Se você perceber problemas com um hardware específico, informe um bug para que possamos investigar o problema.
  • Novo suporte à entrada por seletor giratório para imagens de sistema do Android Wear com o nível 25 da API. Para emular o disco de entrada por seletor giratório em um dispositivo Wear, clique na guia Rotary Input na janela estendida.
  • Agora, a caixa de diálogo "Crash Reporting" é redimensionável e não redefine mais a opção When to send crash reports para Ask sem a entrada do usuário.
  • O emulador de 32 bits agora exige que o tamanho máximo de RAM do AVD seja menor ou igual a 512 MB, para evitar que o emulador fique sem espaço no endereço virtual de 2 GB.
  • Inclusão de compatibilidade com caminhos absolutos em imagens de emulador.
  • Uma nova guia foi adicionada à janela estendida para imagens da Google Play Store que mostram a versão do Google Play Services e um botão para conferir se há atualizações para ele.
  • Inclusão de um menu suspenso para selecionar o renderizador OpenGL na página "Emulator Settings". Se você tiver problemas com o driver OpenGL em uma máquina Windows, tente usar as opções ANGLE (D3D11) ou ANGLE (D3D9) (reinicialização necessária). Se você estiver tendo problemas com o driver OpenGL em uma máquina que não seja Windows, tente usar o renderizador de software Swiftshader (reinicialização necessária).
  • Correção de uma falha rara na saída quando o emulador recebe os comandos exit e minimize
  • Correção de um problema de escala ao alterar telas em uma máquina Mac (problema 268296)
  • Foi corrigido um problema em que o emulador ocupa 300% da CPU e a retém após retomar o estado de suspensão do computador host ou quando o emulador está em execução há muito tempo.
  • Correção de uma falha no encerramento do emulador.

Atualizações com o HAXM v6.1.1 (março de 2017)

Observação: o HAXM v6.1.1 está disponível para usuários de Mac pelo SDK Manager desde 30 de março e vai ser disponibilizado para usuários do Windows em breve.

A versão 26.0.0 do Android Emulator é compatível com o HAXM v6.1.1, que inclui as seguintes atualizações:

  • Ativação da emulação de unidades de monitoramento de desempenho (PMU, na sigla em inglês) (problema 223377).
  • Correção da coexistência entre o VirtualBox e o Docker em Macs (problema 197915).
  • Revisão da mensagem de erro de instalação exibida quando o instalador não detecta o Intel VT-x no Windows, geralmente porque o Hyper-V está ativado.
  • Adição de suporte à aceleração do emulador do Android em uma VM do Windows baseada em Hyper-V. Essa atualização exige que a instância do Hyper-V host (aquela que gerencia a VM do Windows/convidado) use a versão mais recente do Hyper-V com a virtualização aninhada ativada. O Hyper-V precisa estar desativado na instância Hyper-V de convidado (a VM do Windows).

Dependências

  • Android SDK Platform-Tools versão 25.0.4 ou posterior
  • Android SDK Tools versão 26.0.0 ou posterior

Novos recursos e correções de bugs

  • Compatível com o nível 26 da API.
  • Conformidade total com GLES 2.0. Com uma GPU host que tenha drivers compatíveis com o OpenGL para computador, o emulador agora passa 100% da lista mustpass do Android CTS dEQP-GLES2. Foi lançado para imagens x86 de API de nível 24 (revisão 11 e mais recentes) e será incluído em breve para todas as imagens do sistema.
  • Melhor desempenho de reprodução de vídeo. Agora, o emulador armazena todos os buffers de cor de vídeo na memória compartilhada de host/convidado e realiza a conversão final de YUV para RGB na GPU. 1080p30 está dentro do alcance da maioria dos sistemas agora. Foi lançado para imagens x86 de API de nível 24 (revisão 11 e mais recentes) e vai ser incluído em todas as imagens do sistema em breve.
  • O emulador agora cancela o próprio registro da lista de adb devices de modo correto na saída e fecha as portas TCP abertas em máquinas Linux.
  • As conexões adb agora são mais confiáveis. Um emulador em execução é detectado de forma mais rápida e não entra mais no status "off-line" ou "não autorizado".

25.3.0 (março de 2017)

A partir desta versão, o Android Emulator será lançado separadamente das Ferramentas do SDK. Esta versão contém várias melhorias de desempenho, novos recursos e correções de bugs.

Revisão pequena 25.3.1 (março de 2017)

  • Correção de uma falha em algumas configurações da GPU desativando o GLAsyncSwap por padrão. Esse recurso foi adicionado na versão 25.3.0 para melhorar o tempo de renderização do frame e os frames por segundo para jogos e vídeos, mas faz com que o emulador falhe em algumas configurações de máquina desconhecidas. Você pode ativá-lo manualmente abrindo o arquivo android_sdk/emulator/lib/advancedFeatures.ini e definindo GLAsyncSwap = on.

Dependências

  • Android SDK Platform-Tools revisão 24 ou posterior
  • Android SDK Tools revisão 25.3.0

Novos recursos e correções de bugs

  • Mecanismo de emulação atualizado para o QEMU 2.7, incluindo todas as correções recentes de bugs, melhoria de desempenho e novos recursos.
  • Nova compatibilidade com IPv6.
  • O emulador agora usa o SwiftShader como renderizador de software puro no host.
  • Melhorias na performance do Android Pipe: o Android Pipe, principal canal de comunicação entre o emulador e o Android OS, agora é mais rápido, tem menor latência e oferece melhor performance em várias linhas de execução. Isso traz várias melhorias de desempenho para o emulador, incluindo:
    • melhoria na velocidade de push/pull do ADB;
    • melhor suporte a aceleração 3D;
    • maior capacidade geral de resposta do emulador;
    • melhor desempenho gráfico.
  • O emulador agora usa buffers do lado da GPU (glBindBuffers/ glBufferData) quando o convidado solicita, diminuindo a sobrecarga da CPU em alguns aplicativos.
  • Compatibilidade com áudio aprimorada.
  • E/S de disco mais rápida: o emulador agora usa linhas de execução diferentes para enviar E/S de disco, resultando em menor latência e melhor taxa de transferência (velocidade de E/S sequencial aproximadamente 1,5 vez maior, velocidade de E/S de acesso aleatório aproximadamente 5 vezes maior). Isso também reduz o número de liberações no disco, resultando em uma carga muito menor para dispositivos físicos.
  • O emulador agora usa arquivos esparsos para inicializar discos em máquinas Windows, acelerando a primeira inicialização e as inicializações feitas para limpar dados. Ao criar ou redefinir um AVD, o emulador grava de 100 a 200 MB de dados no disco, em vez de 2 GB ou mais.
  • Vários aprimoramentos da GUI:
    • O emulador usa o Qt 5.7.0, que inclui correções de bugs e melhorias na performance.
    • A inicialização da interface não tenta mais carregar todos os executáveis do emulador como plug-ins do Qt. Por isso, ela é muito mais curta, especialmente em HDDs.
    • As interações da interface agora são mais rápidas e suaves, incluindo rotação, redimensionamento de janela e carregamento e fechamento da janela de controles estendidos.