Tworzenie środowiska budowania

W tej sekcji opisano, jak skonfigurować lokalne środowisko pracy w celu kompilowania plików źródłowych systemu Android. Musisz używać Linuksa; budowanie w systemie MacOS lub Windows nie jest obsługiwane. Należy pamiętać, że istotną zmianę w /usr/bin/python binarnym, jak również.

Aby otrzymać przegląd całego kodu przeglądu i aktualizacji kodu procesu zobaczyć życie plastra .

Wybór oddziału

Niektóre wymagania dotyczące środowiska kompilacji są określane przez wersję kodu źródłowego, którą planujesz skompilować. Aby uzyskać pełną listę dostępnych oddziałów, patrz numery kompilacji . Można również zdecydować się na pobranie i zbudować najnowszy kod źródłowy (zwany master ), w takim przypadku po prostu pominąć specyfikację oddział podczas inicjowania repozytorium.

Po wybraniu gałęzi postępuj zgodnie z odpowiednimi instrukcjami poniżej, aby skonfigurować środowisko kompilacji.

Konfigurowanie środowiska kompilacji Linux

Instrukcje te mają zastosowanie do wszystkich oddziałów, w tym master .

Kompilacja Androida jest rutynowo testowana w domu na Ubuntu LTS (14.04) i testach Debiana. Większość innych dystrybucji powinna mieć dostępne wymagane narzędzia do kompilacji.

W przypadku pierników (2.3.x) i wyższych, w tym wersji master gałęzi, wymagane jest środowisko 64-bitowym. Starsze wersje można kompilować na systemach 32-bitowych.

Instalowanie wymaganych pakietów (Ubuntu 18.04)

Potrzebujesz 64-bitowej wersji Ubuntu.

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

Instalowanie wymaganych pakietów (Ubuntu 14.04)

Potrzebujesz 64-bitowej wersji Ubuntu (zalecane 14.04).

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

Instalowanie wymaganych pakietów (Ubuntu 12.04)

Możesz użyć Ubuntu 12.04 do budowania starszych wersji Androida. Wersja 12.04 nie jest obsługiwana przez master lub ostatnich wydaniach.

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

Instalowanie wymaganych pakietów (Ubuntu 10.04-11.10)

Budowanie na Ubuntu 10.04-11.10 nie jest już obsługiwane, ale może być przydatne do budowania starszych wersji AOSP.

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

W Ubuntu 10.10:

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

W Ubuntu 11.10:

sudo apt-get install libx11-dev:i386

Konfiguracja dostępu USB

Zainstalować domyślny zestaw społeczności utrzymane z udev reguł dla wszystkich urządzeń z systemem Android, postępując zgodnie z instrukcjami wyświetlanymi na skonfigurować urządzenie do rozwoju .

Korzystanie z oddzielnego katalogu wyjściowego

Domyślnie wyjście z każdej wersji jest przechowywany w out/ podkatalogu drzewa dopasowanie źródłowego.

Na niektórych komputerach z wieloma urządzeniami pamięci masowej kompilacje są szybsze w przypadku przechowywania plików źródłowych i danych wyjściowych na osobnych woluminach. Aby uzyskać dodatkową wydajność, dane wyjściowe można przechowywać w systemie plików zoptymalizowanym pod kątem szybkości, a nie odporności na awarie, ponieważ wszystkie pliki można ponownie wygenerować, jeśli system plików jest uszkodzony.

Aby to skonfigurować, eksportuj OUT_DIR_COMMON_BASE zmienną do punktu do miejsca, w którym będą przechowywane Twoje katalogi wyjściowe.

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

Katalog wyjściowy dla każdego oddzielnego drzewa źródłowego nosi nazwę katalogu zawierającego drzewo źródłowe. Na przykład, jeśli masz drzew źródło /source/master1 i /source/master2 a jeśli OUT_DIR_COMMON_BASE jest ustawiony /output , katalogi wyjściowe są /output/master1 i /output/master2 .

Unikaj posiadania wielu drzew źródłowych przechowywanych w katalogach o tej samej nazwie, ponieważ drzewa źródłowe ostatecznie współdzielą katalog wyjściowy z nieprzewidywalnymi wynikami. To jest obsługiwana tylko w Jelly Bean (4.1) i wyższym, w tym master oddziału.

Dalej: Pobierz źródło

Twoje środowisko kompilacji jest gotowe! Przystąpić do pobierania źródła .