Urządzenie wirtualne z systemem Android 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 poleceń (CLI). Wybierasz optymalny przepływ pracy dla swojego środowiska.

Uruchom AOSP Car AVD, korzystając z gotowej wersji

Aby szybko uruchomić i przetestować wstępnie zbudowany AOSP Car AVD, użyj skryptu open source, aby pobrać i uruchomić kompilację emulatora z ci.android.com . Skrypt został przetestowany na systemach MacOS i Linux.

Aby skorzystać z tego skryptu, będziesz potrzebować Curla .

Aby uruchomić skrypt:

  1. Skopiuj zawartość skryptu launch_emu.sh do pliku lokalnego, zakładając, że używasz launch_emu.sh jako nazwy pliku lokalnego.
  2. Spraw, aby Twój lokalny skrypt był wykonywalny. Na przykład uruchom chmod +x ./launch_emu.sh .
  3. Sprawdź dostępne opcje, uruchamiając skrypt za pomocą ./launch_emu.sh -h .
  4. Na ci.android.com przejdź do gałęzi aosp-main-throttled i wybierz najnowszą kompilację, w której sdk_car_x86_64 jest zielony. Na przykład 11370359. Jeśli nie widzisz informacji o kompilacji, wyloguj się ze swojego konta Google i spróbuj ponownie.
  5. Pobierz i zainstaluj pliki binarne związane z emulatorem z identyfikatorem kompilacji. Na przykład ./launch_emu.sh -i -a 11370359 .
  6. Następnie możesz użyć ./launch_emu.sh , aby uruchomić pobrany i zainstalowany emulator (nie używaj opcji -i ani -a ).
  7. Aby pobrać i zainstalować inny identyfikator kompilacji, uruchom ./launch_emu.sh -c , aby wyczyścić obszar roboczy, a następnie powtórz kroki 4 i 5 powyżej.

Aby określić opcje opcji uruchamiania wiersza poleceń emulatora Androida podczas uruchamiania emulatora, użyj opcji -v . Na przykład:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

Zbuduj AVD samochodu AOSP

Proces tworzenia AVD samochodu AOSP 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="android12L-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 sdk_car_x86_64-userdebug && m -j32
  3. Uruchom obraz AVD (w razie potrzeby dołącz dodatkowe opcje uruchamiania wiersza poleceń ):
    emulator &

    Na przykład:

    Rysunek 1. Ekran wirtualnego emulatora Androida

    Uwagi dotyczące tego procesu:

    • Ponieważ proces kompilacji jest taki sam, jak wymagany do zbudowania Androida na urządzenie fizyczne, poświęć trochę czasu na pobranie źródła, a następnie go skompiluj.
    • Aby pracować na innych gałęziach, ustaw $ANDROID_BRANCH na inną gałąź/tag .
    • Obrazy AVD, takie jak system.img , są zbudowane w $ANDROID_PRODUCT_OUT . Aby dowiedzieć się więcej o kluczowych obrazach, zobacz katalog systemu AVD .
    • Zobacz plik README , aby dowiedzieć się, w jaki sposób wstępnie skompilowane pliki binarne emulatora w drzewie Androida są używane do uruchamiania emulatora.

Utwórz AVD samochodu

Dodanie nowego AVD samochodu jest niemal identyczne z Dodawaniem Nowego Urządzenia . Na przykład 1660554 tworzy nowy plik AVD avd_car .

Aby utworzyć AVD samochodu:

  1. W razie potrzeby utwórz folder firmowy 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 będą znajdować się pliki BoardConfig.mk i source.properties .
  4. Dodaj nowy makefile i nowy wybór lunch do AndroidProducts.mk .
  5. Aby zbudować i uruchomić nowy avd_car AVD:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Możesz teraz prototypować większość funkcji HMI i aplikacji na swoim nowym AVD.

Spakuj plik zip obrazu AVD

