Établir un environnement de construction

Cette section décrit comment configurer votre environnement de travail local pour créer les fichiers sources Android. Vous devez utiliser Linux ; la construction sous MacOS ou Windows n'est pas prise en charge. Gardez également à l’esprit le changement important apporté au binaire /usr/bin/python .

Pour une présentation de l'ensemble du processus de révision et de mise à jour du code, consultez Durée de vie d'un correctif .

Choisir une succursale

Certaines exigences relatives à l'environnement de génération sont déterminées par la version du code source que vous envisagez de compiler. Pour une liste complète des branches disponibles, consultez Numéros de build . Vous pouvez également choisir de télécharger et de créer le dernier code source (appelé main ), auquel cas vous omettez simplement la spécification de branche lorsque vous initialisez le référentiel.

Après avoir sélectionné une branche, suivez les instructions appropriées ci-dessous pour configurer votre environnement de build.

Configuration d'un environnement de build Linux

Ces instructions s'appliquent à toutes les branches, y compris main .

La version Android est régulièrement testée en interne sur Ubuntu LTS (14.04) et Debian. La plupart des autres distributions devraient disposer des outils de construction requis.

Pour Gingerbread (2.3.x) et les versions supérieures, y compris la branche main , un environnement 64 bits est requis. Les anciennes versions peuvent être compilées sur des systèmes 32 bits.

Installation des packages requis (Ubuntu 18.04 et versions ultérieures)

Vous avez besoin d'une version 64 bits d'Ubuntu.

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Installation des packages requis (Ubuntu 14.04)

Vous avez besoin d'une version 64 bits d'Ubuntu (14.04 est recommandé).

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

Installation des packages requis (Ubuntu 12.04)

Vous pouvez utiliser Ubuntu 12.04 pour créer des versions antérieures d'Android. La version 12.04 n'est pas prise en charge sur les versions main ou récentes.

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

Installation des packages requis (Ubuntu 10.04-11.10)

La construction sur Ubuntu 10.04-11.10 n'est plus prise en charge, mais peut être utile pour créer des versions plus anciennes d'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

Sur Ubuntu 10.10 :

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

Sur Ubuntu 11.10 :

sudo apt-get install libx11-dev:i386

Configuration de l'accès USB

Installez un ensemble de règles udev par défaut géré par la communauté pour tous les appareils Android en suivant les instructions pour configurer un appareil pour le développement .

Utiliser un répertoire de sortie distinct

Par défaut, la sortie de chaque build est stockée dans le sous-répertoire out/ de l'arborescence source correspondante. Vous pouvez remplacer cela en exportant la variable d'environnement OUT_DIR . Par exemple:

export OUT_DIR=out_mytarget

Cela entraînera le stockage de la sortie de la build dans le sous-répertoire out_mytarget/ de l'arborescence source. Lorsque vous utilisez la même arborescence source pour créer plusieurs cibles, il est recommandé d'utiliser un OUT_DIR distinct pour chaque cible.

Sur certaines machines dotées de plusieurs périphériques de stockage, les builds sont plus rapides lors du stockage des fichiers source et de la sortie sur des volumes séparés. Pour des performances supplémentaires, la sortie peut être stockée sur un système de fichiers optimisé pour la vitesse plutôt que pour la robustesse en cas de crash, car tous les fichiers peuvent être régénérés si le système de fichiers est corrompu.

Pour configurer cela, exportez la variable OUT_DIR_COMMON_BASE pour pointer vers l'emplacement où vos répertoires de sortie seront stockés.

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

Le répertoire de sortie de chaque arborescence source distincte porte le nom du répertoire contenant l'arborescence source. Par exemple, si vous avez des arborescences sources /source/main1 et /source/main2 et si OUT_DIR_COMMON_BASE est défini sur /output , les répertoires de sortie sont /output/main1 et /output/main2 .

Évitez de stocker plusieurs arborescences sources dans des répertoires portant le même nom, car les arborescences sources finiraient par partager un répertoire de sortie, avec des résultats imprévisibles. Ceci n'est pris en charge que sur Jelly Bean (4.1) et versions ultérieures, y compris la branche main .

Suivant : Téléchargez la source

Votre environnement de construction est prêt à fonctionner ! Procédez au téléchargement de la source .