Z tego artykułu dowiesz się, jak pobrać, skompilować i uruchomić AAOS SDV na Cuttlefish.
Pobieranie kodu źródłowego AAOS SDV
Postępuj zgodnie z instrukcjami podanymi w artykule Pobieranie kodu źródłowego Androida.
Konfigurowanie środowiska kompilacji
W katalogu roboczym uruchom skrypt envsetup.sh, aby skonfigurować środowisko kompilacji:
source build/envsetup.shTen skrypt importuje kilka poleceń, które umożliwiają pracę z kodem źródłowym Androida, w tym polecenia używane na tej stronie. Aby wyświetlić źródło skryptu, zobacz platform/build/envsetup.sh. Aby wyświetlić wbudowaną pomoc, wpisz hmm.
Wybieranie celu
Zanim skompilujesz SDV, określ cel kompilacji. Aby określić cel kompilacji, użyj polecenia lunch i ciągu znaków reprezentującego cel, dla którego kompilujesz. Aby na przykład skompilować cel dla emulatora Cuttlefish, użyj tego polecenia:
lunch sdv_core_cf-aosp_current-userdebugTo polecenie wybiera produkt, konfigurację wersji i wariant do skompilowania oraz zapisuje wybór w środowisku.
Cele lunch dla SDV są dostępne w osobnym projekcie Git znajdującym się w katalogu devices/google/sdv. Szczegółowy opis dostępnych celów znajdziesz w pliku device/google/sdv/README.md. Główne cele Cuttlefish (cf) to:
sdv_core_cf-aosp_current-userdebug– kompiluje obraz AAOS SDV Core (sdv_core), który działa na Cuttlefish (cf).sdv_media_cf-aosp_current-userdebug– kompiluje obraz AAOS SDV Core z interfejsami API multimediów zwirtualizowanymi za pomocą virtIO (sdv_media).sdv_media_har_cf-aosp_current-userdebug– kompiluje obraz, który rozszerza cel AAOS SDV media (sdv_media_cf)luncho renderer o wysokiej dostępności (HAR). HAR uruchamia się automatycznie podczas uruchamiania.sdv_ivi_cf-aosp_current-userdebug– kompiluje obraz systemu informacyjno-rozrywkowego (IVI) zawierający bramę SDV i przykładowe aplikacje w Javie.sdv_ivi_cf_ds-aosp_current-userdebug– kompiluje obraz, który rozszerza cel AAOS SDV IVI (sdv_ivi_cf) i zawiera implementację DriverUI i Instrument Cluster w Display Safety.
Kompilowanie AAOS SDV
Aby skompilować cel, uruchom to polecenie. W zależności od specyfikacji stacji roboczej pierwsza kompilacja trwa od 30 do 60 minut. Kolejne kompilacje trwają znacznie krócej.
mWynik kompilacji pojawi się w $OUT_DIR. Jeśli skompilujesz różne cele, każda kompilacja celu pojawi się w $OUT_DIR.
Testowanie kompilacji za pomocą Cuttlefish
Po skompilowaniu AAOS SDV przetestuj kompilację za pomocą Cuttlefish.
Aby uruchomić Cuttlefish z kompilacją:
cvd createCuttlefish działa z użyciem skompilowanego celu (
sdv_core_cf-aosp_current-userdebug). Po uruchomieniu Cuttlefish wyświetli się ten komunikat:VIRTUAL_DEVICE_BOOT_COMPLETED Virtual device booted successfullyAby połączyć się z Cuttlefish, uruchom
adb.Aby sprawdzić, czy kompilacja jest uruchomiona, uruchom
adb devices. Wyświetli się wynik podobny do tego:List of devices attached 0.0.0.0:6520 deviceAby wyłączyć urządzenie, uruchom
cvd stop.
Aby uruchomić kilka instancji Cuttlefish z różnymi kompilacjami, przeczytaj artykuł Cuttlefish: multi-tenancy.
Rozwiązywanie problemów
W tej sekcji dowiesz się, jak rozwiązywać błędy, które mogą wystąpić podczas pobierania, kompilowania lub uruchamiania AAOS SDV.
Błędy RBE
Jeśli napotkasz błędy Remote Build Execution (RBE), usuń definicje USE_RBE i ENABLE_RBE_BOOTSTRAP z pliku .bashrc lub .zshrc.
cvd: VM manager crosvm isn't supported on this machine
Jeśli Cuttlefish zgłosi, że menedżer maszyn wirtualnych crosvm nie jest obsługiwany na Twoim komputerze, uruchom to polecenie, aby zainstalować Cuttlefish:
sudo apt install cuttlefish-commoncvd not found
Jeśli otrzymasz błąd cvd not found:
- Ponownie skonfiguruj kompilację.
- Kontynuuj, wykonując czynności opisane w sekcji Wybieranie celu.
Pętle awarii Cuttlefish
Jeśli Cuttlefish przejdzie w pętlę awarii:
- Aby zatrzymać wszystkie instancje Cuttlefish, uruchom
cvd stop. - Użyj Cuttlefish, aby ponownie przetestować kompilację.