Za pomocą emulatora Androida możesz tworzyć emulacje urządzeń z Androidem, na których są uruchamiane własne, niestandardowe obrazy systemu. Możesz też dodać obsługę wielu wyświetlaczy do emulatorów Androida.
Architektura emulatora Androida
Emulator Androida uruchamia system operacyjny Android w maszynie wirtualnej zwanej urządzeniem wirtualnym z Androidem (AVD). Każdy program AVD zawiera pełny stos oprogramowania Android 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.
Rysunek 1. Architektura emulatora Androida.
Tworzenie obrazów 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:
Pobierz plik źródłowy Androida:
mkdir aosp-android-latest-release; cd aosp-android-latest-release
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.
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
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:
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.
Utwórz dodatkowe pakiety
sdk
isdk_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 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 dostępnym dla użytkowników miejscu i uzyskaj jego adres URL, aby używać go jako adresu URL obrazu systemu AVD.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.
- Zaktualizuj atrybut
Aby użyć niestandardowego obrazu AVD, wykonaj te czynności w Menedżerze pakietów SDK:
Dodaj URL witryny z niestandardową aktualizacją jako witrynę aktualizacji pakietu SDK.
Spowoduje to dodanie niestandardowego obrazu systemu AVD do strony Obrazy systemowe.
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ę 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
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ł: