Construire Android

Suivez les instructions sur cette page pour créer Android.

Configurer votre environnement de construction

Depuis votre répertoire de travail, recherchez le script envsetup.sh pour configurer votre environnement de build :

$ source build/envsetup.sh

Ce script importe plusieurs commandes qui vous permettent de travailler avec le code source Android, y compris les commandes utilisées sur cette page. Pour afficher la source du script, reportez-vous à platform/build/envsetup.sh . Pour afficher l'aide intégrée, tapez hmm .

Choisissez une cible

Avant de créer Android, vous devez identifier une cible à créer. Pour identifier votre cible à construire, utilisez la commande lunch suivie d'une cible qui identifie votre produit cible et votre build :

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

Afficher la cible actuelle

Pour voir les paramètres actuels du déjeuner, exécutez :

$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"

La chaîne représentant la cible a le format suivant :

lunch product_name-release-build_variant

Les composants de cette chaîne sont :

  • product_name est le nom du produit que vous souhaitez créer, tel que aosp_cf_x86_64_phone ou aosp_husky . Votre product_name spécifique peut suivre votre propre format, mais le format utilisé par Google comporte les composants suivants :

    • aosp fait référence à la plateforme Android Open Source.
    • (facultatif) cf est inclus lorsque la cible est destinée à être exécutée dans l'émulateur Cuttlefish.
    • architecture et matériel, tels que x86_64_phone ou husky (Pixel 8 pro).
  • La release est définie sur trunk-staging .

  • La partie build_variant de la chaîne peut être l'une des trois valeurs du tableau suivant :

    build_variant Description
    user Cette variante de construction offre un accès de sécurité limité et est adaptée à la production.
    userdebug Cette variante de build aide les développeurs d'appareils à comprendre les performances et la puissance des versions en cours de développement. Lors du développement avec une version userdebug , suivez les directives pour userdebug .
    fra Cette variante de construction a un temps de construction plus rapide et convient mieux au développement quotidien si vous ne vous souciez pas des performances et de la puissance.

Construire le code

Exécutez la commande suivante pour créer votre cible. Selon les spécifications de votre poste de travail, la première construction peut prendre moins d'une heure et jusqu'à quelques heures. Les versions ultérieures prennent beaucoup moins de temps.

$ m

Le premier résultat que vous devriez voir est un résumé de votre cible et de votre environnement de construction :

============================================
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
============================================

La commande m est construite à partir du haut de l'arborescence, vous pouvez donc exécuter m à partir 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 courant, 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 fournissez pas d'argument -j , le système de build sélectionne automatiquement un nombre de tâches parallèles qu'il juge optimal pour votre système.

Vous pouvez créer des modules spécifiques au lieu de l'image complète du périphérique en répertoriant les noms de modules dans votre ligne de commande m . De plus, la commande m fournit des pseudo-cibles, appelées goal . Par exemple, m nothing ne construit rien, mais analyse et valide la structure de construction. Pour obtenir une liste d’objectifs valides, tapez m help .

Résoudre les erreurs de build (8.0 ou version antérieure)

Si vous construisez AOSP 8 ou une version antérieure, m peut abandonner lorsqu'il rencontre un problème avec votre version de Java. Par exemple, vous pourriez recevoir ce message :

************************************************************
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 et les solutions :

  • Vous n'avez pas réussi à installer le JDK correct comme spécifié dans les sections JDK de Configuration pour le développement AOSP (2.3 - 8.0) .
  • Un autre JDK précédemment installé apparaît sur votre chemin. Ajoutez le JDK correct au début de votre chemin ou supprimez le JDK problématique.