Urządzenie wirtualne z Androidem jako platforma programistyczna

Aby korzystać z urządzeń wirtualnych systemu Android (AVD), emulator systemu Android obsługuje graficzny interfejs użytkownika (GUI) i interfejs wiersza polecenia (CLI). Wybierasz optymalny przepływ pracy dla swojego środowiska.

Zbuduj samochód AOSP AVD

Proces tworzenia AOSP Car AVD jest podobny do tworzenia obrazów AVD dla telefonu (na przykład aosp_car_x86_64 ):

  1. Aby skonfigurować środowisko programistyczne i zidentyfikować gałąź, zobacz Narzędzia kontroli źródła . Następnie przejrzyj Pobieranie źródła :
    ANDROID_BRANCH="android11-qpr2-release"
    REPO_URL="https://android.googlesource.com/platform/manifest"
    mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8
  2. Zbuduj obraz AVD:
    . build/envsetup.sh && lunch aosp_car_x86_64-userdebug && m -j32
  3. Uruchom obraz AVD (w razie potrzeby dołącz dodatkowe opcje uruchamiania wiersza polecenia ):
    emulator &

    Na przykład:

    Rysunek 1. Ekran wirtualnego emulatora Android

    Uwagi dotyczące tego procesu:

    • Ponieważ proces kompilacji jest taki sam, jak ten wymagany do skompilowania systemu Android dla urządzenia fizycznego, poczekaj trochę czasu na pobranie źródła, a następnie skompiluj go.
    • Aby pracować na innych gałęziach, ustaw $ANDROID_BRANCH na inną gałąź/tag .
    • Obrazy AVD, takie jak system.img , są budowane w $ANDROID_PRODUCT_OUT . Aby dowiedzieć się więcej o kluczowych obrazach, zobacz katalog systemowy AVD .
    • Zobacz plik README , aby dowiedzieć się, jak gotowe pliki binarne emulatora w drzewie Androida są używane do uruchamiania emulatora.

Utwórz samochód AVD

Dodawanie nowego samochodu AVD jest prawie identyczne z dodawaniem nowego urządzenia . Na przykład 1660554 tworzy nowy AVD avd_car .

Aby utworzyć samochodowy AVD:

  1. W razie potrzeby utwórz folder firmy i urządzenia. W tym przykładzie użyto $ANDROID_BUILD_TOP/device/google_car/avd_car .
  2. Utwórz plik makefile produktu, avd_car.mk , który definiuje sposób budowania AVD.
  3. Utwórz folder urządzenia, avd_car_device , w którym ma znajdować się BoardConfig.mk i source.properties .
  4. Dodaj nowy plik makefile i nowy wybór lunch do AndroidProducts.mk .
  5. Aby zbudować i uruchomić nowy AVD avd_car :
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Teraz możesz wykonać prototyp większości funkcji HMI i aplikacji na swoim nowym AVD.

Spakuj plik zip obrazu AVD

Możesz spakować i udostępnić AVD innym lub używać go na innym komputerze. Użyj emu_img_zip.mk , aby wygenerować plik zip obrazu AVD:

  1. Po zbudowaniu AVD emu_img_zip jako cel:
    m emu_img_zip
  2. Plik zip obrazu AVD, poprzedzony przedrostkiem sdk-repo-linux-system-images , jest tworzony w folderze o nazwie $ANDROID_PRODUCT_OUT .

Zbuduj jądro AVD

Jądra AVD są podobne do innych jąder Androida, ponieważ wszystkie są gotowymi obrazami. Zwykle można użyć standardowych gotowych obrazów jądra złotej rybki, tak jak w przypadku każdego wydania Androida.

Aby poeksperymentować ze zmianami jądra:

  1. Uruchom następującą serię instrukcji:
    mkdir goldfish-kernel-54
    cd goldfish-kernel-54
    repo init -u https://android.googlesource.com/kernel/manifest -b
    common-android11-5.4
    repo sync
    BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh
    BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64
    build/build.sh
    ls -l ./out/android11-5.4/dist/
    
  2. Zastąp plik binarny jądra w bazie kodu zgodnie z plikiem makefile AVD. Na przykład x86_64-vendor.mk zawiera x86_64-kernel.mk .

Kod jądra i konfiguracja znajdują się w następujący sposób:

Przedmiot Wartość
Oddział common-android11-5.4 (używany w Androidzie 11)
Oczywisty kernel/manifest/common-android11-5.4
wspólne-moduły/urządzenie-wirtualne kernel/common-modules/virtual-device/android11-5.4
Jądro kernel/common/android11-5.4

Utwórz nowy profil urządzenia

Aby umożliwić użytkownikom tworzenie określonego AVD w Android Studio AVD Manager, zobacz Tworzenie urządzeń wirtualnych i zarządzanie nimi . Producenci urządzeń mogą definiować własne specyfikacje sprzętowe, takie jak rozmiar ekranu i DPI, za pomocą pliku devices.xml zawartego w obrazie AVD.

  • Na przykład zobacz profile urządzeń samochodowych w automotive.xml .
  • W przypadku opracowywania lub tworzenia prototypów HMI do pliku można dodać wiele urządzeń dla tego samego obrazu AVD.
  • Dołącz plik do pliku zip obrazu OEM AVD w folderze [ABI] . Na przykład jako x86_64 .
  • Twórcy urządzeń mogą również stworzyć skórkę emulatora . Na przykład, aby zdefiniować dodatkowe przyciski sprzętowe dla wyższej wierności UX. Jest to przydatne nie tylko w przypadku przepływów pracy programistów, ale także innych zadań, takich jak badanie i przegląd UX.

Utwórz plik XML obrazu AVD

Producenci urządzeń mogą utworzyć plik AVD Image XML dla Android Studio, aby go pobrać.

  • Na przykład zobacz plik XML obrazu AAOS AVD, sys-img2-1.xml .
  • Producenci urządzeń mogą zdefiniować własną umowę licencyjną OEM AVD dla swoich użytkowników docelowych (wykorzystując system honorowy), z licencją na Emulator Androida. Android Studio uzyskuje konsensus użytkowników, gdy taka licencja jest dołączona.

Aby stworzyć obraz:

  1. Przygotuj plik zip obrazu AVD.
  2. Rozpakuj ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip .
  3. Dodaj devices.xml do folderu x86_64 , a następnie skompresuj plik w pliku zip. Na przykład jako oem_avd_img_x86_64.zip .
  4. Zaktualizuj oem-sys-img2-1.xml .
  5. Zaktualizuj nazwę pliku zip, rozmiar i shasum (przykładowe pliki XML są dostępne w tools ).

Na przykład, aby hostować AVD w Google Cloud Storage , zobacz Tworzenie zasobników na dane .

Aby przesłać i udostępnić publicznie plik AVD, zobacz Upublicznianie danych :

BUCKET_NAME="aaos-avd"
gsutil mb gs://$BUCKET_NAME
gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME
gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME
gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME

Format adresu URL dodatku SDK obrazu AVD to: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml . Na przykład, jeśli BUCKET_NAME to aaos-avd, adres URL to: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml .

Udostępnianie obrazu AVD użytkownikom Android Studio

Aby Twoi użytkownicy mogli pobierać obrazy AVD i korzystać z AVD przez Android Studio, możesz udostępnić plik XML dodatku SDK. Aby uzyskać szczegółowe informacje, zobacz Aktualizacja narzędzi IDE i SDK .

Aby pobrać AVD z sieci:

  1. Hostuj plik zip obrazu i pliki XML na serwerze.
  2. Podaj adres URL docelowym użytkownikom.
  3. ( Opcjonalnie ) Ogranicz dostęp według nazwy użytkownika i hasła.

Alternatywnie, aby przyspieszyć programowanie, pobierz AVD do lokalnego katalogu:

  1. Zapisz pliki XML i wszystkie artefakty określone w pliku XML w folderze (na przykład wszystkie pliki zip obrazu AVD) o nazwie ADDON_DIR .
  2. Określ adres URL jako file://$ADDON_DIR/oem-sys-img2-1.xml .