The Android Developer Challenge is back! Submit your idea before December 2.

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 do Android SDK Tools.

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

Para saber mais sobre as versões do Android Emulator anteriores a 25.3.0, consulte as notas da versão do Android SDK Tools.

Para ver detalhes de correções de bugs em cada versão, consulte o blog de atualizações de versão do Android Studio.

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 da compatibilidade com 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 posterior.

Melhorias no Project Marble

Esta atualização continua nosso trabalho na iniciativa Project Marble, anunciada na Android Developer Summit, 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 do emulador quando inativo. Também incluímos alterações 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ê estiver usando a linha de comando, também poderá ativar o áudio do host usando a opção -allow-host-audio e usar os seguintes comandos ADB para ativar ou desativar os dados de áudio do host, respectivamente:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Melhorias para compilações headless do emulador

A partir da versão 28.0.25, o emulador inclui uma opção de compilação headless que pode ser executada sem a interface do usuário. Você pode usar compilações headless para ajudar a configurar o emulador para fluxos de trabalho do Docker e de integração contínua (CI, na sigla em inglês).

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 compilaçõ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.
  • Agora, para resolver problemas em algumas instalações do Linux com versões incompatíveis de algumas bibliotecas dependentes do Qt, 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 aplicativos, podem ocupar todos os núcleos de 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 aplicativo Pesquisa Google, o que reduz muito o uso da CPU na tela inicial e no inicializador quando o aplicativo 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 (quadros 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 por meio dos 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.
  • Os binários apropriados 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.
  • Grande redução 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.
  • Agora, o emulador exporta a variável de ambiente LC_ALL=C por padrão. Essa alteração aborda falhas e problemas de incompatibilidade associados à execução do emulador em diferentes localidades.
  • Agora, você pode rastrear o uso de CPU e RAM pelo emulador usando estatísticas de desempenho, 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.
  • O glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE agora usa o resultado da GPU do host em vez de um resultado emulado. Essa alteração ajuda a corrigir problemas em que imagens e recursos não são exibidos devido ao formato inadequado de leitura.
  • Inclusão de compatibilidade com as extensões OpenGL ES GL_EXT_texture_format_BGRA8888 e GL_APPLE_texture_format_BGRA8888 se elas forem compatíveis com o host.
  • Inclusão de mais informações de diagnóstico na IU do Bugreport. Além disso, você pode 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 puder iniciar uma instância -read-only simultânea de um AVD, ele tentará reiniciar o AVD -read-only mais três vezes nos três segundos a seguir. Essa alteração 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, a compilação do emulador se baseia no CMake/Ninja.
  • Na IU 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 quadros incorretos exibidos em sistemas com GPUs Intel ao usar 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 (ou qualquer skin com entalhe ou cantos arredondados).
  • Correção de um problema em que a opção de linha de comando -partition-size não configurava o tamanho da partição de dados.
  • Correção de 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 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.
  • Correção de alguns problemas de falhas e congelamentos na inicialização difíceis de reproduzir, que aconteciam devido ao fato de o 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, a fim de aumentar a capacidade de depuração. Anteriormente, o emulador simplesmente desligava.
  • Para usuários do Linux: por 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.
  • Correção de um problema em que SO_REUSEADDR era usado incorretamente. Para mais informações, consulte os detalhes do commit.
  • Correção de um problema de longa data com o emulador do Windows em que subprocessos, como comandos ADB, não eram iniciados se o nome de usuário tivesse espaços.
  • Correção de um problema na falta de inicialização do RCU nas linhas de execução da vCPU do HAXM. Essa correção poderá resolver algumas falhas e disputas.
  • Correção de uma falha que acontecia com determinados padrões de salvar e carregar snapshots da IU relacionada usando imagens recentes do sistema Android Q.
  • Correção de um problema em que a câmera de cena virtual ficava em branco quando o emulador era inicializado a partir de um snapshot se uma macro de RA estivesse sendo reproduzida ao salvar esse snapshot.
  • Correção de um problema em que alguns usuários com configurações de área de trabalho remota viam uma tela preta ao iniciar o emulador no Linux. Para evitar isso, o emulador agora configura explicitamente o MESA_RGB_VISUAL. Para mais informações, consulte os detalhes do commit.
  • Correção de um problema em que os botões de rotação apareciam nos AVDs da TV.
  • Correção de um problema em que, se o emulador fosse configurado para ficar sempre na parte superior, a janela de controles estendidos apareceria toda vez que o emulador fosse 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 posterior.

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, você pode usar 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 aplicativos Vulkan com o Android Emulator até o Vulkan 1.1 usando uma imagem de sistema compatível (Android Q Beta 3 ou posterior 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 posteriores).

Para ativar a compatibilidade com Vulkan, adicione as seguintes sinalizações de recursos ao seu arquivo ~/.android/advancedFeatures.ini. Crie o arquivo se ele não existir:

  • Vulkan = on
  • GLDirectMem = on

Compatibilidade inicial para desenvolvedores de ROM

Os desenvolvedores de ROM que estão construindo os destinos sdk_phone_x86 ou sdk_phone_x86_64 (variantes userdebug, eng) no branch master AOSP agora podem executar um emulador com Vulkan ativado.

Essa compatibilidade ainda é experimental e é voltada principalmente para desenvolvedores que trabalham em imagens de sistema, drivers e mecanismos de jogos. Muitas extensões ainda estão faltando. No entanto, a memória HOST_COHERENT é compatível e agora você pode executar as Amostras do tutorial da API Vulkan (link 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 compatíveis com o Vulkan também são compatíveis com a interoperabilidade de cópia zero com o OpenGL por meio da extensão GL_EXT_memory_objects. O emulador utiliza esse recurso para oferecer uma forma completa de renderizar a IU 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 posteriores):

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

Compatibilidade com Vulkan para macOS

A compatibilidade para o macOS ainda é experimental, mas o emulador já inclui as APIs Swiftshader, MoltenVK e libportability (gfx-rs). Você pode fazer testes com 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.
  • Os usuários de área de trabalho remoto geralmente não podem interagir com o emulador ao usar a renderização da GPU host, porque a renderização da GPU 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. O gRPC é uma estrutura geral para RPC que funciona em HTTP.

Por padrão, o serviço gRPC do emulador fica desativado, mas é possível ativá-lo usando a seguinte opção de linha de comando, em que <port> é a porta em que o emulador precisa exibir 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 mais configurações de rede.
  • Os comandos de captura de tela podem ser enviados para consultar a tela atual, mesmo que o emulador esteja sendo executando de forma headless. Para interatividade, os eventos de entrada também podem ser enviados de volta ao emulador.
  • Os usuários de área de trabalho remota 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 uma lista completa dos comandos disponíveis, veja 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 aplicativo React que demonstra interatividade remota por meio de captura de tela e RPCs de entrada. Este exemplo requer a versão 3.7.0 ou superior 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 é compatível com o Qt e com as 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. Ainda existe um link para o libX11 no Linux, 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 mais informações, consulte a atualização da versão 28.1.8 Canary.

  • Correção da exibição incorreta de quadros 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 alteração pode ajudar a reduzir erros de "solicitação de desligamento de vCPU" que acontecem algumas vezes ao iniciar o emulador no Windows.
  • Retirada de uma correção para o problema de tela errada ao retomar imagens do sistema Android Q de um snapshot (link em inglês).
  • Os usuários estavam tendo problemas de emuladores “não autorizados” (link em inglês) devido a uma alteração 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 o seguinte comando: adb kill-server
    4. Execute o seguinte 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 trabalharemos com a equipe do Android para garantir que a detecção de hotwords também esteja 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, poderá ativar essa opção acessando Extended Controls > Microphone e ativando Virtual microphone uses host audio input. Essa opção é desativada automaticamente 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 nas três categorias a seguir:

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

Descobrimos que todos os aplicativos 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 aplicativo 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.
  • Correção de um problema no macOS 10.14+ 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 alterado esporadicamente.
  • Correção de erros de renderização em vários aplicativos 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
  • Inclusão de compatibilidade com mais webcams no Windows ao aceitar tamanhos de quadros incompatíveis e redimensioná-los 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.

Utilização de recursos

Agora, o emulador usa menos RAM geral, especialmente ao usar imagens do sistema com nível de API 28 ou superior. 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.
  • Correção de um problema no qual o contexto QEMU AIO poderia 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 alterações 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 é possibilitado pela cópia dos 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 em conjunto com o 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 grande parte da 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 o desempenho 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 a partir desse estado, precisará pedir ao emulador para descartar as alterações 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.
  • Vá até 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 permanecerá nesse checkpoint. Execute o mesmo comando novamente para carregar o emulador a partir do checkpoint.

Snapshots que são criados e carregados por meio da IU de snapshots funcionam 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 o desempenho do Quick Boot e que tipo de problemas você encontra ao usá-la. Se você tiver problemas, é possível desativar esse recurso adicionando a seguinte linha ao seu arquivo ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off
    

Ao iniciar o emulador a partir de um snapshot (usando a opção de linha de comando -snapshot ou iniciando a partir 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 alterações 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 podem gravar na mesma imagem se o host for compatível com bloqueio OFD ou posix, a menos que as opções sejam especificadas de outra forma.
  • O qemu-img: qemu-img resize é compatível com a pré-alocação das novas partes da imagem.
  • O qemu e no qemu-img agora são compatíveis com a redução de QCOW2.

Acessibilidade

  • Correção de problemas com leitores de tela e inclusão de compatibilidade melhor com essas ferramentas na IU de tela e snapshot 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 posteriores (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 alterna automaticamente para o renderizador Swiftshader se detecta que essas GPUs estão em uso.
  • Correção de um problema que fazia com que o emulador não publicasse o framebuffer correto se o FBO != 0 fosse vinculado no momento de eglSwapBuffers.
  • Correção do 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.
  • Correção de um problema em que o emulador travava em algumas situações ao carregar aplicativos GLES1 a partir de um snapshot.
  • Correção de 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 é compatível com 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 superior.
  • A maioria das GPUs modernas poderá iniciar o emulador com o OpenGL ES 3.x ativado por padrão sem usar a sinalização de recurso GLESDynamicVersion.
  • O -gpu guest (renderização de software no convidado) foi suspenso. As imagens do sistema para o nível de API 28 ou posterior agora passam a usar automaticamente o Swiftshader (-gpu swiftshader_indirect).
  • Se o emulador for iniciado a partir da linha de comando usando a sinalização -no-window, o renderizador padrão 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 quadros da câmera que são entregues pela webcam. Esse recurso também impede que erros na entrega de quadros 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 ou Linux: /tmp/android-<username>/*
  • Se o emulador não puder ser iniciado devido à falta de memória RAM livre, uma mensagem de erro 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 de imagem 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.
  • Correção de um problema que reaparecia no 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).
  • 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 houver espera no emulador no macOS, crie um problema no Issue Tracker.
  • Correção de um problema em que o fechamento do emulador desativava a IU, 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.
  • Correção de um problema que fazia com que o emulador falhasse ao iniciar após a primeira vez se o ADB fosse encerrado à força.
  • A versão do MIPS foi removida. Se você ainda precisa do MIPS, crie um problema no Issue Tracker.
  • Correção de um problema em que as conexões do ADB poderiam se corromper no carregamento do snapshot.
  • Correção de um problema em que a janela do emulador teria uma imagem consecutiva ou seria teletransportada para fora da tela ao retomar um snapshot quando a orientação do dispositivo fosse 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 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 as 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).

Suspensão de uso do 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. Lançaremos 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.

Informe-nos por meio do Issue Tracker se você depende da versão de 32 bits do Android Emulator que roda 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 do AVD estava sendo configurado incorretamente.

Para reduzir isso, o emulador aumenta o nível mínimo de RAM para imagens que usam nível de API 26 ou posterior para o nível padrão do Android Studio, de 1.536 MB. Se o arquivo config.ini do AVD não estiver listando hw.ramSize em megabytes, crie um problema no Issue Tracker. O arquivo config.ini pode ser encontrado 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 a partir da linha de comando usando a sinalização -verbose.

Correções gerais

  • Correções de 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 serão 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 do Emulator 27.3 e versões posteriores, os snapshots carregam conteúdo na RAM sob demanda, em vez de carregar o snapshot inteiro quando o dispositivo virtual é iniciado. Essa alteração diminuirá bastante o tempo necessário para carregar um snapshot.

Para 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 (Command + Shift + R no Mac).

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

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

Você também pode gravar e salvar uma gravação de tela no emulador usando o seguinte comando 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 aplicativos 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 saber 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 posteriores 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 muitas melhorias no carregamento e salvamento de snapshots para melhorar 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 posterior, o emulador pode renderizar a IU do Android com o Skia, que renderiza 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 o desempenho e a taxa de quadros 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 foi alterada 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 alteração 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 causadas pela falta de espaço livre em disco, o emulador agora verifica se há espaço suficiente na inicialização e não inicia se não houver 2 GB livres.
  • Correção de um problema que impedia a renderização de alguns jogos Unity.
  • Correção do problema de DNS que fazia com que o emulador não conseguisse se conectar à rede.
  • Correção de um problema que causava alterações no armazenamento interno alocado para um AVD por meio da 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 IU 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 quadros foi atualizado para acompanhar melhor o tema visual do emulador.
  • Telefone e SMS agora são desativados corretamente quando o modo avião é ativado.
  • Correção de 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 quadros 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 modificada 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 esta 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 mais informações sobre os requisitos e instruções, consulte Executar aplicativos RA no Android Emulator.

27.1.10 (fevereiro de 2018)

  • Resolução de captura da câmera

    Quadros 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 posteriores, a webcam conectada precisa ter a capacidade de capturar quadros de 720p.

  • Correções

    • Correção de 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 quadros:

    Por padrão, os emuladores com arquivos de skin do dispositivo agora são exibidos sem o quadro da janela ao redor. Para mostrar o quadro 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 a qualquer momento 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.

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

  • Correção de 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). Mas 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 seguintes configurações 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 aplicará somente ao AVD aberto no momento.

    Para mais informações, 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 posterior, 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 estável do ANGLE D3D que também funciona com o Quick Boot.

    As opções mais antigas de -gpu swiftshader e -gpu angle agora 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 pequena com correções de bugs, melhorias de desempenho e pequenas alterações de 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 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
    • Correção de problemas com 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, quando na verdade o emulador estava sendo executado em uma GPU discreta. A determinação de quais GPUs serão alternadas para 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 a incapacidade de usar imagens de API de nível 25 devido a um bug em que o "Pixel Launcher ficava parando". 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).
    • Correção de 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 para fazer downgrade do OpenGL ES 3 para o OpenGL ES 2 se o usuário tivesse problemas ou precisasse testar em níveis mais baixos de API OpenGL ES.
    • O renderizador Mesa está obsoleto. hw.gpu.mode=mesa agora será alternado automaticamente para o 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 o desempenho 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 o desempenho da captura da webcam, a captura da câmera baseada no QTKit foi substituída por uma captura em buffer baseada no AVFoundation.
  • Inclusão de compatibilidade com 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. A compatibilidade com Wi-Fi pode ser desativada 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 IU de relatório de bugs diretamente da página de configurações.
  • Correção de um problema em que, se uma CPU mais antiga com Intel x86 EPT mas sem UG fosse usada, o emulador não seria inicializado se mais de um núcleo estivesse configurado.
  • Correção de um problema em que o HyperV era detectado inadequadamente 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.

  • Inclusão da 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.

  • Inclusão de compatibilidade com 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, digite change vnc password no console e insira uma senha.

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

  • Inclusão do botão de File a bug na tela da ajuda de controles estendidos. Clique em More , 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.

  • Inclusão de compatibilidade com o macOS Hypervisor.Framework para imagens x86 de 32 bits no macOS 10.10 ou posterior por meio de sinalizações de servidor, a fim de melhorar o tempo de inicialização e o desempenho.

    • Se você tiver problemas com isso, adicione a linha HVF = off a ~/.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 são compatíveis com o OpenGL ES 3.

    • Se você tiver problemas com o OpenGL ES 3, adicione a linha GLESDynamicVersion = off a ~/.android/advancedFeatures.ini.
  • O Emulator 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 desempenho e correções de bugs.

Pequena revisão 26.0.3 (maio de 2017)

  • Inclusão de sinalizações 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 sinalizações do lado do servidor. Se você perceber problemas com um hardware específico, informe um bug para que possamos investigar o problema.
  • Nova compatibilidade com entrada por seletor giratório para imagens de sistema do Android Wear com API de nível 25. 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 requer 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 espaço de endereço virtual de 2 GB.
  • Inclusão de compatibilidade com caminhos absolutos em imagens de emulador.
  • Inclusão de uma nova guia na janela estendida para imagens da Google Play Store que exibem a versão do Play Services e um botão para verificar se há atualizações no Play Services.
  • 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).
  • Correção de 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 por meio do SDK Manager desde 30 de março e estará disponível 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.
  • Inclusão de compatibilidade com a 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 de API 26.
  • 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. Isso foi lançado para imagens x86 de API nível 24 (revisão 11 e posteriores) 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 atuais. Isso foi lançado para imagens x86 de API nível 24 (revisão 11 e posteriores) e será incluído em breve para todas as imagens do sistema.
  • 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 do SDK Tools. Esta versão contém uma variedade de 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 quadros e a taxa de quadros por segundo para jogos e vídeos, mas faz com que o emulador falhe em algumas configurações desconhecidas da máquina. Para ativá-lo manualmente, abra o arquivo android_sdk/emulator/lib/advancedFeatures.ini e configure 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 no desempenho 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 desempenho 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 compatibilidade com 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 encadeamentos 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 no desempenho.
    • A inicialização da IU 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 IU agora são mais rápidas e suaves, incluindo rotação, redimensionamento de janela e carregamento e fechamento da janela de controles estendidos.