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.
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:
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.
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
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:
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.
Utwórz dodatkowe pakiety
sdk
isdk_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 folderzeaosp-main/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, który będziesz używać jako adres URL obrazu systemu AVD.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.
- Zmień
Aby użyć niestandardowego obrazu AVD, wykonaj te czynności w Menedżerze pakietu SDK:
Dodaj URL niestandardowej witryny z aktualizacjami jako witrynę z aktualizacjami 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.
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: