In diesem Abschnitt wird beschrieben, wie Sie Ihre lokale Arbeitsumgebung zum Erstellen der Android-Quelldateien einrichten. Sie müssen Linux verwenden; Das Erstellen unter MacOS oder Windows wird nicht unterstützt. Denken Sie auch an die wichtige Änderung an der /usr/bin/python
-Binärdatei.
Eine Übersicht über den gesamten Codeüberprüfungs- und Codeaktualisierungsprozess finden Sie unter Lebensdauer eines Patches .
Auswahl einer Filiale
Einige Anforderungen an die Build-Umgebung werden durch die Version des Quellcodes bestimmt, den Sie kompilieren möchten. Eine vollständige Liste der verfügbaren Verzweigungen finden Sie unter Build-Nummern . Sie können auch den neuesten Quellcode (namens master
) herunterladen und erstellen. In diesem Fall lassen Sie einfach die Branch-Angabe bei der Initialisierung des Repositorys weg.
Nachdem Sie einen Zweig ausgewählt haben, befolgen Sie die entsprechenden Anweisungen unten, um Ihre Build-Umgebung einzurichten.
Einrichten einer Linux-Build-Umgebung
Diese Anweisungen gelten für alle Branches, einschließlich master
.
Der Android-Build wird routinemäßig intern auf Ubuntu LTS (14.04) und Debian-Tests getestet. Die meisten anderen Distributionen sollten die erforderlichen Build-Tools zur Verfügung haben.
Für Gingerbread (2.3.x) und höhere Versionen, einschließlich des master
-Zweigs, ist eine 64-Bit-Umgebung erforderlich. Ältere Versionen können auf 32-Bit-Systemen kompiliert werden.
Erforderliche Pakete installieren (Ubuntu 18.04)
Sie benötigen eine 64-Bit-Version von 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
Erforderliche Pakete installieren (Ubuntu 14.04)
Sie benötigen eine 64-Bit-Version von Ubuntu (14.04 wird empfohlen).
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
Erforderliche Pakete installieren (Ubuntu 12.04)
Sie können Ubuntu 12.04 verwenden, um ältere Versionen von Android zu erstellen. Version 12.04 wird von master
oder neueren Versionen nicht unterstützt.
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
Erforderliche Pakete installieren (Ubuntu 10.04-11.10)
Das Erstellen auf Ubuntu 10.04-11.10 wird nicht mehr unterstützt, kann aber zum Erstellen älterer Versionen von AOSP nützlich sein.
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
Unter Ubuntu 10.10:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
Unter Ubuntu 11.10:
sudo apt-get install libx11-dev:i386
USB-Zugriff konfigurieren
Installieren Sie einen von der Community verwalteten Standardsatz von udev
-Regeln für alle Android-Geräte, indem Sie die Anweisungen zum Einrichten eines Geräts für die Entwicklung befolgen.
Verwendung eines separaten Ausgabeverzeichnisses
Standardmäßig wird die Ausgabe jedes Builds im Unterverzeichnis out/
des passenden Quellbaums gespeichert. Sie können dies überschreiben, indem Sie die Umgebungsvariable OUT_DIR
exportieren. Zum Beispiel:
export OUT_DIR=out_mytarget
Dadurch wird die Ausgabe des Builds im Unterverzeichnis out_mytarget/
des Quellbaums gespeichert. Wenn Sie denselben Quellbaum zum Erstellen für mehrere Ziele verwenden, wird empfohlen, für jedes Ziel ein separates OUT_DIR
zu verwenden.
Auf einigen Computern mit mehreren Speichergeräten sind Builds schneller, wenn die Quelldateien und die Ausgabe auf separaten Volumes gespeichert werden. Für zusätzliche Leistung kann die Ausgabe auf einem Dateisystem gespeichert werden, das auf Geschwindigkeit statt Absturzfestigkeit optimiert ist, da alle Dateien neu generiert werden können, wenn das Dateisystem beschädigt ist.
Um dies einzurichten, exportieren Sie die Variable OUT_DIR_COMMON_BASE
so, dass sie auf den Speicherort zeigt, an dem Ihre Ausgabeverzeichnisse gespeichert werden.
export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>
Das Ausgabeverzeichnis für jeden einzelnen Quellbaum wird nach dem Verzeichnis benannt, das den Quellbaum enthält. Wenn Sie beispielsweise Quellbäume /source/master1
und /source/master2
und OUT_DIR_COMMON_BASE
auf /output
gesetzt ist, sind die Ausgabeverzeichnisse /output/master1
und /output/master2
.
Vermeiden Sie es, mehrere Quellbäume in Verzeichnissen mit demselben Namen zu speichern, da die Quellbäume am Ende ein gemeinsames Ausgabeverzeichnis mit unvorhersehbaren Ergebnissen haben würden. Dies wird nur auf Jelly Bean (4.1) und höher unterstützt, einschließlich des master
Zweigs.
Weiter: Laden Sie die Quelle herunter
Ihre Build-Umgebung ist startklar! Fahren Sie mit dem Herunterladen der Quelle fort.