Geliştirme platformu olarak Android Sanal Cihazı

Android sanal cihazlarını (AVD'ler) kullanmak için Android Emulator, grafik kullanıcı arayüzünü (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 (örneğin, 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 Android kaynağını indirme başlıklı makaleyi okuyun:
    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:

    Şekil 1. 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 öğesini 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 dizinine bakın.
    • 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 avd_car.mk adlı ürün makefile'ını oluşturun.
  3. BoardConfig.mk ve source.properties öğelerini içerecek bir cihaz klasörü (avd_car_device) oluşturun.
  4. AndroidProducts.mk öğesine yeni makefile ve yeni lunch seçeneğini ekleyin.
  5. Yeni avd_car AVD'yi oluşturmak ve çalıştırmak için:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Artık yeni AVD'nizde çoğu HMI ve uygulama özelliğinin prototipini oluşturmaya hazırsınız.

AVD görüntüsü ZIP dosyası paketleme

AVD'nizi paketleyip başkalarıyla paylaşabilir veya başka bir bilgisayarda kullanabilirsiniz. AVD görüntü 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 çekirdeklerine benzer şekilde ö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
Dal common-android11-5.4 (Android 11'de kullanılır)
Bildirim kernel/manifest/common-android11-5.4
common-modules/virtual-device kernel/common-modules/virtual-device/android11-5.4
Çekirdek 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 bir 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ü XML dosyasına (sys-img2-1.xml) 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.

Görüntüyü oluşturmak için:

  1. AVD görüntü 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ı 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 bölümünde verilmiştir).

Ö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 bölümünü 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ızın URL'sini girin.
  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.