Pobieranie, kompilowanie i uruchamianie

Z tego artykułu dowiesz się, jak pobrać, skompilować i uruchomić AAOS SDV na urządzeniu Cuttlefish.

Inicjowanie klienta Repo

Skonfiguruj klienta, aby uzyskać dostęp do repozytorium kodu źródłowego Androida:

  1. Utwórz katalog roboczy, np. sdv, i przejdź do niego:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. Zainicjuj katalog roboczy na potrzeby kontroli źródła:

    W tym przykładzie używamy gałęzi 26Q2-fs-release.

    RELEASE=26Q2-fs-release
    repo init -u https://partner-android.googlesource.com/platform/vendor/pdk/generic/fs/manifest/ -b $RELEASE

    Opcja -u jest wymagana i wskazuje plik manifestu, czyli plik XML określający, gdzie w katalogu roboczym znajdują się różne projekty Git w źródle Androida. W tym przykładzie nazwa pliku manifestu nie jest określona, więc polecenie używa domyślnego pliku manifestu (default.xml).

    Opcja -b określa gałąź, którą inicjujesz.

    Dane wyjściowe powinny zawierać ten komunikat:

    repo has been initialized in path_to_working_directory

Pobieranie źródła AAOS SDV

Aby pobrać drzewo źródłowe Androida do katalogu roboczego, uruchom to polecenie:

repo sync -c -j8

Argument -c nakazuje Repo pobranie z serwera bieżącej gałęzi pliku manifestu. Polecenie -j8 dzieli synchronizację na wątki, aby przyspieszyć jej zakończenie.

Konfigurowanie środowiska kompilacji

W katalogu roboczym uruchom skrypt envsetup.sh, aby skonfigurować środowisko kompilacji:

source build/envsetup.sh

Ten 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, kliknij platform/build/envsetup.sh. Aby wyświetlić wbudowaną pomoc, wpisz hmm.

Wybierz cel

Przed utworzeniem SDV określ element docelowy. Aby go określić, użyj polecenia lunch, a potem ciągu znaków reprezentującego element docelowy, dla którego tworzysz SDV. Aby na przykład utworzyć element docelowy dla emulatora Cuttlefish, użyj tego polecenia:

lunch sdv_core_cf-trunk_staging-userdebug

To polecenie wybiera produkt, konfigurację wersji i wariant do utworzenia oraz zapisuje wybór w środowisku.

lunch pliki docelowe SDV są dostępne w osobnym projekcie Git znajdującym się w katalogudevices/google/sdv. Szczegółowy opis dostępnych miejsc docelowych znajdziesz na stronie device/google/sdv/README.md. Główne cele Cuttlefish (cf) to:

  • sdv_core_cf-trunk_staging-userdebug – Utwórz obraz AAOS SDV Coresdv_core, który działa na Cuttlefishcf.
  • sdv_media_cf-trunk_staging-userdebug – Utwórz obraz podstawowej wersji AAOS SDV z interfejsami API multimediów wirtualizowanymi za pomocą virtIO (sdv_media).
  • sdv_media_har_cf-trunk_staging-userdebug – Utwórz obraz, który rozszerza docelowy obraz multimediów SDV AAOS (sdv_media_cf) lunch, aby zawierał moduł renderujący o wysokiej dostępności (HAR). HAR uruchamia się automatycznie podczas włączania urządzenia.
  • sdv_ivi_cf-trunk_staging-userdebug – Utwórz obraz samochodowego systemu multimedialnego (IVI) zawierający bramę SDV i przykładowe aplikacje w Javie.
  • sdv_ivi_cf_ds-trunk_staging-userdebug – skompiluj obraz, który rozszerza docelowy system IVI SDV AAOS (sdv_ivi_cf) i zawiera implementację DriverUI i zestawu wskaźników Display Safety.

Tworzenie SDV AAOS

Aby utworzyć środowisko docelowe, uruchom to polecenie: W zależności od specyfikacji stacji roboczej pierwsza kompilacja zajmuje od 30 do 60 minut. Kolejne kompilacje zajmują znacznie mniej czasu.

m

Wynik kompilacji pojawi się w $OUT_DIR. Jeśli utworzysz różne wersje docelowe, każda z nich pojawi się w sekcji $OUT_DIR.

Testowanie kompilacji za pomocą Cuttlefish

Po skompilowaniu AAOS SDV przetestuj kompilację za pomocą Cuttlefish.

  1. Aby uruchomić Cuttlefish z kompilacją:

    cvd create

    Cuttlefish działa na podstawie utworzonego celu (sdv_core_cf-trunk_staging-userdebug). Po uruchomieniu Cuttlefish wyświetla ten komunikat:

    VIRTUAL_DEVICE_BOOT_COMPLETED
    Virtual device booted successfully
  2. Uruchom adb, aby połączyć się z Cuttlefish.

  3. Uruchom polecenie adb devices, aby sprawdzić, czy kompilacja jest uruchomiona. Wyświetli się wynik podobny do tego:

    List of devices attached
    0.0.0.0:6520 device
  4. Uruchom cvd stop, aby wyłączyć urządzenie.

Aby uruchomić wiele instancji Cuttlefish z różnymi kompilacjami, zapoznaj się z artykułem Cuttlefish: wielodostępność.

Rozwiązywanie problemów

W tej sekcji dowiesz się, jak rozwiązywać błędy, które mogą wystąpić podczas pobierania, tworzenia lub uruchamiania AAOS SDV.

Błędy RBE

Jeśli wystąpią błędy zdalnego wykonywania kompilacji (RBE), usuń definicje USE_RBEENABLE_RBE_BOOTSTRAP.bashrc lub .zshrc.

cvd: menedżer maszyn wirtualnych crosvm nie jest obsługiwany na tym komputerze

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-common

Nie znaleziono pliku cvd

Jeśli pojawi się błąd cvd not found:

  1. Ponownie skonfiguruj kompilację.
  2. Kliknij Wybierz cel.

Pętle awarii Cuttlefish

Jeśli Cuttlefish wejdzie w pętlę awarii:

  1. Aby zatrzymać wszystkie instancje Cuttlefish, uruchom polecenie cvd stop.
  2. Użyj Cuttlefish, aby ponownie przetestować kompilację