W tej sekcji opisano, jak skonfigurować lokalne środowisko pracy do tworzenia plików źródłowych systemu Android. Musisz używać Linuksa; budowanie w systemie MacOS lub Windows nie jest obsługiwane. Pamiętaj również o ważnej zmianie w pliku binarnym /usr/bin/python
.
Aby zapoznać się z omówieniem całego procesu przeglądu i aktualizacji kodu, zobacz Życie poprawki .
Wybór oddziału
Niektóre wymagania dotyczące środowiska kompilacji są określane przez wersję kodu źródłowego, który planujesz skompilować. Aby uzyskać pełną listę dostępnych gałęzi, zobacz Numery kompilacji . Możesz także pobrać i zbudować najnowszy kod źródłowy (nazywany master
), w takim przypadku po prostu pomijasz specyfikację gałęzi podczas inicjalizacji repozytorium.
Po wybraniu oddziału postępuj zgodnie z odpowiednimi instrukcjami poniżej, aby skonfigurować środowisko kompilacji.
Konfigurowanie środowiska kompilacji Linux
Te instrukcje dotyczą wszystkich gałęzi, 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 wersji Gingerbread (2.3.x) i wyższych, w tym gałęzi master
, wymagane jest środowisko 64-bitowe. Starsze wersje można kompilować na systemach 32-bitowych.
Instalowanie wymaganych pakietów (Ubuntu 18.04 i nowsze)
Potrzebujesz 64-bitowej wersji Ubuntu.
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
Instalowanie wymaganych pakietów (Ubuntu 14.04)
Potrzebujesz 64-bitowej wersji Ubuntu (zalecana jest wersja 14.04).
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
Instalowanie wymaganych pakietów (Ubuntu 12.04)
Możesz użyć Ubuntu 12.04 do tworzenia starszych wersji Androida. Wersja 12.04 nie jest obsługiwana w wersjach master
ani najnowszych.
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
Instalowanie wymaganych pakietów (Ubuntu 10.04-11.10)
Tworzenie 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 mingw32 tofrodos python-markdown libxml2-utils xsltproc
W systemie Ubuntu 10.10:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
W systemie Ubuntu 11.10:
sudo apt-get install libx11-dev:i386
Konfigurowanie dostępu USB
Zainstaluj utrzymywany przez społeczność domyślny zestaw reguł udev
dla wszystkich urządzeń z Androidem, postępując zgodnie z instrukcjami w artykule Konfigurowanie urządzenia do programowania .
Korzystanie z oddzielnego katalogu wyjściowego
Domyślnie dane wyjściowe każdej kompilacji są przechowywane w podkatalogu out/
odpowiedniego drzewa źródłowego. Możesz to zmienić, eksportując zmienną środowiskową OUT_DIR
. Na przykład:
export OUT_DIR=out_mytarget
Spowoduje to, że dane wyjściowe kompilacji zostaną zapisane w podkatalogu out_mytarget/
drzewa źródłowego. W przypadku używania tego samego drzewa źródłowego do budowania dla wielu celów zaleca się użycie oddzielnego OUT_DIR
dla każdego celu.
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 zamiast odporności na awarie, ponieważ wszystkie pliki można zregenerować, jeśli system plików jest uszkodzony.
Aby to skonfigurować, wyeksportuj zmienną OUT_DIR_COMMON_BASE
, aby wskazywała lokalizację, w której będą przechowywane 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 drzewa źródłowe /source/master1
i /source/master2
i jeśli OUT_DIR_COMMON_BASE
jest ustawione na /output
, katalogi wyjściowe to /output/master1
i /output/master2
.
Unikaj przechowywania wielu drzew źródłowych w katalogach o tej samej nazwie, ponieważ drzewa źródłowe skończyłyby na współdzieleniu katalogu wyjściowego, z nieprzewidywalnymi skutkami. Jest to obsługiwane tylko w Jelly Bean (4.1) i nowszych, w tym w gałęzi master
.
Dalej: Pobierz źródło
Twoje środowisko kompilacji jest gotowe! Przejdź do pobierania źródła .