É possível usar o Android Emulator para criar emulações de dispositivos Android que executam as próprias imagens personalizadas do sistema Android. Além disso, é possível adicionar suporte para várias telas para emulações do Android Emulator.
Arquitetura do Android Emulator
O Android Emulator executa o sistema operacional Android em uma máquina virtual chamada Dispositivo virtual Android (AVD, na sigla em inglês). Cada AVD contém a pilha de softwares do Android completa e é executado como se estivesse em um dispositivo físico. A Figura 1 ilustra a arquitetura de alto nível do Android Emulator. Para saber mais sobre o emulador, consulte Executar apps no Android Emulator.
Figura 1. Arquitetura do Android Emulator.
Criar imagens no AVD
Cada AVD inclui uma imagem do sistema Android, que é executada nesse AVD. O AVD Manager inclui algumas imagens do sistema. É possível criar imagens personalizadas do sistema no AVD usando seu código-fonte e criar emulações de dispositivos para fazer a execução.
Para criar e executar uma imagem do sistema no AVD:
Faça o download da origem do Android:
mkdir aosp-main; cd aosp-main
repo init -u
repo sync -j24
Se você quiser criar outras versões do Android, os nomes de ramificação delas podem ser encontrados no repositório público do Android. Eles correspondem aos da página Codinomes, tags e números de build do Android.
Crie uma imagem do sistema no AVD. É o mesmo processo que o de criar uma imagem do sistema no dispositivo Android. Por exemplo, para criar um AVD x86 de 64 bits:
source ./build/envsetup.sh
lunch sdk_phone_x86_64
make -j32
Execute a imagem do sistema no AVD usando o Android Emulator:
emulator
Consulte as Opções de inicialização de linha de comando para mais detalhes sobre a execução do emulador. A Figura 2 mostra um exemplo do Android Emulator executando um AVD.
Figura 2. Android Emulator executando um AVD.
Compartilhar imagens do sistema no AVD para outras pessoas usarem com o Android Studio
Siga estas instruções para compartilhar suas imagens do sistema no AVD com outras pessoas. Elas podem usar essas imagens com o Android Studio para desenvolver e testar apps.
Crie pacotes
sdk
esdk_repo
extras:No Android 13 e versões mais recentes, use o comando
emu_img_zip
:$ make emu_img_zip
Isso gera um arquivo
sdk-repo-linux-system-images-eng.[username]].zip
.No Android 12 e versões anteriores, use o comando
sdk_repo
:$ make -j32 sdk sdk_repo
O comando
make sdk sdk_repo
cria dois arquivos emaosp-main/out/host/linux-x86/sdk/sdk_phone_x86
:sdk-repo-linux-system-images-eng.[username].zip
repo-sys-img.xml
Hospede o arquivo
sdk-repo-linux-system-images-eng.[username].zip
em algum lugar que seus usuários possam acessar e providencie o URL dele para usar como o URL de imagem do sistema no AVD.No Android 12 e versões anteriores, edite
repo-sys-img.xml
da forma apropriada:- Atualize
<sdk:url>
para o URL da imagem do sistema criada no AVD. - Consulte sdk-sys-img-03.xsd para conferir as outras atualizações no arquivo.
- Hospede
repo-sys-img.xml
em algum lugar que seus usuários possam acessar e providencie o URL dele para usar como o URL do site de atualização personalizada.
- Atualize
Para usar uma imagem AVD personalizada, faça o seguinte no SDK Manager:
Adicione o URL do site de atualização personalizado como um site de atualização do SDK.
Isso adiciona à página System Images sua imagem personalizada do sistema no AVD.
Crie um AVD fazendo o download e selecionando a imagem personalizada do sistema no AVD.
Adicionar suporte para várias telas
O Android 10 aprimora o recurso Várias telas para oferecer melhor suporte a mais casos de uso, como os modos área de trabalho e automotivo. O Android Emulator também oferece suporte à emulação de várias telas. Assim, é possível criar um ambiente de várias telas específico sem configurar o hardware real.
Você pode adicionar o suporte para várias telas a um AVD fazendo as mudanças abaixo ou escolhendo um destes CLs.
Adicione o provedor de várias telas ao build adicionando estas linhas ao arquivo
build/target/product/sdk_phone_x86.mk
:PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \ system/lib/libemulator_multidisplay_jni.so \ system/lib64/libemulator_multidisplay_jni.so \ system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \ PRODUCT_PACKAGES += MultiDisplayProvider
Ative a flag de recurso "Várias telas" adicionando esta linha ao arquivo
device/generic/goldfish/data/etc/advancedFeatures.ini
:MultiDisplay = on
Os recursos e as informações de versão mais recentes do emulador estão disponíveis nestas fontes: