Bu bölüm, Android kaynak dosyalarını oluşturmak için yerel çalışma ortamınızı nasıl kuracağınızı açıklar. Linux kullanmalısınız; MacOS veya Windows altında oluşturma 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 Yama Ömrü .
Şube seçimi
Derleme ortamı için bazı gereksinimler, derlemeyi planladığınız kaynak kodun sürümüne göre belirlenir. Kullanılabilir dalların tam listesi için bkz. Yapı Numaraları . Ayrıca, en son kaynak kodunu ( master
olarak adlandırılır) indirip oluşturmayı da seçebilirsiniz; bu durumda, depoyu başlattığınızda dal belirtimini atlarsınız.
Bir dal seçtikten sonra, yapı ortamınızı kurmak için aşağıdaki uygun talimatları izleyin.
Linux yapı ortamı kurma
Bu talimatlar master
dahil tüm dallar için geçerlidir.
Android yapısı rutin olarak evde Ubuntu LTS (14.04) ve Debian testlerinde test edilir. Diğer dağıtımların çoğu, gerekli derleme araçlarına sahip olmalıdır.
master
dal dahil Gingerbread (2.3.x) ve daha yüksek sürümler için 64 bitlik bir ortam gereklidir. Daha eski sürümler 32 bit sistemlerde derlenebilir.
Gerekli paketleri yükleme (Ubuntu 18.04)
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 gcc-multilib g++-multilib 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)
64 bit Ubuntu 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 gcc-multilib g++-multilib 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
sürümlerde 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 g++-multilib 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 kurma (Ubuntu 10.04-11.10)
Ubuntu 10.04-11.10 üzerine inşa etmek artık desteklenmemektedir, ancak AOSP'nin eski sürümlerini oluşturmak için faydalı 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 g++-multilib 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
Geliştirme için bir cihaz kurma talimatlarını izleyerek tüm Android cihazlar için topluluk tarafından sürdürülen varsayılan bir udev
kuralları kümesi yükleyin.
Ayrı bir çıktı dizini kullanma
Varsayılan olarak, her yapının çı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, derlemenin çıktısının kaynak ağacın out_mytarget/
alt dizininde saklanması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ılar ayrı birimlerde depolanırken derlemeler daha hızlıdır. Ek performans için çıktı, dosya sistemi bozulursa tüm dosyalar yeniden oluşturulabileceğinden, kilitlenme sağlamlığı yerine hız için optimize edilmiş bir dosya sisteminde saklanabilir.
Bunu ayarlamak için, çıktı dizinlerinizin depolanacağı konumu işaret etmek için OUT_DIR_COMMON_BASE
değişkenini dışa aktarın.
export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>
Her bir ayrı kaynak ağacı için çıktı dizini, kaynak ağacı tutan dizinden sonra adlandırılı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
.
Aynı ada sahip dizinlerde depolanan birden çok kaynak ağacına sahip olmaktan kaçının, çünkü kaynak ağaçlar tahmin edilemeyen sonuçlarla bir çıktı dizinini paylaşacaktır. Bu, master
dal 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.