Geliştirme platformu olarak Android Sanal Cihazı

Android Sanal Cihazları (AVD'ler) kullanmak için Android Emulator, Grafik Kullanıcı Arayüzü (GUI) ve Komut Satırı Arayüzü'nü (CLI) destekler. Ortamınız için en uygun iş akışını seçersiniz.

AOSP Car AVD oluşturma

AOSP Car AVD oluşturma süreci, telefon için AVD görüntüleri oluşturmaya (ör. aosp_car_x86_64) benzer:

  1. Geliştirme ortamını ayarlamak ve bir dalı belirlemek için Kaynak Kontrolü Araçları başlıklı makaleyi inceleyin. Ardından Kaynağı İndirme bölümünü inceleyin:
    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. AVD görüntüsünü oluşturun:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. AVD görüntüsünü çalıştırın (Gerektiğinde ek Komut satırı başlangıç seçenekleri ekleyin):
    emulator &

    Örneğin:

    1. şekil. Android sanal emülatör ekranı

    Bu işlemle ilgili notlar:

    • Derleme işlemi, Android'i fiziksel bir cihaz için derlemekle aynı olduğundan kaynağın indirilmesi ve derlenmesi biraz zaman alabilir.
    • Diğer dallarda çalışmak için $ANDROID_BRANCH değerini başka bir dal/etiket olarak ayarlayın.
    • system.img gibi AVD görüntüleri $ANDROID_PRODUCT_OUT adresinde oluşturulur. Anahtar resimler hakkında daha fazla bilgi edinmek için AVD sistem dizini başlıklı makaleyi inceleyin.
    • Android ağacınızdaki önceden oluşturulmuş emülatör ikililerinin emülatörü çalıştırmak için nasıl kullanıldığını öğrenmek üzere README dosyasını inceleyin.

Araba AVD'si oluşturma

Yeni bir araba AVD'si eklemek, yeni bir cihaz eklemeye neredeyse tamamen benzerdir. Örneğin, 1660554 yeni bir avd_car AVD oluşturur.

Araba AVD'si oluşturmak için:

  1. Gerekirse bir şirket ve cihaz klasörü oluşturun. Bu örnekte $ANDROID_BUILD_TOP/device/google_car/avd_car kullanılmaktadır.
  2. AVD'nin nasıl oluşturulacağını tanımlayan ürün makefile'ını (avd_car.mk) oluşturun.
  3. avd_car_device ve source.properties öğelerini içerecek bir cihaz klasörü, avd_car_device oluşturun.BoardConfig.mk
  4. Yeni makefile ve yeni lunch seçeneğini AndroidProducts.mk öğesine ekleyin.
  5. Yeni avd_car AVD'yi oluşturmak ve çalıştırmak için:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Yeni AVD'nizde artık çoğu HMI ve uygulama özelliğinin prototipini oluşturmaya hazırsınız.

AVD resim ZIP dosyası paketleme

AVD'nizi paketleyip başkalarıyla paylaşabilir veya başka bir bilgisayarda kullanabilirsiniz. AVD görüntüsü zip dosyasını oluşturmak için emu_img_zip.mk komutunu kullanın:

  1. AVD'yi oluşturduktan sonra emu_img_zip hedefi yapın:
    m emu_img_zip
  2. sdk-repo-linux-system-images önekli AVD görüntüsü ZIP dosyası, $ANDROID_PRODUCT_OUT adlı klasörde oluşturulur.

AVD çekirdeği oluşturma

AVD çekirdekleri, diğer Android çekirdekleri gibi önceden oluşturulmuş görüntülerdir. Normalde, her Android sürümünde standart goldfish çekirdeği önceden oluşturulmuş görüntüleri olduğu gibi kullanabilirsiniz.

Çekirdek değişiklikleriyle deneme yapmak için:

  1. Aşağıdaki talimat dizisini çalıştırın:
    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. AVD makefile'ına göre kod tabanındaki çekirdek ikilisini değiştirin. Örneğin, device/generic/goldfish/board/emu64x/details.mk device/generic/goldfish/board/kernel/x86_64.mk içerir.

Çekirdek kodu ve yapılandırması şu konumda bulunur:

Öğe Değer
Şube common-android11-5.4 (Android 11'de kullanılır)
Manifest kernel/manifest/common-android11-5.4
common-modules/virtual-device kernel/common-modules/virtual-device/android11-5.4
Patlayan mısır kernel/common/android11-5.4

Yeni cihaz profili oluşturma

Kullanıcıların Android Studio AVD Manager'da belirli bir AVD oluşturmasını sağlamak için Sanal cihaz oluşturma ve yönetme başlıklı makaleye bakın. Cihaz üreticileri, AVD görüntüsüne dahil edilen bir devices.xml dosyası kullanarak ekran boyutu ve DPI gibi kendi donanım özelliklerini tanımlayabilir.

  • Örneğin, automotive.xml bölümündeki Otomotiv Cihazı profillerine bakın.
  • HMI geliştirme veya prototip oluşturma için aynı AVD görüntüsüne yönelik dosyaya birden fazla cihaz eklenebilir.
  • Dosyayı, [ABI] klasöründeki OEM AVD görüntüsü zip dosyasına ekleyin. Örneğin, x86_64.
  • Cihaz üreticiler emülatör görünümü de oluşturabilir. Örneğin, daha yüksek doğrulukta kullanıcı deneyimi için ek donanım düğmeleri tanımlamak. Bu özellik yalnızca geliştirici iş akışları için değil, aynı zamanda kullanıcı deneyimi araştırması ve inceleme gibi diğer görevler için de yararlıdır.

AVD görüntüsü XML dosyasını oluşturma

Cihaz üreticileri, Android Studio'nun indirmesi için bir AVD Image XML dosyası oluşturabilir.

  • Örneğin, AAOS AVD görüntüsü XML dosyası sys-img2-1.xml'ya bakın.
  • Cihaz üreticileri, Android Emulator lisansıyla birlikte hedef kullanıcıları için kendi OEM AVD lisans sözleşmelerini (dürüstlük ilkesine göre) tanımlayabilir. Android Studio, bu tür bir lisans eklendiğinde kullanıcı izni alır.

Resmi oluşturmak için:

  1. AVD görüntüsü ZIP dosyası hazırlayın.
  2. ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip dosyasını açın.
  3. devices.xml öğesini x86_64 klasörüne ekleyin ve dosyayı bir ZIP dosyası olarak sıkıştırın. Örneğin, oem_avd_img_x86_64.zip.
  4. oem-sys-img2-1.xml adlı cihazı güncelleyin.
  5. ZIP dosyasının adını, boyutunu ve shasum'unu güncelleyin (örnek XML dosyaları tools içinde sağlanır).

Örneğin, AVD'yi Google Cloud Storage'da barındırmak için Depolama paketleri oluşturma başlıklı makaleyi inceleyin.

AVD'yi yüklemek ve herkese açık hale getirmek için Verileri herkese açık hale getirme başlıklı makaleyi inceleyin:

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

AVD görüntüsü SDK eklentisi URL biçimi şöyledir: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml. Örneğin, BUCKET_NAME aaos-avd ise URL https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml olur.

AVD görüntüsünü Android Studio kullanıcılarıyla paylaşma

Kullanıcılarınızın AVD görüntülerini indirip Android Studio ile AVD'nizi kullanabilmesi için SDK eklentisi XML dosyası sağlayabilirsiniz. Ayrıntılar için IDE ve SDK araçlarını güncelleme başlıklı makaleyi inceleyin.

AVD'yi ağdan indirmek için:

  1. Resim zip dosyasını ve XML dosyalarını bir sunucuda barındırın.
  2. Hedef kullanıcılarınızla URL'yi paylaşın.
  3. (İsteğe bağlı) Kullanıcı adı ve şifreyle erişimi sınırlayın.

Alternatif olarak, geliştirmeyi hızlandırmak için AVD'yi yerel bir dizine indirin:

  1. XML dosyalarını ve XML dosyasında belirtilen tüm öğeleri ADDON_DIR adlı bir klasöre kaydedin (örneğin, tüm AVD görüntü zip dosyaları).
  2. URL'yi file://$ADDON_DIR/oem-sys-img2-1.xml olarak belirtin.