Android'i oluşturmak için bu sayfadaki talimatları uygulayın.
Derleme ortamınızı ayarlama
Çalışma dizininizden, derleme ortamınızı ayarlamak için envsetup.sh
komut dosyasını kaynaklayın:
source build/envsetup.sh
Bu komut dosyası, bu sayfada kullanılanlar da dahil olmak üzere Android kaynak koduyla çalışmanıza olanak tanıyan çeşitli komutları içe aktarır. Komut dosyasının kaynağını görüntülemek için platform/build/envsetup.sh
bölümüne bakın.
Yerleşik yardımı görüntülemek için hmm
yazın.
Bir hedef seçin
Android'i oluşturmadan önce oluşturulacak bir hedef belirlemeniz gerekir. Hedef, geliştirdiğiniz hedef platformu yansıtır. Oluşturulacak hedefi belirlemek için lunch
komutunu ve ardından hedefi temsil eden bir dizeyi kullanın. Örneğin:
lunch aosp_cf_x86_64_only_phone-aosp_current-userdebug
Hedef ve derleme ortamınızın bir özeti gösterilir:
============================================
PLATFORM_VERSION_CODENAME=Baklava
PLATFORM_VERSION=Baklava
TARGET_PRODUCT=aosp_cf_x86_64_only_phone
TARGET_BUILD_VARIANT=userdebug
TARGET_ARCH=x86_64
TARGET_ARCH_VARIANT=silvermont
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.10.11-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=BP1A.250305.020
OUT_DIR=out
============================================
Hedefi temsil eden dize aşağıdaki biçime sahiptir:
lunch product_name-release_config-build_variant
Bu dizenin bileşenleri şunlardır:
product_name
,aosp_cf_x86_64_only_phone
veyaaosp_husky
gibi oluşturmak istediğiniz ürünün adıdır. Cihazınız için kendiproduct_name
biçiminizi kullanabilirsiniz ancak Google'ın cihazları için kullandığı biçim şu bileşenlerden oluşur:aosp
, Android Açık Kaynak Platformu'nu ifade eder.- (isteğe bağlı) Hedefin Cuttlefish emülatöründe çalıştırılması amaçlandığında
cf
eklenir. - Mimari ve donanım (kod adı), örneğin
x86_64_only_phone
veya Pixel 8 Pro'nun kod adı olanhusky
. Google cihazlarının kod adlarının listesi için Cihaz kod adları başlıklı makaleye bakın.
release_config
,aosp_current
adlı geliştirme sürümü yapılandırması gibi bir sürüm yapılandırmasına ayarlanmıştır. Sürüm yapılandırması, özellik lansmanı işaretlerinin arkasında olan ve bir derleme için etkinleştirilen veya devre dışı bırakılan belirli özellikleri ve kodu tanımlar. Yayın yapılandırmaları hakkında daha fazla bilgi için Özellik işareti yayın değerlerini ayarlama başlıklı makaleyi inceleyin.Dizenin
build_variant
bölümü, aşağıdaki tablodaki üç değerden biri olabilir:build_variant
Açıklama user
Bu derleme varyantı sınırlı güvenlik erişimi sağlar ve üretim için uygundur. userdebug
Bu derleme varyantı, cihaz geliştiricilerin geliştirme aşamasındaki sürümlerin performansını ve gücünü anlamasına yardımcı olur. userdebug
derlemesiyle geliştirme yaparken userdebug yönergelerini uygulayın.eng
Bu derleme varyantı daha hızlı derleme süresine sahiptir ve performans ile güç konusunda endişelenmiyorsanız günlük geliştirme için en uygun seçenektir.
lunch
komutunu herhangi bir bağımsız değişken olmadan çalıştırırsanız yaygın hedeflerin listesi sağlanır.
Bu sayfadaki bilgileri ve Cihaz kod adları bölümünde belirli Google donanımlarını temsil eden kod adlarını kullanarak hedef dizesinin öğelerini bir araya getirerek kendi hedef dizelerinizi de oluşturabilirsiniz.
Mevcut hedefi görüntüleme
Mevcut öğle yemeği ayarlarını görmek için şu komutu çalıştırın:
$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"
Kodu oluşturma
Hedefinizi oluşturmak için aşağıdaki komutu çalıştırın. İş istasyonunuzun özelliklerine bağlı olarak ilk derleme bir saatten kısa veya birkaç saat sürebilir. Sonraki derlemeler çok daha kısa sürer.
m
Derlemenizin çıktısı $OUT_DIR
içinde görünür. Farklı hedefler oluşturursanız her hedef derlemesi $OUT_DIR
içinde görünür.
m
komutu ağacın en üstünden başlayarak oluşturulur. Bu nedenle, m
komutunu alt dizinlerden çalıştırabilirsiniz. TOP
ortam değişkeni ayarlanmışsa m
komutu bu değişkeni kullanır. TOP
ayarlanmamışsa m
komutu, ağacın en üstünü bulmaya çalışarak ağacı geçerli dizinden itibaren arar.
m
komutu, -jN
bağımsız değişkeniyle paralel görevleri işleyebilir. -j
bağımsız değişkeni sağlamazsanız derleme sistemi, sisteminiz için optimum olduğunu düşündüğü paralel görev sayısını otomatik olarak seçer.
m
komut satırınızda modül adlarını listeleyerek tam cihaz görüntüsü yerine belirli modüller oluşturabilirsiniz. Ayrıca, m
komutu hedef adı verilen bazı sahte hedefler sağlar. Örneğin, m nothing
herhangi bir şey oluşturmaz ancak derleme yapısını ayrıştırır ve doğrular. Geçerli hedeflerin listesi için m help
yazın.
Yapı hatalarını giderme (8.0 veya önceki sürümler)
AOSP 8 veya daha eski bir sürümü oluşturuyorsanız Java sürümünüzle ilgili bir sorunla karşılaşıldığında m
işlemi iptal edebilir. Örneğin, şu mesajı alabilirsiniz:
************************************************************
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ümler aşağıda verilmiştir:
- Set Up for AOSP development (2.3 - 8.0) (AOSP geliştirme için kurulum (2.3 - 8.0)) bölümündeki JDK bölümlerinde belirtildiği gibi doğru JDK'yı yüklemediniz.
- Yolunuzda daha önce yüklenmiş başka bir JDK görünüyor. Yolunuzun başına doğru JDK'yı ekleyin veya sorunlu JDK'yı kaldırın.