Możesz spakować i udostępnić swój 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 ustaw emu_img_zip jako cel:
    m emu_img_zip
  2. Plik zip obrazu AVD, poprzedzony prefiksem 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żywać standardowych, gotowych obrazów jądra złotej rybki, takich jakie są dostępne w każdej wersji Androida.

Aby poeksperymentować ze zmianami w jądrze:

  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. Zamień plik binarny jądra w bazie kodu zgodnie z plikiem make 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 . Twórcy urządzeń mogą definiować własne specyfikacje sprzętowe, takie jak rozmiar ekranu i DPI, korzystając z pliku devices.xml zawartego w obrazie AVD.

  • Na przykład zobacz profile urządzeń motoryzacyjnych w automotive.xml .
  • W celu opracowania lub prototypowania interfejsu 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ż utworzyć skórkę emulatora . Na przykład, aby zdefiniować dodatkowe przyciski sprzętowe w celu zapewnienia wyższej jakości UX. Jest to przydatne nie tylko w przepływach pracy programistów, ale także w innych zadaniach, takich jak badania i recenzje UX.

Utwórz plik XML obrazu AVD

Producenci urządzeń mogą utworzyć plik XML obrazu AVD 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 docelowych użytkowników (korzystających z systemu honorowego) z licencją na emulator Androida. Android Studio uzyskuje konsensus użytkownika, jeśli taka licencja jest dołączona.

Aby utworzyć 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ę, rozmiar i shasum pliku zip (przykładowe pliki XML znajdują się w tools ).

Na przykład, aby hostować AVD w Google Cloud Storage , zobacz Tworzenie zasobników pamięci .

Aby przesłać i udostępnić publicznie 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 jest następujący: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml . Na przykład, jeśli NAZWA_BUCKETA 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 użytkownicy mogli pobierać obrazy AVD i używać AVD w Android Studio, możesz udostępnić plik XML dodatku SDK. Aby uzyskać szczegółowe informacje, zobacz Aktualizowanie 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ć rozwój, 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 obrazów AVD) o nazwie ADDON_DIR .
  2. Określ adres URL jako file://$ADDON_DIR/oem-sys-img2-1.xml .
,

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

Uruchom AOSP Car AVD, korzystając z gotowej wersji

Aby szybko uruchomić i przetestować wstępnie zbudowany AOSP Car AVD, użyj skryptu open source, aby pobrać i uruchomić kompilację emulatora z ci.android.com . Skrypt został przetestowany na systemach MacOS i Linux.

Aby skorzystać z tego skryptu, będziesz potrzebować Curla .

Aby uruchomić skrypt:

  1. Skopiuj zawartość skryptu launch_emu.sh do pliku lokalnego, zakładając, że używasz launch_emu.sh jako nazwy pliku lokalnego.
  2. Spraw, aby Twój lokalny skrypt był wykonywalny. Na przykład uruchom chmod +x ./launch_emu.sh .
  3. Sprawdź dostępne opcje, uruchamiając skrypt za pomocą ./launch_emu.sh -h .
  4. Na ci.android.com przejdź do gałęzi aosp-main-throttled i wybierz najnowszą kompilację, w której sdk_car_x86_64 jest zielony. Na przykład 11370359. Jeśli nie widzisz informacji o kompilacji, wyloguj się ze swojego konta Google i spróbuj ponownie.
  5. Pobierz i zainstaluj pliki binarne związane z emulatorem z identyfikatorem kompilacji. Na przykład ./launch_emu.sh -i -a 11370359 .
  6. Następnie możesz użyć ./launch_emu.sh , aby uruchomić pobrany i zainstalowany emulator (nie używaj opcji -i ani -a ).
  7. Aby pobrać i zainstalować inny identyfikator kompilacji, uruchom ./launch_emu.sh -c , aby wyczyścić obszar roboczy, a następnie powtórz kroki 4 i 5 powyżej.

Aby określić opcje opcji uruchamiania wiersza poleceń emulatora Androida podczas uruchamiania emulatora, użyj opcji -v . Na przykład:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

Zbuduj AVD samochodu AOSP

