O que é um emulador Android e como é utilizado para testes?

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Quer saber o que é um emulador Android e como pode ajudar nos testes da sua aplicação? Descubra tudo o que precisa de saber, juntamente com exemplos, neste artigo.

Em 2019, existiam mais de 2,5 mil milhões de dispositivos Android ativos em circulação. Esse número só tem vindo a aumentar. Pode ter acesso a um telemóvel ou dispositivo Android. Mas e se não tiver? É aí que um emulador Android pode ajudar; pode simular um sistema operativo e uma interface Android para que possa testar a sua aplicação Android. 

Este artigo apresenta informações detalhadas sobre os emuladores Android, como funcionam, como são utilizados e até que ponto conseguem testar corretamente as suas aplicações Android e web.

Vou abordar:

O que são os emuladores Android?

Os emuladores Android são software concebido para imitar o hardware e o software de um dispositivo móvel Android para fins de desenvolvimento e testes. Os emuladores Android são executados no seu Mac ou PC, permitindo-lhe criar aplicações centradas no Android a partir da sua secretária.

Captura de ecrã de um emulador Android num Mac
Os emuladores Android podem ser executados tanto em Mac como em PC, permitindo que qualquer utilizador teste as suas aplicações no Android.

Jogar ou testar jogos é uma razão popular para utilizar emuladores Android, mas também pode utilizá-los para executar qualquer aplicação disponível na Google Play Store. Por exemplo, se executar a sua aplicação do Instagram num emulador, é possível carregar fotografias diretamente a partir do seu computador–algo que, de outra forma, seria impossível.

Para saber o que um emulador Android pode fazer, deve primeiro compreender como funciona. 

Como funcionam os emuladores Android?

Os emuladores Android, como o BlueStacks, o NoxPlayer ou o Genymotion, são aplicações de software instaladas no seu computador de secretária que podem simular a experiência de utilizar o software e o hardware de um dispositivo Android. A sua utilização permite aos jogadores jogar jogos para dispositivos móveis

Captura de ecrã do BlueStacks
O BlueStacks, apresentado nesta captura de ecrã, é um exemplo de um emulador Android popular.

Android no PC e permite aos testadores desenvolver e testar aplicações Android em tempo real. 

Os emuladores imitam a arquitetura do sistema que pretende utilizar. Assim, pode encontrar emuladores para todo o tipo de software e hardware, dependendo das suas necessidades.

O que é o Emulador Rápido (QEMU)?

Captura de ecrã do Emulador Rápido
O Emulador Rápido é utilizado para acelerar a emulação através da virtualização assistida por hardware.

Enquanto ferramenta de código aberto, o Emulador Rápido é executado em muitos anfitriões ou estações de trabalho, como sistemas operativos e CPUs, para emular outros sistemas operativos e CPUs convidados.

O QEMU permite que os emuladores Android imitem o hardware de um dispositivo convidado para corresponder ao de um dispositivo anfitrião. É executado como um programa no seu computador e traduz a Interface Binária de Aplicações do convidado para corresponder à de um dispositivo anfitrião.

A tradução é complexa e demorada, tornando a emulação extremamente lenta. No entanto, se as arquiteturas dos dispositivos anfitrião e convidado forem semelhantes, a tradução torna-se fácil e rápida. 

Se os dispositivos anfitrião e convidado tiverem arquiteturas de instruções semelhantes, o QEMU ignora o processo de tradução binária. Executa imediatamente o dispositivo convidado diretamente no processador do dispositivo anfitrião – um processo conhecido como virtualização assistida por hardware.

A correspondência entre arquiteturas de dispositivos é feita através de um hipervisor. 

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Como funcionam os hipervisores?

VMware, uma captura de ecrã de um exemplo de hipervisor
O VMware é um exemplo de hipervisor.

Um hipervisor ou monitor de máquina virtual (VMM) é um software que permite a um dispositivo, por exemplo,  um computador, suportar várias máquinas virtuais convidadas através da partilha dos seus recursos, como processamento e memória. Os hipervisores ajudam-no a utilizar os recursos de um sistema e proporcionam maior mobilidade de TI entre diferentes servidores.

Existem dois tipos principais de hipervisores: Tipo 1 ou de metal puro, e Tipo 2 ou hipervisores alojados. 

  • Os hipervisores de Tipo 1 funcionam como sistemas operativos leves que são executados diretamente no hardware de um anfitrião. 
  • Os hipervisores de Tipo 2 são executados como software num sistema operativo, tal como outras aplicações e programas informáticos, permitindo-lhe executar uma aplicação Android através do software.

Antes de 2017, a arquitetura ARM do Android exigia tradução a partir de um emulador do Android Developer Studio para corresponder à maioria das arquiteturas utilizadas em computadores pessoais.

