Geliştirme Platformu Olarak Android Sanal Aygıt

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.

Önceden oluşturulmuş kullanarak bir AOSP Car AVD'yi başlatın

Önceden oluşturulmuş AOSP Car AVD'yi kullanarak hızlı bir şekilde başlatmak ve test etmek için ci.android.com adresinden bir emülatör derlemesi indirip başlatmak için açık kaynaklı bir komut dosyası kullanın. Komut dosyası MacOS ve Linux'ta test edilmiştir.

Bu betiği kullanmak için Curl'a ihtiyacınız olacak.

Komut dosyasını çalıştırmak için:

  1. Yerel dosya adı olarak launch_emu.sh kullandığınızı varsayarak launch_emu.sh komut dosyasının içeriğini yerel dosyanıza kopyalayın.
  2. Yerel komut dosyanızı yürütülebilir hale getirin. Örneğin, chmod +x ./launch_emu.sh çalıştırın.
  3. Komut dosyasını ./launch_emu.sh -h ile çalıştırarak mevcut seçenekleri kontrol edin.
  4. ci.android.com adresinde aosp-main-throttled şubesine gidin ve sdk_car_x86_64 yeşil olduğu yeni bir yapı seçin. Örneğin, 11370359. Derleme bilgilerini görmüyorsanız Google Hesabınızdan çıkış yapın ve tekrar deneyin.
  5. Emülatörle ilgili ikili dosyaları derleme kimliğiyle indirip yükleyin. Örneğin, ./launch_emu.sh -i -a 11370359 .
  6. Bundan sonra, indirilen ve kurulan öykünücüyü başlatmak için ./launch_emu.sh komutunu kullanabilirsiniz ( -i veya -a seçeneklerini kullanmayın).
  7. Başka bir yapı kimliği indirip yüklemek için, çalışma alanınızı temizlemek üzere ./launch_emu.sh -c çalıştırın ve ardından yukarıdaki 4. Adım ve 5. Adımı tekrarlayın.

Öykünücüyü başlatırken Android öykünücüsü Komut satırı başlatma seçenekleri seçeneklerini belirtmek için -v seçeneğini kullanın. Örneğin:

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

Bir AOSP Araba AVD'si oluşturun

Bir AOSP Araba AVD'si oluşturma işlemi, bir telefon için AVD görüntüleri oluşturma işlemine benzer (örneğin, aosp_car_x86_64):

  1. Geliştirme ortamını ayarlamak ve bir şubeyi tanımlamak için bkz. Kaynak Kontrol Araçları . Ardından Kaynağı İndirmeyi gözden geçirin:
    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şlatma seçeneklerini ekleyin):
    emulator &

    Örneğin:

    Şekil 1. Android Sanal Emülatör ekranı

    Bu süreçle ilgili notlar:

    • Derleme süreci, fiziksel bir cihaz için Android oluşturmak için gerekli olanla aynı olduğundan, kaynağın indirilmesi ve ardından oluşturulması için biraz zaman tanıyın.
    • 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şturulmuştur. Önemli görüntüler hakkında daha fazla bilgi edinmek için AVD sistem dizini bölümüne bakın.
    • Android ağacınızdaki önceden oluşturulmuş öykünücü ikili dosyalarının öykünücüyü çalıştırmak için nasıl kullanıldığını öğrenmek için README dosyasına bakın.

Bir Araba AVD'si Oluşturun

Yeni bir araba AVD'si eklemek, Yeni Bir Cihaz Eklemekle hemen hemen aynıdır. Örneğin, 1660554 yeni bir avd_car AVD oluşturur.

Bir Araba AVD'si oluşturmak için:

  1. Gerektiğinde 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 ürün makefile dosyasını oluşturun.
  3. BoardConfig.mk ve source.properties içerecek avd_car_device adlı bir aygıt klasörü oluşturun.
  4. Yeni makefile ve yeni lunch seçeneğini AndroidProducts.mk 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.

Bir AVD görüntü zip dosyasını paketleyin

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 kullanın:

  1. AVD'yi oluşturduktan sonra emu_img_zip hedef yapın:
    m emu_img_zip
  2. Ön eki sdk-repo-linux-system-images olan AVD görüntü zip dosyası, $ANDROID_PRODUCT_OUT adlı klasörde oluşturulur.

Bir AVD çekirdeği oluşturun

AVD çekirdekleri, hepsinin önceden oluşturulmuş görüntüler olması açısından diğer Android çekirdeklerine benzer. Normalde, standart Japon balığı çekirdeğinin önceden oluşturulmuş görüntülerini her Android sürümünde olduğu gibi kullanabilirsiniz.

Çekirdek değişikliklerini denemek 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'a göre kod tabanındaki çekirdek ikili dosyasını değiştirin. Örneğin, x86_64-vendor.mk , x86_64-kernel.mk dosyasını içerir.

Çekirdek kodu ve yapılandırması aşağıdaki şekilde bulunur:

Öğe Değer
Dal common-android11-5.4 (Android 11'de kullanılır)
Belirgin kernel/manifest/common-android11-5.4
ortak modüller/sanal cihaz kernel/common-modules/virtual-device/android11-5.4
Çekirdek kernel/common/android11-5.4

Yeni bir cihaz profili oluşturun

Kullanıcıların Android Studio AVD Manager'da belirli bir AVD oluşturmasına olanak sağlamak için bkz. Sanal cihazlar oluşturma ve yönetme . Cihaz üreticileri, AVD görüntüsünde bulunan devices.xml dosyasını kullanarak ekran boyutu ve DPI gibi kendi donanım özelliklerini tanımlayabilirler.

  • Örneğin, automotive.xml dosyasındaki Otomotiv Cihaz profillerine bakın.
  • HMI geliştirme veya prototip oluşturma amacıyla aynı AVD görüntüsü için dosyaya birden fazla cihaz eklenebilir.
  • Dosyayı [ABI] klasöründeki OEM AVD görüntü zip dosyasına ekleyin. Örneğin x86_64 olarak.
  • Cihaz üreticileri ayrıca bir emülatör dış görünümü oluşturabilir . Örneğin, daha yüksek kalitede UX için ek donanım düğmeleri tanımlamak. Bu yalnızca geliştirici iş akışları için değil, aynı zamanda UX araştırması ve incelemesi gibi diğer görevler için de faydalıdır.

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

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

  • Örneğin, AAOS AVD görüntü XML dosyası olan sys-img2-1.xml bakın.
  • Cihaz üreticileri, Android Emulator lisansı ile hedef kullanıcıları için (onur sistemini kullanarak) kendi OEM AVD lisans sözleşmelerini tanımlayabilirler. Böyle bir lisans dahil edildiğinde Android Studio kullanıcı fikir birliğine sahip olur.

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

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

Örneğin, AVD'yi Google Cloud Storage'da barındırmak için Depolama paketleri oluşturma konusuna bakın.

AVD'yi yüklemek ve herkesin erişimine açık hale getirmek için Verileri herkese açık hale getirme konusuna bakın:

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 resim SDK'sı eklenti URL biçimi şu şekildedir: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml . Örneğin, BUCKET_NAME aaos-avd ise URL şu şekildedir: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml .

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

Kullanıcılarınızın AVD görsellerini indirebilmesi ve AVD'nizi Android Studio ile kullanabilmesi için bir SDK eklenti XML dosyası sağlayabilirsiniz. Ayrıntılar için bkz. IDE ve SDK Araçlarını Güncelleme .

AVD'yi ağdan indirmek için:

  1. Görüntü zip dosyasını ve XML dosyalarını bir sunucuda barındırın.
  2. URL'yi hedef kullanıcılarınıza sağlayın.
  3. ( İsteğe bağlı ) Erişimi kullanıcı adı ve şifreyle 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 yapıları ADDON_DIR adlı bir klasöre (örneğin tüm AVD görüntü zip dosyaları) kaydedin.
  2. URL'yi file://$ADDON_DIR/oem-sys-img2-1.xml olarak belirtin.
,

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.

Önceden oluşturulmuş kullanarak bir AOSP Car AVD'yi başlatın

Önceden oluşturulmuş AOSP Car AVD'yi kullanarak hızlı bir şekilde başlatmak ve test etmek için ci.android.com adresinden bir emülatör derlemesi indirip başlatmak için açık kaynaklı bir komut dosyası kullanın. Komut dosyası MacOS ve Linux'ta test edilmiştir.

Bu betiği kullanmak için Curl'a ihtiyacınız olacak.

Komut dosyasını çalıştırmak için:

  1. Yerel dosya adı olarak launch_emu.sh kullandığınızı varsayarak launch_emu.sh komut dosyasının içeriğini yerel dosyanıza kopyalayın.
  2. Yerel komut dosyanızı yürütülebilir hale getirin. Örneğin, chmod +x ./launch_emu.sh çalıştırın.
  3. Komut dosyasını ./launch_emu.sh -h ile çalıştırarak mevcut seçenekleri kontrol edin.
  4. ci.android.com adresinde aosp-main-throttled şubesine gidin ve sdk_car_x86_64 yeşil olduğu yeni bir yapı seçin. Örneğin, 11370359. Derleme bilgilerini görmüyorsanız Google Hesabınızdan çıkış yapın ve tekrar deneyin.
  5. Emülatörle ilgili ikili dosyaları derleme kimliğiyle indirip yükleyin. Örneğin, ./launch_emu.sh -i -a 11370359 .
  6. Bundan sonra, indirilen ve kurulan öykünücüyü başlatmak için ./launch_emu.sh komutunu kullanabilirsiniz ( -i veya -a seçeneklerini kullanmayın).
  7. Başka bir yapı kimliği indirip yüklemek için, çalışma alanınızı temizlemek üzere ./launch_emu.sh -c çalıştırın ve ardından yukarıdaki 4. Adım ve 5. Adımı tekrarlayın.

Öykünücüyü başlatırken Android öykünücüsü Komut satırı başlatma seçenekleri seçeneklerini belirtmek için -v seçeneğini kullanın. Örneğin:

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

Bir AOSP Araba AVD'si oluşturun

Bir AOSP Araba AVD'si oluşturma işlemi, bir telefon için AVD görüntüleri oluşturma işlemine benzer (örneğin, aosp_car_x86_64):

  1. Geliştirme ortamını ayarlamak ve bir şubeyi tanımlamak için bkz. Kaynak Kontrol Araçları . Ardından Kaynağı İndirmeyi gözden geçirin:
    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şlatma seçeneklerini ekleyin):
    emulator &

    Örneğin:

    Şekil 1. Android Sanal Emülatör ekranı

    Bu süreçle ilgili notlar:

    • Derleme süreci, fiziksel bir cihaz için Android oluşturmak için gerekli olanla aynı olduğundan, kaynağın indirilmesi ve ardından oluşturulması için biraz zaman tanıyın.
    • 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şturulmuştur. Önemli görüntüler hakkında daha fazla bilgi edinmek için AVD sistem dizini bölümüne bakın.
    • Android ağacınızdaki önceden oluşturulmuş öykünücü ikili dosyalarının öykünücüyü çalıştırmak için nasıl kullanıldığını öğrenmek için README dosyasına bakın.

Bir Araba AVD'si Oluşturun

Yeni bir araba AVD'si eklemek, Yeni Bir Cihaz Eklemekle hemen hemen aynıdır. Örneğin, 1660554 yeni bir avd_car AVD oluşturur.

Bir Araba AVD'si oluşturmak için:

  1. Gerektiğinde 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 ürün makefile dosyasını oluşturun.
  3. BoardConfig.mk ve source.properties içerecek avd_car_device adlı bir aygıt klasörü oluşturun.
  4. Yeni makefile ve yeni lunch seçeneğini AndroidProducts.mk 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.

Bir AVD görüntü zip dosyasını paketleyin

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 kullanın:

  1. AVD'yi oluşturduktan sonra emu_img_zip hedef yapın:
    m emu_img_zip
  2. Ön eki sdk-repo-linux-system-images olan AVD görüntü zip dosyası, $ANDROID_PRODUCT_OUT adlı klasörde oluşturulur.

Bir AVD çekirdeği oluşturun

AVD çekirdekleri, hepsinin önceden oluşturulmuş görüntüler olması açısından diğer Android çekirdeklerine benzer. Normalde, standart Japon balığı çekirdeğinin önceden oluşturulmuş görüntülerini her Android sürümünde olduğu gibi kullanabilirsiniz.

Çekirdek değişikliklerini denemek 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'a göre kod tabanındaki çekirdek ikili dosyasını değiştirin. Örneğin, x86_64-vendor.mk , x86_64-kernel.mk dosyasını içerir.

Çekirdek kodu ve yapılandırması aşağıdaki şekilde bulunur:

Öğe Değer
Dal common-android11-5.4 (Android 11'de kullanılır)
Belirgin kernel/manifest/common-android11-5.4
ortak modüller/sanal cihaz kernel/common-modules/virtual-device/android11-5.4
Çekirdek kernel/common/android11-5.4

Yeni bir cihaz profili oluşturun

Kullanıcıların Android Studio AVD Manager'da belirli bir AVD oluşturmasına olanak sağlamak için bkz. Sanal cihazlar oluşturma ve yönetme . Cihaz üreticileri, AVD görüntüsünde bulunan devices.xml dosyasını kullanarak ekran boyutu ve DPI gibi kendi donanım özelliklerini tanımlayabilirler.

  • Örneğin, automotive.xml dosyasındaki Otomotiv Cihaz profillerine bakın.
  • HMI geliştirme veya prototip oluşturma amacıyla aynı AVD görüntüsü için dosyaya birden fazla cihaz eklenebilir.
  • Dosyayı [ABI] klasöründeki OEM AVD görüntü zip dosyasına ekleyin. Örneğin x86_64 olarak.
  • Cihaz üreticileri ayrıca bir emülatör dış görünümü oluşturabilir . Örneğin, daha yüksek kalitede UX için ek donanım düğmeleri tanımlamak. Bu yalnızca geliştirici iş akışları için değil, aynı zamanda UX araştırması ve incelemesi gibi diğer görevler için de faydalıdır.

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

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

  • Örneğin, AAOS AVD görüntü XML dosyası olan sys-img2-1.xml bakın.
  • Cihaz üreticileri, Android Emulator lisansı ile hedef kullanıcıları için (onur sistemini kullanarak) kendi OEM AVD lisans sözleşmelerini tanımlayabilirler. Böyle bir lisans dahil edildiğinde Android Studio kullanıcı fikir birliğine sahip olur.

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

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

Örneğin, AVD'yi Google Cloud Storage'da barındırmak için Depolama paketleri oluşturma konusuna bakın.

AVD'yi yüklemek ve herkesin erişimine açık hale getirmek için Verileri herkese açık hale getirme konusuna bakın:

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 resim SDK'sı eklenti URL biçimi şu şekildedir: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml . Örneğin, BUCKET_NAME aaos-avd ise URL şu şekildedir: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml .

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

Kullanıcılarınızın AVD görsellerini indirebilmesi ve AVD'nizi Android Studio ile kullanabilmesi için bir SDK eklenti XML dosyası sağlayabilirsiniz. Ayrıntılar için bkz. IDE ve SDK Araçlarını Güncelleme .

AVD'yi ağdan indirmek için:

  1. Görüntü zip dosyasını ve XML dosyalarını bir sunucuda barındırın.
  2. URL'yi hedef kullanıcılarınıza sağlayın.
  3. ( İsteğe bağlı ) Erişimi kullanıcı adı ve şifreyle 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 yapıları ADDON_DIR adlı bir klasöre (örneğin tüm AVD görüntü zip dosyaları) kaydedin.
  2. URL'yi file://$ADDON_DIR/oem-sys-img2-1.xml olarak belirtin.