Proces tworzenia AVD samochodu AOSP 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="android12L-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 sdk_car_x86_64-userdebug && m -j32
  3. Uruchom obraz AVD (w razie potrzeby dołącz dodatkowe opcje uruchamiania wiersza poleceń ):
    emulator &

    Na przykład:

    Rysunek 1. Ekran wirtualnego emulatora Androida

    Uwagi dotyczące tego procesu:

    • Ponieważ proces kompilacji jest taki sam, jak ten wymagany do zbudowania Androida na urządzenie fizyczne, poświęć trochę czasu na pobranie źródła, a następnie go skompiluj.
    • Aby pracować na innych gałęziach, ustaw $ANDROID_BRANCH na inną gałąź/tag .
    • Obrazy AVD, takie jak system.img , są zbudowane w $ANDROID_PRODUCT_OUT . Aby dowiedzieć się więcej o kluczowych obrazach, zobacz katalog systemu AVD .
    • Zobacz plik README , aby dowiedzieć się, w jaki sposób wstępnie skompilowane pliki binarne emulatora w drzewie Androida są używane do uruchamiania emulatora.

Utwórz AVD samochodu

Dodanie nowego AVD samochodu jest niemal identyczne z Dodawaniem Nowego Urządzenia . Na przykład 1660554 tworzy nowy plik AVD avd_car .

Aby utworzyć AVD samochodu:

  1. W razie potrzeby utwórz folder firmowy 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 będą znajdować się pliki BoardConfig.mk i source.properties .
  4. Dodaj nowy makefile i nowy wybór lunch do AndroidProducts.mk .
  5. Aby zbudować i uruchomić nowy avd_car AVD:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Możesz teraz prototypować większość funkcji HMI i aplikacji na swoim nowym AVD.

Spakuj plik zip obrazu AVD

Możesz spakować i udostępnić swój 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 ustaw emu_img_zip jako cel:
    m emu_img_zip
  2. Plik zip obrazu AVD, poprzedzony prefiksem 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żywać standardowych, gotowych obrazów jądra złotej rybki, takich jakie są dostępne w każdej wersji Androida.

Aby poeksperymentować ze zmianami w jądrze:

  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. Zamień plik binarny jądra w bazie kodu zgodnie z plikiem make 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 . Twórcy urządzeń mogą definiować własne specyfikacje sprzętowe, takie jak rozmiar ekranu i DPI, korzystając z pliku devices.xml zawartego w obrazie AVD.

  • Na przykład zobacz profile urządzeń motoryzacyjnych w automotive.xml .
  • W celu opracowania lub prototypowania interfejsu 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ż utworzyć skórkę emulatora . Na przykład, aby zdefiniować dodatkowe przyciski sprzętowe w celu zapewnienia wyższej jakości UX. Jest to przydatne nie tylko w przepływach pracy programistów, ale także w innych zadaniach, takich jak badania i recenzje UX.

Utwórz plik XML obrazu AVD

Producenci urządzeń mogą utworzyć plik XML obrazu AVD 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 docelowych użytkowników (korzystających z systemu honorowego) z licencją na emulator Androida. Android Studio uzyskuje konsensus użytkownika, jeśli taka licencja jest dołączona.

Aby utworzyć 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ę, rozmiar i shasum pliku zip (przykładowe pliki XML znajdują się w tools ).

Na przykład, aby hostować AVD w Google Cloud Storage , zobacz Tworzenie zasobników pamięci .

Aby przesłać i udostępnić publicznie 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 jest następujący: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml . Na przykład, jeśli NAZWA_BUCKETA 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 użytkownicy mogli pobierać obrazy AVD i używać AVD w Android Studio, możesz udostępnić plik XML dodatku SDK. Aby uzyskać szczegółowe informacje, zobacz Aktualizowanie 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ć rozwój, 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 obrazów AVD) o nazwie ADDON_DIR .
  2. Określ adres URL jako file://$ADDON_DIR/oem-sys-img2-1.xml .