O Android lançou a edição 25.3.0 do Developer Studio, que aperfeiçoou o seu emulador ao permitir-lhe melhorar a virtualização através de um protocolo de assistência por hardware. Assim, é necessário um hipervisor para realizar a virtualização assistida por hardware, tendo em conta que diferentes sistemas operativos de PC suportam diferentes hipervisores.

A Intel utiliza o Gestor de Execução de Aceleração de Hardware, HAXM, como elemento hipervisor para as plataformas Windows e macOS, enquanto o Linux utiliza a Máquina Virtual Baseada no Kernel, KVM.

A Interface Binária de Aplicações Android x86 suporta a aceleração por hardware em vários PCs. Mas, se quiser acelerar o desempenho virtual do seu dispositivo, este emulador Android exige que instale e ative o hipervisor.

A aceleração por hardware permite que um emulador Android execute o seu dispositivo virtual a velocidades semelhantes às do processador que está a utilizar.  

Como configurar um emulador Android

Depois do lançamento da edição 25.3.0, o Android distribuiu o seu emulador separadamente das ferramentas do SDK. Configurar o seu emulador Android pode ser complicado, mas apresentamos de seguida um breve resumo do processo. 

Requisitos de hardware

É necessária a edição 26.1.1 ou posterior do Android SDK. O seu PC ou portátil deve ter um processador de 64 ou 86 bits para funcionar com o emulador Android.

Se utilizar o Android 8.1 ou versões posteriores, deve ter uma câmara Web capaz de captar imagens a 720p.

Na maioria dos dispositivos, o emulador pede-lhe para permitir a aceleração por hardware do desempenho do dispositivo, sendo necessária para tal a edição 7.2.0 do hipervisor Intel HAXM. 

Os utilizadores das plataformas Linux e Windows precisam de elementos adicionais do dispositivo, mas isso depende dos seus processadores.

  • No Linux, os utilizadores podem recorrer ao sistema de Virtualização AMD com extensões do conjunto SIMD 3.
  • Num PC Windows, os utilizadores podem recorrer ao Android Studio da AMD, edição 3.2 ou posterior, que funciona com a API do hipervisor do Windows.

Os utilizadores Intel podem utilizar a capacidade Intel VT-x e o bit Intel 64 de desativação da execução (XD).

Depois de instalar o emulador Android, pode agora aceder ao Gestor de Dispositivos Virtuais Android (Gestor AVD).

Gestor de Dispositivos Virtuais Android (AVD)

Captura de ecrã do Gestor de Dispositivos Virtuais Android (AVD)
O Gestor de Dispositivos Virtuais Android permite aos utilizadores instalar um ABI de sistema que corresponde à arquitetura do processador em utilização.

O seu gestor AVD permite-lhe configurar e alinhar os seus dispositivos Android.

Inclui perfis pré-configurados para telemóveis, tablets e televisores – cada um especificamente concebido para cada fabricante. Permite-lhe personalizar as capacidades externas e o tamanho do ecrã, bem como importar um perfil à sua escolha.

No entanto, a Google Play Store, juntamente com o seu conjunto de testes de compatibilidade, está disponível apenas em dispositivos limitados – somente nos que correspondem ao programa de compatibilidade do Android.

O gestor de AVD permite-lhe instalar, no seu dispositivo virtual, uma ABI de sistema que o emulador recomenda e cuja arquitetura corresponde à do seu processador de trabalho.

A configuração de verificação do seu AVD permite-lhe alterar perfis de software ou hardware definidos e configura definições do dispositivo, como o nome e a orientação.

No fim, o seu emulador inicia as especificações do seu dispositivo virtual e permite controlos e ajustes adicionais, como geolocalização, latência da rede, rotação do dispositivo, sensor de impressões digitais, câmara, estado da bateria, entre outros. 

Os dispositivos virtuais permitem-lhe guardar as suas instâncias no mesmo estado em que as fecha, o que lhe permite retomar a partir do ponto onde parou anteriormente.  

Como são utilizados os simuladores Android para testes?

Antes de executarem alterações numa ramificação, os programadores realizam testes ao código em pipelines. Depois de um rápido teste unitário com o IDE, começam os testes instrumentados e funcionais.

O seu emulador Android permite-lhe executar testes instrumentados, verificando, por exemplo, se o código processa os recursos principais e os ficheiros específicos da aplicação, bem como testando a funcionalidade das suas dependências externas.

Os emuladores também ajudam nos testes de desempenho das aplicações, para verificar se as interações são fluidas e se as aplicações utilizam os recursos do dispositivo dentro das restrições exigidas. Para obter resultados precisos, certifique-se de que mede as capacidades do processador e dos gráficos do seu dispositivo.

