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. Dodatkowo możesz dodać obsługę wielu wyświetlaczy do emulacji Androida.

Architektura emulatora Androida

Emulator Androida uruchamia system operacyjny Android w maszynie wirtualnej zwanej urządzeniem wirtualnym z Androidem (AVD). Każdy AVD zawiera pełny stosik 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 w 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 niektóre obrazy systemowe. Możesz też tworzyć niestandardowe obrazy systemu AVD na podstawie kodu źródłowego i uruchamiać je na emulowanych urządzeniach.

Aby utworzyć i uruchomić obraz systemu AVD:

  1. Pobierz kod źródłowy 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-bitową wersję AVD dla procesora 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 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-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ść stronę 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 strony z aktualizacjami.

Aby użyć niestandardowego obrazu AVD, wykonaj te czynności w Menedżerze pakietu 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.

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

  • Dodaj do kompilacji dostawcę obsługujący wiele wyświetlaczy, 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 wielu wyświetlaczy, 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: