Suivez les instructions de cette page pour compiler Android.
Configurer votre environnement de compilation
Depuis votre répertoire de travail, générez le script envsetup.sh
à définir
votre environnement de compilation:
source build/envsetup.sh
Ce script importe plusieurs commandes qui vous permettent de travailler avec l'application Android
code source, y compris les commandes utilisées sur cette page. Pour afficher la source
script, reportez-vous
platform/build/envsetup.sh
Pour afficher l'aide intégrée, saisissez hmm
.
Choisir une cible
Avant de compiler Android, vous devez identifier une cible à compiler. Une cible
reflètent la plate-forme cible pour laquelle vous créez votre application. Pour identifier votre
cible à compiler, utilisez la commande lunch
suivie d'une chaîne représentant
la cible. Exemple :
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Afficher la cible actuelle
Pour afficher les paramètres actuels du déjeuner, exécutez la commande suivante:
echo "$TARGET_PRODUCT-$TARGET_RELEASE-$TARGET_BUILD_VARIANT"
La chaîne représentant la cible est au format suivant:
lunch product_name-release-build_variant
Les composants de cette chaîne sont les suivants:
product_name est le nom du produit que vous souhaitez build, comme
aosp_cf_x86_64_phone
ouaosp_husky
. Votre product_name peut suivre votre propre format pour votre appareil, mais le format que Google utilise pour ses appareils contient les composants suivants:aosp
fait référence à la plate-forme Open Source Android.- (Facultatif)
cf
est inclus lorsque la cible est destinée à être exécutée dans le Émulateur seiche. - Architecture et matériel (nom de code), comme
x86_64_phone
ouhusky
qui est le nom de code du Pixel 8 Pro. Pour obtenir la liste des noms de code pour Google pour en savoir plus, consultez Noms de code des appareils.
release est défini sur
trunk_staging
.La partie build_variant de la chaîne peut être l'une des les trois valeurs du tableau suivant:
build_variant Description user
Cette variante de compilation offre un accès limité à la sécurité et est adaptée à la production. userdebug
Cette variante de compilation aide les développeurs d'appareils à comprendre les performances et la puissance des versions en cours de développement. Lorsque vous développez avec un build userdebug
, suivez les Consignes pour le débogage utilisateur.eng
Cette variante de compilation offre une durée de compilation plus rapide. Elle est particulièrement adaptée au développement quotidien si vous n'avez pas besoin de vous soucier des performances ni de la puissance.
Si vous exécutez lunch
sans aucun argument, une liste de cibles courantes s'affiche.
Vous pouvez également créer vos propres chaînes cibles en assemblant les éléments de
la chaîne cible à l'aide des informations de cette page et des noms de code ;
qui représentent du matériel Google spécifique
Noms de code des appareils.
Compiler le code
Exécutez la commande suivante pour créer votre cible. En fonction de la spécification de votre station de travail, la première compilation peut prendre moins d'une heure, quelques heures. Les compilations suivantes prennent beaucoup moins de temps.
$ m
Le premier résultat qui s'affiche est un synopsis de votre cible et de votre build environnement:
============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================
Le résultat de votre compilation s'affiche dans $OUT_DIR
. Si vous
des cibles différentes, chaque build cible apparaît
$OUT_DIR
La commande m
s'appuie sur le haut de l'arborescence pour que vous puissiez exécuter m
depuis
des sous-répertoires. Si la variable d'environnement TOP
est définie, la commande m
l'utilise. Si TOP
n'est pas défini, la commande m
recherche l'arborescence à partir du
répertoire actuel, en essayant
de trouver le haut de l'arborescence.
La commande m
peut gérer des tâches parallèles avec un argument -jN
. Si vous ne
fournir un argument -j
, le système de compilation sélectionne automatiquement une tâche parallèle
et le nombre de jours
qu'il juge optimal pour votre système.
Vous pouvez créer des modules spécifiques au lieu de l'image complète de l'appareil en répertoriant
dans la ligne de commande m
. De plus, la commande m
fournit
certaines pseudo-cibles, appelées objectifs. Par exemple, m nothing
ne crée pas
mais elle analyse et valide la structure de compilation. Pour obtenir une liste
objectifs, saisissez m help
.
Résoudre les erreurs de compilation (version 8.0 ou antérieure)
Si vous compilez AOSP 8 ou une version antérieure, m
peut abandonner lorsqu'il rencontre un
concernant votre version de Java. Par exemple, le message suivant peut s'afficher:
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.
Please follow the machine setup instructions at
https://source.android.com/source/initializing.html
************************************************************
Voici les causes probables du problème et les solutions correspondantes:
- Vous n'avez pas installé le bon JDK comme indiqué dans les les sections JDK de Configuration pour le développement d'AOSP (2.3 à 8.0)
- Un autre JDK déjà installé apparaît dans votre chemin d'accès. Ajoutez le préfixe corrigez le JDK au début de votre chemin ou supprimez le JDK problématique.