Używanie urządzeń wirtualnych emulatora Androida

Za pomocą emulatora Androida możesz tworzyć emulacje urządzeń z Androidem, na których są uruchamiane własne, niestandardowe obrazy systemu. Do emulatorów Androida możesz też dodać obsługę wielu wyświetlaczy.

Architektura emulatora Androida

Emulator Androida pozwala uruchamiać system operacyjny Android w maszynie wirtualnej zwanej urządzeniem wirtualnym z Androidem (AVD). Każdy program AVD zawiera pełny stos oprogramowania Androida i działa tak, jakby był uruchamiany na urządzeniu fizycznym. Rysunek 1 pokazuje ogólną architekturę emulatora Androida. Więcej informacji o emulatorze znajdziesz w artykule Uruchamianie aplikacji za pomocą emulatora Androida.

Architektura emulatora Androida.

Rysunek 1. Architektura emulatora Androida.

Utwórz obrazy AVD

Każdy AVD zawiera obraz systemu Androida, który działa w tym AVD. Menedżer AVD zawiera obrazy systemu. Na podstawie kodu źródłowego możesz kompilować niestandardowe obrazy systemu AVD oraz używać emulacji urządzeń.

Aby skompilować i uruchomić obraz systemu AVD:

  1. Pobierz aplikację źródłową na Androida:

    mkdir aosp-main; cd aosp-main
    repo init -u
    repo sync -j24
    

Jeśli chcesz skompilować inne wersje Androida, ich nazwy gałęzi znajdziesz w publicznym repozytorium Androida. Są one mapowane na kryptowaluty, tagi i numery kompilacji Androida.

  1. Tworzenie obrazu systemu AVD. Działa to tak samo jak tworzenie obrazu systemu urządzenia z Androidem. Aby na przykład utworzyć 64-bitowy AVD x86:

    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 wiersza poleceń. Rysunek 2 pokazuje przykład emulatora Androida z uruchomionym narzędziem AVD:

Emulator Androida uruchamiający AVD.

Rysunek 2. Emulator Androida uruchamiający AVD.

Udostępnianie obrazów systemu AVD innym osobom w Android Studio

Aby udostępnić obrazy systemu AVD innym osobom, wykonaj te czynności: Mogą używać obrazów systemu AVD w Android Studio do tworzenia i testowania aplikacji.

  1. Utwórz dodatkowe pakiety sdk i sdk_repo:

    W Androidzie 13 i nowszych wersjach użyj polecenia emu_img_zip:

    $ make emu_img_zip
    

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

    W Androidzie 12 i starszych wersjach użyj polecenia sdk_repo:

    $ make -j32 sdk sdk_repo
    

    Polecenie make sdk sdk_repo tworzy 2 pliki w folderze aosp-main/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].zip w dostępnym dla użytkowników miejscu i uzyskaj jego adres URL, który będzie używany jako URL obrazu systemu AVD.

  3. W przypadku Androida 12 i starszych wersji wprowadź odpowiednie zmiany w polu repo-sys-img.xml:

    • Zaktualizuj atrybut <sdk:url>, podając adres URL obrazu systemu AVD.
    • Informacje o innych aktualizacjach pliku znajdziesz na stronie sdk-sys-img-03.xsd.
    • Hostuj repo-sys-img.xml w miejscu dostępnym dla użytkowników, a następnie uzyskaj jego adres URL, aby używać go jako adresu URL witryny z niestandardowymi aktualizacjami.

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

  1. Dodaj URL witryny z niestandardową aktualizacją jako witrynę aktualizacji pakietu SDK.

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

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

Dodawanie obsługi wielu wyświetlaczy

W Androidzie 10 udoskonalono obsługę wielu wyświetlaczy, aby lepiej obsługiwała więcej przypadków użycia, takich jak tryb automatyczny i tryb pulpitu. Emulator Androida obsługuje też emulację wielu wyświetlaczy. Możesz więc utworzyć środowisko z wieloma wyświetlaczami bez konfigurowania fizycznego sprzętu.

Aby dodać obsługę wielu wyświetlaczy do AVD, wprowadź poniższe zmiany lub wybierz jedną z tych list CL.

  • Dodaj do kompilacji dostawcę wielu reklam displayowych, 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 Multi-Display, dodając ten wiersz do pliku device/generic/goldfish/data/etc/advancedFeatures.ini:

    MultiDisplay = on
    

Najnowsze funkcje emulatora i informacje o wersjach możesz znaleźć z tych źródeł: