Bir yapı ortamı oluşturmak

Bu bölümde, Android kaynak dosyalarını oluşturmak için yerel çalışma ortamınızı nasıl kuracağınız açıklanmaktadır. Linux kullanmalısınız; MacOS veya Windows altında derleme desteklenmez. /usr/bin/python ikili dosyasındaki önemli değişikliği de unutmayın.

Tüm kod inceleme ve kod güncelleme sürecine genel bir bakış için bkz. Bir yamanın ömrü .

şube seçimi

Yapı ortamı için bazı gereksinimler, derlemeyi planladığınız kaynak kodun sürümü tarafından belirlenir. Mevcut şubelerin tam listesi için bkz. Yapı Numaraları . Ayrıca en son kaynak kodunu ( master olarak adlandırılır) indirmeyi ve oluşturmayı da seçebilirsiniz, bu durumda depoyu başlattığınızda şube belirtimini atlarsınız.

Bir şube seçtikten sonra, yapı ortamınızı ayarlamak için aşağıdaki uygun talimatları izleyin.

Bir Linux derleme ortamı kurma

Bu talimatlar, master dahil tüm şubeler için geçerlidir.

Android derlemesi, şirket içinde Ubuntu LTS (14.04) ve Debian testlerinde rutin olarak test edilir. Diğer dağıtımların çoğu, gerekli derleme araçlarına sahip olmalıdır.

Gingerbread (2.3.x) ve daha yüksek sürümler için, master dal da dahil olmak üzere, 64 bitlik bir ortam gereklidir. Daha eski sürümler 32 bit sistemlerde derlenebilir.

Gerekli paketleri kurmak (Ubuntu 18.04 ve üstü)

Ubuntu'nun 64 bit sürümüne ihtiyacınız var.

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Gerekli paketleri kurma (Ubuntu 14.04)

Ubuntu'nun 64 bit sürümüne ihtiyacınız var (14.04 önerilir).

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

Gerekli paketleri kurma (Ubuntu 12.04)

Android'in eski sürümlerini oluşturmak için Ubuntu 12.04'ü kullanabilirsiniz. Sürüm 12.04, master veya son sürümlerde desteklenmez.

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Gerekli paketleri kurmak (Ubuntu 10.04-11.10)

Ubuntu 10.04-11.10 üzerinde geliştirme artık desteklenmemektedir, ancak AOSP'nin eski sürümlerini oluşturmak için yararlı olabilir.

sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc

Ubuntu 10.10'da:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

Ubuntu 11.10'da:

sudo apt-get install libx11-dev:i386

USB erişimini yapılandırma

Bir cihazı geliştirme için ayarlama yönergelerini izleyerek tüm Android cihazlar için topluluk tarafından tutulan varsayılan bir udev kuralları kümesi kurun.

Ayrı bir çıktı dizini kullanma

Varsayılan olarak, her derlemenin çıktısı, eşleşen kaynak ağacın out/ alt dizininde depolanır. OUT_DIR ortam değişkenini dışa aktararak bunu geçersiz kılabilirsiniz. Örneğin:

export OUT_DIR=out_mytarget

Bu, yapı çıktısının kaynak ağacın out_mytarget/ alt dizininde depolanmasına neden olur. Birden çok hedef oluşturmak için aynı kaynak ağacı kullanırken, her hedef için ayrı bir OUT_DIR kullanılması önerilir.

Birden çok depolama aygıtına sahip bazı makinelerde, kaynak dosyaları ve çıktıyı ayrı birimlerde depolarken derlemeler daha hızlıdır. Ek performans için çıktı, kilitlenme sağlamlığı yerine hız için optimize edilmiş bir dosya sisteminde saklanabilir, çünkü dosya sistemi bozulduğunda tüm dosyalar yeniden oluşturulabilir.

Bunu ayarlamak için, OUT_DIR_COMMON_BASE değişkenini çıktı dizinlerinizin depolanacağı konumu gösterecek şekilde dışa aktarın.

export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>

Her bir ayrı kaynak ağacın çıktı dizini, kaynak ağacı tutan dizinin adını alır. Örneğin, /source/master1 ve /source/master2 kaynak ağaçlarınız varsa ve OUT_DIR_COMMON_BASE , /output olarak ayarlanmışsa, çıktı dizinleri /output/master1 ve /output/master2 şeklindedir.

Aynı ada sahip dizinlerde depolanan birden fazla kaynak ağacına sahip olmaktan kaçının, çünkü kaynak ağaçlar bir çıktı dizini paylaşarak öngörülemeyen sonuçlarla sonuçlanacaktır. Bu, master dal da dahil olmak üzere yalnızca Jelly Bean (4.1) ve sonraki sürümlerde desteklenir.

Sonraki: Kaynağı indirin

Yapı ortamınız kullanıma hazır! Kaynağı indirmeye devam edin.