O seu emulador Android apenas permite que os seus dispositivos funcionem a velocidades próximas das nativas. Como tal, não deve esperar resultados exatamente iguais aos nativos. Pior ainda, nos dispositivos virtuais, não pode testar o desempenho das suas aplicações Android em comparação com outras referências de desempenho.

Não existe uma solução alternativa fiável que permita testar aplicações nativas em escalas semelhantes com emuladores Android. São necessários muitos dispositivos reais para testes complexos entre navegadores da interface do utilizador e das funcionalidades, para que possa testar no Chrome, Firefox, Safari e noutros navegadores. 

Os engenheiros utilizam estruturas de automatização de testes, como o Espresso e o Appium, para criar scripts de teste e executá-los em diferentes dispositivos Android, de modo a cumprir normas de compatibilidade aferidas. 

Emulador Android: pontos fortes e fracos

Os emuladores Android imitam dispositivos Android reais. No entanto, também apresentam algumas limitações. 

Pontos fortes

Algumas capacidades do seu emulador Android incluem a transferência rápida de dados e a compatibilidade com sensores físicos, como acelerómetros.

  1. Transferência rápida de dados

Os emuladores Android ajudam-no a transferir dados de forma mais rápida e eficiente do que os dispositivos físicos que liga através de USB.

Um emulador oferece funcionalidades de arrastar e largar que lhe permitem manter ficheiros .apk no dispositivo virtual a partir da sua estação de trabalho ou computador, ajudando os programadores a testar aplicações de forma mais rápida e eficaz.

  1. Compatibilidade com sensores físicos 

Os emuladores Android são úteis se utilizar sensores físicos, como acelerómetros. Quando testa um determinado elemento de uma aplicação que depende sobretudo de sensores, torna-se mais fácil alinhar as suas definições através dos controlos avançados do seu emulador.

More Articles

Pontos fracos

Algumas limitações dos emuladores Android incluem requisitos de processadores ARM, utilização de espaço em disco, complexidades da aceleração de hardware e falta de fiabilidade na compreensão da interação com as aplicações.

  1. Requisitos de processador ARM

A maioria dos PCs ou computadores portáteis modernos utiliza Intel x86 e o chipset Android mais comum disponível é o ARM v7a. Lembre-se de que, para uma emulação rápida, as arquiteturas do processador anfitrião e do convidado têm de coincidir. Assim, sem um dispositivo que contenha qualquer processador ARM, a emulação torna-se deficiente, especialmente para a maioria dos dispositivos Android existentes no mercado.

  1. Espaço em disco

O seu gestor de AVD cria diretórios distintos para guardar separadamente os dados do dispositivo virtual, a cache e os dados dos cartões SD. Um dispositivo virtual ocupa mais de 3 GB do espaço total em disco e pode bloquear se não tiver espaço suficiente durante o arranque.

  1. Complexidades da aceleração de hardware

A aceleração de hardware melhora o desempenho, embora a configuração do processo seja complexa, mesmo para programadores experientes. Por vezes, acelerar o hardware resulta numa indisponibilidade ou falha completa do sistema.

  1. Falta de fiabilidade

Quando o objetivo passa por compreender as interações das aplicações com o ambiente do dispositivo anfitrião, os emuladores Android tornam-se pouco fiáveis.

Por exemplo, torna-se difícil conhecer os processos em segundo plano das suas aplicações, o aspeto da interface e os níveis de brilho, bem como a forma como as aplicações respondem a diferentes gestos de toque. 

Quais são os melhores emuladores Android?

Existem muitas opções excelentes no que diz respeito à escolha de um emulador Android para o seu projeto, como o GameLoop e o MEmu. Pode consultar aqui uma lista dos melhores emuladores Android disponíveis no mercado, juntamente com sugestões sobre quais funcionarão para as suas necessidades específicas.

Se utiliza Linux, a nossa comparação de emuladores Android para Linux pode ajudá-lo a encontrar uma opção que funcione bem com o seu sistema operativo.

Conclusão

Os emuladores Android revolucionaram as capacidades dos dispositivos e a experiência do utilizador. Servem muitos propósitos, como testar aplicações e jogar em ecrãs grandes.

Um emulador Android pode ser uma adição valiosa aos seus dispositivos eletrónicos, pois permite ligar vários aspetos de todos os seus dispositivos em simultâneo.

Com o emulador Android ideal, pode melhorar a capacidade e a funcionalidade dos seus dispositivos, bem como a sua experiência de utilização.

Podcast relacionado que pode ler/ouvir: TESTES MÓVEIS DA PRÓXIMA GERAÇÃO (COM ERAN KINSBRUNER DA PERFECTO)

Jason Boog
Over his 15-year career, Jason Boog has worked as a QA tester, QA analyst, and Senior QA Analyst on video games, commercial sites, and interactive web applications. He spent more than a decade building out the QA team and process as Director of Quality & Client Support at a full-service digital agency.
Follow the author:

You may also like