Używanie urządzeń wirtualnych emulatora Androida

Za pomocą emulatora Androida możesz emulować urządzenia z Androidem, na których działają Twoje niestandardowe obrazy systemu Android. Możesz też dodać obsługę wielu wyświetlaczy do emulatorów Androida.

Architektura emulatora Androida

Emulator Androida umożliwia uruchamianie systemu operacyjnego Android na maszynie wirtualnej zwanej urządzeniem wirtualnym z Androidem (AVD). Każdy AVD zawiera pełny stos oprogramowania Androida i działa tak, jakby był na urządzeniu fizycznym. Rysunek 1 przedstawia ogólną architekturę emulatora Androida. Więcej informacji o emulatorze znajdziesz w artykule Uruchamianie aplikacji na emulatorze Androida.

Architektura emulatora Androida

Rysunek 1. Architektura emulatora Androida

Tworzenie obrazów AVD

Każdy AVD zawiera obraz systemu Android, który działa w tym AVD. Menedżer AVD zawiera obrazy systemu. Możesz też tworzyć niestandardowe obrazy systemu AVD na podstawie kodu źródłowego i emulować urządzenia, na których będą działać.

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 kompilować inne wersje Androida, nazwy ich gałęzi znajdziesz w publicznym repozytorium Androida. Odpowiadają one kryptonimowi, tagowi i numerowi kompilacji Androida.

  1. Utwórz obraz systemu AVD. Jest to ten sam proces co 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 opcjach uruchamiania z wiersza poleceń. Na rysunku 2 widać przykład emulatora Androida z uruchomionym AVD:

Emulator Androida z uruchomionym AVD

Rysunek 2. Emulator Androida z uruchomionym AVD

Udostępnianie obrazów systemu AVD innym użytkownikom do korzystania z Android Studio

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

  1. Utwórz dodatkowe pakiety sdk i sdk_repo:

    W przypadku Androida 13 lub nowszego 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].zipw miejscu dostępnym dla użytkowników i uzyskaj jego adres URL, który będziesz używać jako adres URL obrazu systemu AVD.

  3. W przypadku Androida 12 lub starszego edytuj repo-sys-img.xml w ten sposób:

    • Zmień <sdk:url> na URL obrazu systemu AVD.
    • Aby dowiedzieć się więcej o innych zmianach w pliku, zapoznaj się z pliku sdk-sys-img-03.xsd.
    • Umieść repo-sys-img.xml w miejscu dostępnym dla użytkowników i uzyskaj adres URL, który będziesz używać jako niestandardowy adres URL witryny z aktualizacjami.

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

  1. Dodaj URL niestandardowej witryny z aktualizacjami jako witrynę z aktualizacjami 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.

Dodaj obsługę kilku wyświetlaczy

Android 10 ulepsza obsługę wielu wyświetlaczy, aby lepiej obsługiwać różne przypadki użycia, takie jak tryb samochodowy i tryb pulpitu. Emulator Androida obsługuje też emulację wielu wyświetlaczy. Dzięki temu możesz tworzyć określone środowisko z wieloma wyświetlaczami bez konfigurowania rzeczywistego sprzętu.

Obsługę wielu wyświetlaczy możesz dodać do AVD, wprowadzając te zmiany lub wybierając elementy z tych CL.

  • Dodaj do kompilacji dostawcę usług z wieloma reklamami displayowymi, 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
    
  • Aby włączyć flagę funkcji Multi-Display, dodaj do pliku device/generic/goldfish/data/etc/advancedFeatures.ini ten wiersz:

    MultiDisplay = on
    

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