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.
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:
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.
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
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:
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.
Utwórz dodatkowe pakiety
sdk
isdk_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 folderzeaosp-android-latest-release/out/host/linux-x86/sdk/sdk_phone_x86
:sdk-repo-linux-system-images-eng.[username].zip
repo-sys-img.xml
Umieść plik
sdk-repo-linux-system-images-eng.[username].zip
w miejscu dostępnym dla użytkowników i uzyskaj jego adres URL, aby użyć go jako adresu URL obrazu systemu AVD.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.
- Zastąp
Aby użyć niestandardowego obrazu AVD, wykonaj w Menedżerze SDK te czynności:
Dodaj niestandardowy adres URL witryny aktualizacji jako witrynę aktualizacji pakietu SDK.
Spowoduje to dodanie niestandardowego obrazu systemu AVD do strony Obrazy systemu.
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: