Google 致力于为黑人社区推动种族平等。查看具体举措
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Bir Yapı 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 sürecine genel bir bakış için bkz . Bir Yamanın Ö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 adlandırılır) indirip oluşturmayı seçebilirsiniz, bu durumda depoyu başlattığınızda dal belirtimini atlarsınız.

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

Linux derleme ortamı kurma

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

Android yapısı, Ubuntu LTS (14.04) ve Debian testlerinde şirket içinde 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 master dal dahil 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 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 sürümlerde veya son sürümlerde desteklenmemektedir.

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 derleme 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 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 sağlanan varsayılan bir udev kuralları seti kurun .

Ayrı bir çıktı dizini kullanma

Varsayılan olarak, her derlemenin çıktısı, eşleşen kaynak ağacının out/ alt dizininde saklanır.

Birden çok depolama aygıtına sahip bazı makinelerde, kaynak dosyalar ve çıktı ayrı birimlerde depolanırken derlemeler daha hızlıdır. Ek performans için, çıktı, çökme sağlamlığı yerine hız için optimize edilmiş bir dosya sisteminde depolanabilir, çünkü dosya sistemi bozulursa 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 ayrı kaynak ağacının çıktı dizini, kaynak ağacını 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, çıkış 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ı bir çıktı dizinini paylaşarak öngörülemeyen sonuçlara yol açacaktır. Bu, master dal dahil olmak üzere yalnızca Jelly Bean (4.1) ve sonraki sürümlerde desteklenir.

MacOS derleme ortamı kurma

Varsayılan bir kurulumda macOS, büyük / küçük harfe duyarlı ancak büyük / küçük harfe duyarlı olmayan bir dosya sisteminde çalışır. Bu tür bir dosya sistemi Git tarafından desteklenmez ve bazı Git komutlarının ( git status gibi) anormal şekilde davranmasına neden olur. Bu nedenle, her zaman AOSP kaynak dosyalarıyla büyük / küçük harfe duyarlı bir dosya sisteminde ç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, modern bir macOS ortamında master dalı oluşturmak kolaydır. Daha önceki şubeler bazı ek araçlar ve SDK'lar gerektirir.

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ü öğesini seçin. Oluşturmayı tamamlamak için minimum 250 GB boyut; daha fazla alan, gelecekteki büyüme için en iyisidir. Seyrek görüntülerin kullanılması, gerektiğinde büyümeye izin verirken yerden tasarruf sağlar. Hacim biçimi olarak günlük tutulan 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, bağlandığında, 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 olursa, 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 çalıştırdığınızda görüntüyü bağlamak için:
    # mount the android file image
    mountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
  • umountAndroid çalıştırdığınızda bağlantısını umountAndroid :
    # unmount the android file image
    umountAndroid() { hdiutil detach /Volumes/android; }

android birimini taktıktan sonra, tüm işinizi orada yaparsınız. Harici bir sürücüde yaptığınız gibi onu çıkarabilirsiniz (bağlantısını kesebilirsiniz).

Xcode ve diğer paketleri yükleme

  1. Xcode komut satırı araçlarını yükleyin:
    xcode-select --install
    macOS'in (10.8 veya daha düşük) eski sürümleri için, Apple geliştirici sitesinden Xcode'u yüklemeniz gerekir. 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 kurun.
  3. İlişkili dizinin ~/.bash_profile dosyanız içindeki ~/.bash_profile olduğundan emin olun:
    1. MacPorts - /opt/local/bin , /usr/bin :
      export PATH=/opt/local/bin:$PATH
      'dan önce görünmelidir
    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 sayı:
      brew install git gnupg2

    Bir dosya tanımlayıcı sınırı belirleme

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

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

    Sonraki: Kaynağı indirin

    İnşa ortamınız gitmek için iyi! Kaynağı indirmeye devam edin .