Variables d'environnement

La définition de variables d'environnement vous permet de configurer le comportement d'Android Studio et des outils de ligne de commande. L'une des variables d'environnement les plus utiles à définir est ANDROID_HOME, que de nombreux outils lisent pour déterminer le répertoire d'installation du SDK Android. Pour exécuter des outils à partir de la ligne de commande sans inclure le chemin d'accès complet au fichier exécutable, spécifiez la variable d'environnement du chemin de recherche de commandes afin d'inclure ANDROID_HOME/tools, ANDROID_HOME/tools/bin et ANDROID_HOME/platform-tools.

Comment définir des variables d'environnement

Les exemples suivants montrent comment définir des variables d'environnement dans une fenêtre de terminal et dans un script shell pour différents systèmes d'exploitation. Les paramètres de variable des fenêtres de terminal restent actifs tant que la fenêtre est ouverte. Sous macOS et Linux, chaque fois qu'une nouvelle interface système démarre, les paramètres de variable sont définis dans les scripts d'initialisation de l'interface système. Sous Windows, les paramètres de variable peuvent être spécifiés via les paramètres système.

Windows:dans une fenêtre de terminal, saisissez la commande suivante :

set HTTP_PROXY=myserver:1981

Vous pouvez également l'ajouter via l'interface utilisateur Windows. Pour savoir comment procéder, consultez la documentation de votre version de Windows.

macOS et Linux : la méthode exacte de définition des variables d'environnement dépend de l'interface système que vous utilisez. Pour déterminer le type d'interface système, exécutez la commande suivante :

echo $0

Dans les interfaces système telles que Gnu Bash ou Zsh, les variables sont définies à l'aide de la syntaxe suivante :

export VARIABLE_NAME=<new-value>

Dans d'autres interfaces système, telles que TCSH, les variables sont définies à l'aide de la syntaxe suivante :

setenv VARIABLE_NAME <new-value>

Ces commandes peuvent être ajoutées au script d'initialisation de l'interface système pour définir les variables chaque fois qu'une nouvelle instance d'interface système est exécutée.

L'emplacement du script d'initialisation de l'interface système dépend de l'interface système utilisée. Pour Gnu Bash, l'emplacement peut être ~/.bash_profile. Pour Zsh, l'emplacement peut être ~/.zprofile. Pour TCSH, l'emplacement peut être ~/.cshrc. Consultez la documentation de l'interface système que vous utilisez.

Vous pouvez également mettre à jour la variable d'environnement PATH de sorte à inclure les emplacements des outils.

Pour Gnu Bash ou Zsh :

export ANDROID_HOME ~/Library/Android/sdk
export PATH $PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
  

Et pour TCSH :

setenv ANDROID_HOME ~/Library/Android/sdk
setenv PATH $PATH\:$ANDROID_HOME/tools\:$ANDROID_HOME/tools/bin\:$ANDROID_HOME/platform-tools
  

Documentation de référence sur les variables

Le tableau suivant décrit les variables d'environnement couramment utilisées pour les outils du SDK Android.

Tableau 1. Variables d'environnement

Variables d'environnement du SDK Android
ANDROID_HOME Définit le chemin d'accès au répertoire d'installation du SDK. Une fois définie, la valeur ne change généralement pas et peut être partagée par plusieurs utilisateurs sur la même machine. ANDROID_SDK_ROOT, qui renvoie également au répertoire d'installation du SDK, est obsolète. Si vous continuez à l'utiliser, Android Studio et le plug-in Android Gradle vérifient que les anciennes et les nouvelles variables sont cohérentes.
ANDROID_USER_HOME Définit le chemin d'accès au répertoire des préférences utilisateur pour les outils du SDK Android. La valeur par défaut est $HOME/.android/.

Certains outils plus anciens, tels qu'Android Studio 4.3 et versions antérieures, ne lisent pas ANDROID_USER_HOME. Pour ignorer l'emplacement des préférences utilisateur pour ces outils plus anciens, définissez ANDROID_SDK_HOME sur le répertoire parent sous lequel vous souhaitez créer le répertoire .android.

REPO_OS_OVERRIDE Définissez cette variable sur windows, macosx ou linux lorsque vous utilisez sdkmanager pour télécharger des packages pour un système d'exploitation différent de la machine actuelle.
Variables d'environnement de configuration Android Studio
Les variables de configuration Android Studio contiennent des paramètres qui personnalisent l'emplacement des fichiers de configuration et du JDK. Au démarrage, Android Studio vérifie les paramètres de ces variables. Pour en savoir plus, consultez la section Configurer Android Studio.
STUDIO_VM_OPTIONS Définit l'emplacement du fichier studio.vmoptions. Ce fichier contient les paramètres qui affectent les caractéristiques de performances de la machine virtuelle Java HotSpot. Ce fichier est également accessible depuis Android Studio. Consultez la rubrique Personnaliser vos options de machine virtuelle.
STUDIO_PROPERTIES Définit l'emplacement du fichier idea.properties. Ce fichier vous permet de personnaliser les propriétés IDE d'Android Studio, telles que le chemin d'accès aux plug-ins installés par l'utilisateur et la taille de fichier maximale acceptée par l'IDE. Consultez la section Personnaliser vos propriétés IDE.
STUDIO_JDK Définit l'emplacement du JDK dans lequel Android Studio s'exécute. Lorsque vous lancez l'IDE, il vérifie les variables d'environnement STUDIO_JDK, JDK_HOME et JAVA_HOME dans cet ordre.
STUDIO_GRADLE_JDK Définit l'emplacement du JDK utilisé par Android Studio pour démarrer le daemon Gradle. Lorsque vous lancez l'IDE, il vérifie d'abord STUDIO_GRADLE_JDK. Si STUDIO_GRADLE_JDK n'est pas défini, l'IDE utilise la valeur définie dans les paramètres de structure du projet.
Variables d'environnement de l'émulateur
Par défaut, l'émulateur stocke les fichiers de configuration sous $HOME/.android/ et les données AVD sous $HOME/.android/avd/. Vous pouvez ignorer les valeurs par défaut en définissant les variables d'environnement suivantes. La commande emulator -avd <avd_name> recherche le répertoire avd dans l'ordre des valeurs dans $ANDROID_AVD_HOME, $ANDROID_USER_HOME/avd/ et $HOME/.android/avd/.

Pour obtenir de l'aide sur les variables d'environnement de l'émulateur, saisissez emulator -help-environment sur la ligne de commande. Pour en savoir plus sur les options de ligne de commande emulator, consultez la section Lancer l'émulateur à partir de la ligne de commande.

ANDROID_EMULATOR_HOME Définit le chemin d'accès au répertoire de configuration de l'émulateur spécifique à l'utilisateur. La valeur par défaut est $ANDROID_USER_HOME.

Les outils plus anciens, tels qu'Android Studio 4.3 et versions antérieures, ne lisent pas ANDROID_USER_HOME. Pour ces outils, la valeur par défaut est $ANDROID_SDK_HOME/.android.

ANDROID_AVD_HOME Définit le chemin d'accès au répertoire contenant tous les fichiers spécifiques à AVD, principalement des images disque très volumineuses. L'emplacement par défaut est $ANDROID_EMULATOR_HOME/avd/. Vous pouvez spécifier un nouvel emplacement si l'espace disque disponible est faible à l'emplacement par défaut.
L'émulateur Android interroge les variables d'environnement suivantes au démarrage :
ANDROID_LOG_TAGS Voir ANDROID_LOG_TAGS.
HTTP_PROXY

Contient le paramètre HTTP/HTTPS d'un proxy HTTP mondial. Utilise le séparateur deux-points (:) entre l'hôte et le port. Par exemple, set HTTP_PROXY=myserver:1981.

Cela revient à spécifier l'argument -http-proxy proxy lors de l'exécution de l'émulateur à partir de la ligne de commande.

ANDROID_VERBOSE Voir ANDROID_VERBOSE.
ANDROID_HOME Voir ANDROID_HOME.
ANDROID_EMULATOR_USE_SYSTEM_LIBS Contient la valeur 0 (par défaut) ou 1. La valeur 1 indique que le fichier libstdc++.so du système est utilisé à la place de celui fourni avec l'émulateur. Ne définissez cette variable d'environnement que lorsque l'émulateur ne démarre pas sur votre système Linux en raison d'un problème de bibliothèque système. Par exemple, certaines bibliothèques de pilotes Radeon GL Linux nécessitent un fichier libstdc++.so plus récent.
Audio de l'émulateur rapide (QEMU)
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV Sous Linux, vous pouvez modifier le backend audio par défaut de l'émulateur en définissant la variable d'environnement QEMU_AUDIO_DRV sur l'une des valeurs suivantes :
  • alsa : utilise le backend Advanced Linux Sound Architecture (ALSA)
  • esd : utilise le backend Enlightened Sound Daemon (EsounD)
  • sdl : utilise le backend audio Simple DirectMedia Layer (SDL) (aucune entrée audio compatible)
  • oss: : utilise le backend Open Sound System (OSS)
  • none: : ne prend pas en charge l'audio
set QEMU_AUDIO_DRV=alsa

Vous pouvez également utiliser des backends distincts pour les entrées et sorties audio en sélectionnant l'une des valeurs QEMU pour les variables d'environnement QEMU_AUDIO_OUT_DRV et QEMU_AUDIO_IN_DRV :

set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

Si vous souhaitez désactiver la compatibilité audio, utilisez l'option emulator -no-audio ou définissez QEMU_AUDIO_DRV sur none. Vous devrez peut-être désactiver l'audio dans les situations suivantes :

  • Dans de rares cas, les pilotes audio peuvent entraîner le redémarrage de Windows lorsque l'émulateur est en cours d'exécution.
  • Sur certaines machines Linux, l'émulateur peut rester bloqué au démarrage avec la compatibilité audio activée.
Variables d'environnement adb
ANDROID_SERIAL Utilisez cette variable pour fournir un numéro de série d'émulateur, par exemple émulateur-5555, à une commande adb. Si vous définissez cette variable, mais utilisez l'option -s pour spécifier un numéro de série depuis la ligne de commande, l'entrée de la ligne de commande remplace la valeur dans ANDROID_SERIAL.

L'exemple suivant définit ANDROID_SERIAL et appelle adb install helloworld.apk, qui installe ensuite le package d'application Android sur l'émulateur-5555.

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk

variables d'environnement adb logcat
ANDROID_LOG_TAGS Utilisez cette variable d'environnement pour définir une expression de filtre par défaut lorsque vous exécutez logcat à partir de votre ordinateur de développement. Exemple :
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

Cela revient à spécifier l'argument -logcat tags lors de l'exécution de l'émulateur à partir de la ligne de commande.

Pour en savoir plus et voir des exemples, consultez la section Filtrer la sortie du journal.

ADB_TRACE Contient une liste des informations de débogage à consigner, séparées par une virgule. Les valeurs peuvent être les suivantes : all ,adb ,sockets ,packets ,rwx ,usb ,sync ,sysdeps ,transport et jdwp.

Pour afficher les journaux adb pour les clients adb et le serveur adb, définissez ADB_TRACE sur all, puis appelez la commande adb logcat comme suit :

set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE Contient une liste d'options de sortie détaillées (balises de débogage) séparées par une virgule et utilisées par l'émulateur. L'exemple suivant montre ANDROID_VERBOSE défini avec les balises de débogage debug-socket et debug-radio :
set ANDROID_VERBOSE=socket,radio

Cela revient à spécifier les arguments -verbose -verbose-socket -verbose-radio ensemble lors de l'exécution de l'émulateur à partir de la ligne de commande.

Les balises de débogage non compatibles sont ignorées. Pour en savoir plus sur les balises de débogage, utilisez emulator -help-debug-tags.