Usar dispositivos virtuais do Android Emulator

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

Arquitetura do 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:

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

  1. 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
  2. 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.

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.

  1. Crie pacotes sdk e sdk_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 em aosp-main/out/host/linux-x86/sdk/sdk_phone_x86:

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. 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.

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

Para usar uma imagem AVD personalizada, faça o seguinte no SDK Manager:

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

  2. 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: