Google, Siyah topluluklar için ırksal eşitliği ilerletmeye kararlıdır. Nasıl olduğunu gör.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Bir Yapım Ortamı Oluşturma

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 veya macOS kullanmalısınız; Windows altında bina şu anda desteklenmemektedir.

Tüm kod inceleme ve kod güncelleme işlemine genel bir bakış için, bkz. Düzeltme Eki Yaşamı .

Şube seçimi

Derleme ortamı için bazı gereksinimler, derlemeyi planladığınız kaynak kodunun sürümüne göre belirlenir. Kullanılabilir dalların tam listesi için bkz. Sayı Oluşturma . Ayrıca, en son kaynak kodunu ( master adlandırılır) indirmeyi ve oluşturmayı da seçebilirsiniz; bu durumda, depoyu başlattığınızda şube belirtimini atlayabilirsiniz.

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

Linux oluşturma ortamı kurma

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

Android sürümü, Ubuntu LTS (14.04) ve Debian testi üzerinde evde rutin olarak test edildi. Diğer dağıtımların çoğunda gerekli oluşturma araçları bulunmalıdır.

master dal dahil Gingerbread (2.3.x) ve daha yüksek sürümler için 64 bit ortam gereklidir. 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 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Gerekli paketleri yükleme (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 gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

Gerekli paketleri yükleme (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 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 yükleme (Ubuntu 10.04-11.10)

Ubuntu 10.04-11.10 üzerinde oluşturma artık desteklenmemektedir, ancak eski AOSP 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 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 korunan bir varsayılan udev kural seti 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 saklanır.

Birden fazla 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 bozuksa tüm dosyalar yeniden oluşturulabilir.

Bunu ayarlamak için, OUT_DIR_COMMON_BASE değişkenini çıktı dizinlerinizin saklanacağı yere işaret edin.

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

Her ayrı kaynak ağacın çıktı dizini, kaynak ağacın bulunduğu dizinden sonra adlandırılır. Örneğin, kaynak ağaçlarınız /source/master1 ve /source/master2 varsa ve OUT_DIR_COMMON_BASE /output olarak ayarlanmışsa, çıkış dizinleri /output/master1 ve /output/master2 .

Kaynak ağaçların çıktı dizinini önceden tahmin edilemeyen sonuçlarla paylaşacağı için aynı ada sahip dizinlerde birden fazla kaynak ağacının saklanmasını önleyin. Bu yalnızca master dal da dahil olmak üzere Jelly Bean (4.1) ve daha yüksek sürümlerde desteklenir.

Bir macOS oluşturma ortamı kurma

Varsayılan yüklemede, macOS büyük / küçük harf korumalı ancak büyük / küçük harf duyarlı olmayan bir dosya sisteminde çalışır. Bu tür dosya sistemi Git tarafından desteklenmez ve bazı Git komutlarının ( git status gibi) anormal davranmasına neden olur. Bu nedenle, her zaman büyük / küçük harfe duyarlı bir dosya sisteminde AOSP kaynak dosyalarıyla çalışmanızı öneririz. Bu, aşağıda tartışılan bir disk görüntüsü kullanılarak oldukça kolay bir şekilde yapılabilir.

Uygun dosya sistemi mevcut olduğunda, master dalın modern bir macOS ortamında oluşturulması basittir. Önceki şubeler için bazı ek araçlar ve SDK'lar gerekir.

Büyük / küçük harfe duyarlı bir disk görüntüsü oluşturma

Bir disk görüntüsü kullanarak mevcut macOS ortamınızda büyük / küçük harfe duyarlı bir dosya sistemi oluşturabilirsiniz. Görüntüyü oluşturmak için Disk İzlencesi'ni başlatın ve Yeni Görüntü'yü seçin. 250 GB'lık bir boyut, yapıyı tamamlamak için minimumdur; gelecekteki büyüme için daha fazla alan en iyisidir. Seyrek görüntüler kullanmak gerektiğinde büyümeye izin verirken yerden tasarruf sağlar. Birim biçimi olarak kaydedilmiş, büyük / küçük harfe duyarlı seçin.

Dosya sistemini aşağıdaki komutla bir kabuktan da oluşturabilirsiniz:

hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 250g ~/android.dmg.sparseimage

Bu, monte edildiğinde Android geliştirme için gerekli biçimlendirmeye sahip bir sürücü görevi gören bir .dmg.sparseimage dosyası oluşturur.

Daha sonra daha büyük bir birime ihtiyacınız varsa, seyrek görüntüyü aşağıdaki komutla yeniden boyutlandırabilirsiniz:

hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage

Ana dizininizde depolanan android.dmg.sparseimage adlı bir disk görüntüsü için ~/.bash_profile yardımcı işlevler ekleyebilirsiniz:

  • mountAndroid görüntüyü bağlamak için:
    # mount the android file image
    mountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
  • umountAndroid yürüttüğünüzde bağlantısını umountAndroid :
    # unmount the android file image
    umountAndroid() { hdiutil detach /Volumes/android; }

android birimini monte ettikten sonra, tüm işinizi orada yaparsınız. Harici bir sürücüde olduğu gibi çıkarabilirsiniz (bağlantısını kesin).

Xcode ve diğer paketleri kurma

  1. Xcode komut satırı araçlarını yükleyin:
    xcode-select --install
    MacOS'un eski sürümleri (10.8 veya daha düşük) için Xcode'u Apple geliştirici sitesinden yüklemelisiniz. Apple geliştiricisi olarak kayıtlı değilseniz, indirmek için bir Apple Kimliği oluşturmanız gerekir.
  2. Paket yönetimi için MacPorts veya Homebrew'u yükleyin.
  3. İlişkili dizinin ~/.bash_profile dosyanızdaki ~/.bash_profile olduğundan emin olun:
    1. MacPorts - /opt/local/bin /usr/bin önce görünmelidir:
      export PATH=/opt/local/bin:$PATH
    2. Homebrew - /usr/local/bin :
      export PATH=/usr/local/bin:$PATH
    3. MacPorts için sorun:
      POSIXLY_CORRECT=1 sudo port install git gnupg
    4. Homebrew için sorun:
      brew install git gnupg2

    Dosya tanımlayıcı sınırı belirleme

    MacOS'ta, eşzamanlı açık dosya tanımlayıcılarının sayısındaki varsayılan sınır çok düşüktür ve oldukça paralel bir oluşturma işlemi bu sınırı aşabilir. Sınırı artırmak için ~/.bash_profile dosyanıza aşağıdaki satırları ekleyin:

    # set the number of open files to be 1024
    ulimit -S -n 1024

    Sonraki: Kaynağı indir

    Yapım ortamınız iyi! Kaynağı indirmeye devam edin .