Za pomocą emulatora systemu Android można tworzyć emulacje urządzeń z systemem Android, które uruchamiają własne niestandardowe obrazy systemu Android. Możesz także udostępniać niestandardowe obrazy systemu Android, aby inne osoby mogły uruchamiać ich emulacje. Ponadto możesz dodać obsługę wielu wyświetlaczy do emulacji emulatora Androida.
Architektura emulatora Androida
Android Emulator umożliwia uruchamianie emulacji urządzeń z systemem Android na maszynach z systemem Windows, macOS lub Linux. Emulator Androida uruchamia system operacyjny Android na maszynie wirtualnej o nazwie Android Virtual Device (AVD). AVD zawiera pełny stos oprogramowania Androida i działa tak, jakby znajdował się na fizycznym urządzeniu. Rysunek 1 to diagram architektury wysokiego poziomu emulatora Androida. Aby uzyskać więcej informacji o emulatorze, zobacz Uruchamianie aplikacji w emulatorze systemu Android .
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 kilka obrazów systemu. Możesz też tworzyć niestandardowe obrazy systemu AVD z kodu źródłowego i tworzyć emulacje urządzeń, aby je uruchamiać.
Aby zbudować i uruchomić obraz systemu AVD:
Pobierz źródło Androida:
mkdir aosp-master; cd aosp-master
repo init -u
repo sync -j24
Jeśli chcesz zbudować inne wersje Androida, możesz znaleźć ich nazwy gałęzi w publicznym repozytorium Androida . Są one mapowane na nazwy kodowe, tagi i numery kompilacji Androida .
Zbuduj obraz systemu AVD. Jest to ten sam proces, co tworzenie obrazu systemu urządzenia z Androidem . Na przykład, aby zbudować 32-bitowy AVD dla x86:
mkdir aosp-master; cd aosp-master
source ./build/envsetup.sh
lunch sdk_phone_x86
make -j32
Jeśli wolisz zbudować 64-bitowy AVD x86, uruchom
lunch
dla 64-bitowego celu:lunch sdk_phone_x86_64
Uruchom obraz systemu AVD w emulatorze systemu Android:
emulator
Zobacz opcje uruchamiania wiersza polecenia, aby uzyskać więcej informacji na temat uruchamiania emulatora. Rysunek 2 przedstawia przykład emulatora Androida z systemem AVD.
Rysunek 2. Emulator Androida z systemem AVD
Udostępnianie obrazów systemu AVD innym użytkownikom w Android Studio
Postępuj zgodnie z tymi instrukcjami, aby udostępnić obrazy systemu AVD innym. Mogą używać obrazów systemu AVD w Android Studio do tworzenia i testowania aplikacji.
Utwórz dodatkowe pakiety
sdk
isdk_repo
:$ make -j32 sdk sdk_repo
Tworzy to dwa pliki w
aosp-master/out/host/linux-x86/sdk/sdk_phone_x86
:-
sdk-repo-linux-system-images-eng.[username].zip
-
repo-sys-img.xml
-
Przechowuj plik
sdk-repo-linux-system-images-eng.[username].zip
w miejscu dostępnym dla użytkowników i uzyskaj jego adres URL, który będzie używany jako adres URL obrazu systemu AVD .Edytuj odpowiednio
repo-sys-img.xml
:- Zaktualizuj
<sdk:url>
do adresu URL obrazu systemu AVD . - Zobacz sdk-sys-img-03.xsd , aby dowiedzieć się o innych aktualizacjach pliku.
- Zaktualizuj
repo-sys-img.xml
w miejscu dostępnym dla użytkowników i uzyskaj jego adres URL, który będzie używany jako adres URL niestandardowej witryny aktualizacji .
Aby użyć niestandardowego obrazu AVD, wykonaj następujące czynności w Menedżerze SDK:
Dodaj adres URL niestandardowej witryny aktualizacji jako witrynę aktualizacji 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 Multi-Display (MD) , aby lepiej obsługiwać więcej zastosowań, takich jak tryb automatyczny i stacjonarny. Emulator Androida obsługuje również emulację wielu wyświetlaczy. Możesz więc stworzyć specyficzne środowisko wieloekranowe bez konfigurowania prawdziwego sprzętu.
Możesz dodać obsługę wielu wyświetlaczy do AVD, wprowadzając następujące zmiany lub wybierając z tych CL .
Dodaj dostawcę wielu wyświetlaczy 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 Multi-Display, dodając tę linię do pliku
device/generic/goldfish/data/etc/advancedFeatures.ini
:MultiDisplay = on
Najnowsze funkcje emulatora i informacje o wydaniu można znaleźć w następujących źródłach: