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
veyaaosp_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
veyahusky
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:
- JDK bölümleri AOSP geliştirme için kurulum (2.3 - 8.0) .
- Yolunuzda görünen, önceden yüklenmiş başka bir JDK vardır. Başa JDK'yı yolunuzun başına düzeltin veya sorunlu JDK'yı kaldırın.