Korzystanie z urządzeń wirtualnych emulatora Androida

Za pomocą emulatora Androida możesz tworzyć emulacje urządzeń z Androidem, które działają na Twoich niestandardowych obrazach systemu Android. Dodatkowo możesz dodać obsługę wielu wyświetlaczy do emulacji w emulatorze Androida.

Architektura Android Emulatora

Emulator Androida uruchamia system operacyjny Android na maszynie wirtualnej zwanej urządzeniem wirtualnym z Androidem (AVD). Każde urządzenie AVD zawiera pełny stos oprogramowania Androida i działa tak, jakby było urządzeniem fizycznym. Ilustracja 1 przedstawia architekturę emulatora Androida na wysokim poziomie. Więcej informacji o emulatorze znajdziesz w artykule Uruchamianie aplikacji w emulatorze Androida.

Architektura Android Emulatora.

Rysunek 1. Architektura Android Emulatora.

Tworzenie obrazów AVD

Każdy AVD zawiera obraz systemu Android, który jest na nim uruchamiany. Menedżer AVD zawiera kilka obrazów systemu. Możesz też tworzyć niestandardowe obrazy systemu AVD z kodu źródłowego i emulacje urządzeń, na których będą one działać.

Aby skompilować i uruchomić obraz systemu AVD:

  1. Pobierz źródło Androida:

    mkdir aosp-android-latest-release; cd aosp-android-latest-release
    repo init -u
    repo sync -j24

Jeśli chcesz utworzyć inne wersje Androida, nazwy gałęzi znajdziesz w publicznym repozytorium Androida. Są one powiązane z kryptonimami, tagami i numerami kompilacji Androida.

  1. Skompiluj obraz systemu AVD. Jest to taki sam proces jak tworzenie obrazu systemu urządzenia z Androidem. Na przykład, aby utworzyć wirtualne urządzenie z Androidem w architekturze x86 64-bitowej:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
  2. Uruchom obraz systemu AVD w emulatorze Androida:

    emulator

Więcej informacji o uruchamianiu emulatora znajdziesz w artykule Opcje uruchamiania z wiersza poleceń. Ilustracja 2 przedstawia przykład emulatora Androida z uruchomionym AVD:

Android Emulator z uruchomionym AVD.

Rysunek 2. Android Emulator z uruchomionym AVD.

Udostępnianie obrazów systemu AVD innym osobom do używania w Android Studio

Aby udostępnić innym obrazy systemu AVD, postępuj zgodnie z tymi instrukcjami. Mogą oni używać obrazów systemu AVD z Androidem Studio do tworzenia i testowania aplikacji.

  1. Utwórz dodatkowe pakiety sdksdk_repo:

    Na Androidzie 13 lub nowszym użyj polecenia emu_img_zip:

    $ make emu_img_zip
    

    Spowoduje to wygenerowanie pliku sdk-repo-linux-system-images-eng.[username]].zip.

    W przypadku Androida 12 lub starszego użyj polecenia sdk_repo:

    $ make -j32 sdk sdk_repo
    

    Polecenie make sdk sdk_repo tworzy 2 pliki w folderze aosp-android-latest-release/out/host/linux-x86/sdk/sdk_phone_x86:

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. Umieść plik sdk-repo-linux-system-images-eng.[username].zipw miejscu dostępnym dla użytkowników i uzyskaj jego adres URL, aby użyć go jako adresu URL obrazu systemu AVD.

  3. W przypadku Androida 12 lub starszego zmień repo-sys-img.xml w odpowiedni sposób:

    • Zastąp <sdk:url> adresem URL obrazu systemu AVD.
    • Więcej informacji o innych aktualizacjach pliku znajdziesz w artykule sdk-sys-img-03.xsd.
    • Umieść plik repo-sys-img.xml w miejscu dostępnym dla użytkowników i uzyskaj jego adres URL, aby użyć go jako niestandardowego adresu URL witryny aktualizacji.

Aby użyć niestandardowego obrazu AVD, wykonaj w Menedżerze SDK te czynności:

  1. Dodaj niestandardowy adres URL witryny aktualizacji jako witrynę aktualizacji pakietu SDK.

    Spowoduje to dodanie niestandardowego obrazu systemu AVD do strony Obrazy systemu.

  2. Utwórz AVD, pobierając i wybierając niestandardowy obraz systemu AVD.

Dodawanie obsługi wielu wyświetlaczy

Android 10 ulepsza obsługę wielu wyświetlaczy, aby lepiej obsługiwać więcej przypadków użycia, takich jak tryb samochodowy i tryb pulpitu. Emulator Androida obsługuje też emulację wielu wyświetlaczy. Dzięki temu możesz utworzyć konkretne środowisko z wieloma wyświetlaczami bez konfigurowania rzeczywistego sprzętu.

Aby dodać obsługę wielu wyświetlaczy do AVD, wprowadź te zmiany lub wybierz z tych CL.

  • Dodaj dostawcę wielu wyświetleń do kompilacji, dodając te wiersze do pliku 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
    
  • Włącz flagę funkcji wielu wyświetlaczy, dodając ten wiersz do pliku device/generic/goldfish/data/etc/advancedFeatures.ini:

    MultiDisplay = on
    

Najnowsze funkcje emulatora i informacje o wersjach znajdziesz w tych źródłach: