Android'i geliştirin

Android'i geliştirmek için bu sayfadaki talimatları uygulayın.

Derleme ortamınızı ayarlama

Çalışma dizininizde, ayarlamak için envsetup.sh komut dosyasını kaynak olarak kullanın. geliştirmenizi sağlar:

source build/envsetup.sh

Bu komut dosyası, Android'de çalışmanıza olanak tanıyan çeşitli komutları içe aktarır. kaynak koduna dahil edilir. Etiketin kaynağını görüntülemek için komut dosyası, platform/build/envsetup.sh. Yerleşik yardımı görüntülemek için hmm yazın.

Hedef seçin

Android'i geliştirmeden önce, oluşturulacak bir hedef belirlemelisiniz. Hedef projenizin hedef platformunu yansıtır. oluşturmak için lunch komutunu ve ardından kodu temsil eden bir dizeyi kullanın. yardımcı olur. Örnek:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

Geçerli hedefi görüntüleme

Öğle yemeğiyle ilgili mevcut ayarları görmek için şu komutu çalıştırın:

echo "$TARGET_PRODUCT-$TARGET_RELEASE-$TARGET_BUILD_VARIANT"

Hedefi temsil eden dize aşağıdaki biçimdedir:

lunch product_name-release-build_variant

Bu dizenin bileşenleri şunlardır:

  • product_name, eklemek istediğiniz ürünün adıdır derlemesi (aosp_cf_x86_64_phone veya aosp_husky gibi) Size özel product_name, cihazınızda kendi biçiminizi kullanabilir. Ancak Google'ın cihazları için kullandığı biçim şu bileşenlere sahiptir:

    • aosp, Android Açık Kaynak Platformu'nu ifade eder.
    • (isteğe bağlı) cf, hedefin Mürekkep balığı emülatörü.
    • Mimari ve donanım (kod adı), örneğin x86_64_phone veya husky bu, Pixel 8 Pro'nun kod adıdır. Google kod adlarının listesi için cihazlar için Cihaz kod adları.
  • release, trunk_staging olarak ayarlandı.

  • Dizenin build_variant bölümü şunlardan biri olabilir: aşağıdaki tabloda yer alan üç değere sahiptir:

    build_variant Açıklama
    user Bu derleme varyantı, sınırlı güvenlik erişimi sağlar ve üretime uygundur.
    userdebug Bu derleme varyantı, cihaz geliştiricilerinin geliştirme aşamasındaki sürümlerin performansını ve gücünü anlamalarına yardımcı olur. userdebug derlemesi ile geliştirme yaparken Kullanıcı hata ayıklama yönergeleri'ne uyun.
    eng Bu derleme varyantı daha hızlı derleme süresine sahiptir ve performans ile güçle ilgilenmiyorsanız günlük gelişim için en uygun seçenektir.

lunch öğesini herhangi bir bağımsız değişken olmadan çalıştırırsanız ortak hedeflerin listesi sağlanır. Ayrıca, aynı dizenin öğelerini bir araya getirerek bu sayfadaki bilgileri ve kod adlarını kullanan hedef dize temsil eden ve Cihaz kod adları.

Kodu oluşturma

Hedefinizi oluşturmak için aşağıdaki komutu çalıştırın. Spesifikasyona bağlı olarak ilk derleme bir saatten kısa sürer ve daha sonra birkaç saat. Sonraki derlemeler çok daha kısa sürer.

$ m

Görmeniz gereken ilk çıkış, hedefinizin ve derlemenizin ortam:

============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================

Derlemenizin çıktısı $OUT_DIR üzerinde görünür. Şu durumda: farklı hedefler oluşturmanıza rağmen her hedef $OUT_DIR

m komutu ağacın en üstünden oluşturulur, böylece m komutunu içinden çalıştırabilirsiniz alt dizinleridir. TOP ortam değişkenini ayarladıysanız m komutu nasıl kullanacağımızı konuştuk. TOP ayarlanmazsa m komutu, ağacın üst kısmını bulmaya çalışıyorsunuz.

m komutu, -jN bağımsız değişkeniyle paralel görevleri işleyebilir. Şunu yapmazsanız: -j bağımsız değişkeni sağlarsanız derleme sistemi otomatik olarak paralel bir görev seçer en iyi sonucu alabilirsiniz.

Listeyi tıklayarak tam cihaz görüntüsü yerine belirli modüller oluşturabilirsiniz m komut satırınızdaki modül adlarını ekleyebilirsiniz. Buna ek olarak, m komutu hedefler adı verilen bazı yapay hedeflerdir. Örneğin, m nothing ancak derleme yapısını ayrıştırıp doğrular. Geçerli hedefler için m help yazın.

Derleme hatalarını giderme (8.0 veya önceki sürümler)

AOSP 8 veya daha eski bir sürüm oluşturuyorsanız m, bir hata tespit edildiğinde işlemi iptal edebilir. sorun yaşıyorduk. Örneğin, şu mesajı görebilirsiniz:

************************************************************
You are attempting to build with the incorrect version
of java.

Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.

Please follow the machine setup instructions at
    https://source.android.com/source/initializing.html
************************************************************

Olası nedenler ve çözümleri şunlardır: