Cette section décrit comment configurer votre environnement de travail local pour générer les fichiers source 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 un aperçu de l'ensemble du processus de révision et de mise à jour du code, consultez Life of a Patch .
Choisir une succursale
Certaines exigences pour 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, voir Numéros de build . Vous pouvez également choisir de télécharger et de construire le dernier code source (appelé master
), 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 construction.
Configuration d'un environnement de construction Linux
Ces instructions s'appliquent à toutes les branches, y compris master
.
La version Android est régulièrement testée en interne sur les tests 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 master
, 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)
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 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
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 gcc-multilib g++-multilib 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 plus anciennes d'Android. La version 12.04 n'est pas prise en charge sur les versions master
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 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
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 construire 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 g++-multilib 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 .
Utilisation d'un répertoire de sortie séparé
Par défaut, la sortie de chaque construction 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 construction dans le sous-répertoire out_mytarget/
de l'arborescence source. Lorsque vous utilisez la même arborescence source pour générer plusieurs cibles, il est recommandé d'utiliser un OUT_DIR
distinct pour chaque cible.
Sur certaines machines avec 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 au lieu de la résistance aux pannes, 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 /source/master1
et /source/master2
et si OUT_DIR_COMMON_BASE
est défini sur /output
, les répertoires de sortie sont /output/master1
et /output/master2
.
Évitez d'avoir plusieurs arborescences source stockées dans des répertoires portant le même nom, car les arborescences source 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 supérieur, y compris la branche master
.
Suivant : Télécharger la source
Votre environnement de construction est prêt ! Procédez au téléchargement de la source .