Variables de entorno

Puedes configurar el comportamiento de Android Studio y las herramientas de línea de comandos configurando variables de entorno. Una de las variables de entorno más útiles para configurar es ANDROID_HOME, que muchas herramientas leen para determinar el directorio de instalación del SDK de Android. A fin de ejecutar herramientas desde la línea de comandos sin incluir la ruta de acceso completa al ejecutable, configura la variable de entorno de la ruta de búsqueda de comandos de modo que incluya ANDROID_HOME/tools, ANDROID_HOME/tools/bin y ANDROID_HOME/platform-tools.

Cómo configurar variables de entorno

En los siguientes ejemplos, se muestra cómo configurar variables de entorno en una ventana de terminal y en una secuencia de comandos de shell para diferentes sistemas operativos. La configuración de la variable en las ventanas de terminal se mantiene mientras la ventana está abierta. En macOS y Linux, cada vez que se inicia una shell nueva, se establece la configuración de la variable en las secuencias de comandos de inicialización de la shell. En Windows, la configuración de las variables se puede establecer mediante la configuración del sistema.

Windows: En una ventana de terminal, escribe lo siguiente:

set HTTP_PROXY=myserver:1981

De manera alternativa, agrégalo a la IU de Windows. Consulta la documentación de tu versión de Windows para descubrir cómo hacerlo.

macOS y Linux: El método preciso de configuración de variables del entorno depende de la shell que uses. Para determinar qué tipo de shell se está ejecutando, escribe lo siguiente:

echo $0

En shells como Gnu Bash o Zsh, las variables se configuran con la siguiente sintaxis:

export VARIABLE_NAME=<new-value>

En otras shells, como TCSH, las variables se configuran con la siguiente sintaxis:

setenv VARIABLE_NAME <new-value>

Estos comandos se pueden agregar a la secuencia de comandos de inicialización de la shell para configurar las variables cada vez que se ejecute una instancia de shell nueva.

La ubicación de la secuencia de comandos de inicialización de la shell depende de la shell que se utiliza. Para Gnu Bash, la ubicación puede ser ~/.bash_profile. Para Zsh, la ubicación puede ser ~/.zprofile. Para TCSH, la ubicación puede ser ~/.cshrc. Consulta la documentación de la shell que usas a fin de confirmarlo.

También puedes actualizar la variable de entorno PATH a los efectos de incluir las ubicaciones de la herramienta.

Para Gnu Bash o Zsh:

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

Para TCSH:

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

Referencia de variables

En la siguiente tabla, se describen las variables de entorno de uso frecuente para las herramientas del SDK de Android.

Tabla 1: Variables del entorno

Variables de entorno del SDK de Android
ANDROID_HOME Configura la ruta de acceso al directorio de instalación del SDK. Una vez configurada, no suele cambiar el valor, y varios usuarios pueden compartirla en la misma máquina. ANDROID_SDK_ROOT, que también dirige al directorio de instalación del SDK, dejó de estar disponible. Si sigues usándolo, Android Studio y el complemento de Android para Gradle verificarán que las variables anterior y nueva sean coherentes.
ANDROID_USER_HOME Establece la ruta de acceso al directorio de preferencias del usuario para las herramientas que forman parte del SDK de Android. La configuración predeterminada es $HOME/.android/.

Algunas herramientas anteriores, como Android Studio 4.3 y versiones previas, no leen ANDROID_USER_HOME. Para anular la ubicación de las preferencias del usuario de esas herramientas más antiguas, establece ANDROID_SDK_HOME en el directorio principal en el que deseas que se cree el directorio .android.

REPO_OS_OVERRIDE Establece esta variable en windows, macosx o linux cuando uses sdkmanager a fin de descargar paquetes para un sistema operativo diferente de la máquina actual.
Variables de entorno de configuración de Android Studio
Las variables de configuración de Android Studio contienen parámetros que permiten personalizar la ubicación de los archivos de configuración y el JDK. Cuando se inicia, Android Studio busca la configuración de estas variables. Para obtener más información, consulta Cómo configurar Android Studio.
STUDIO_VM_OPTIONS Establece la ubicación del archivo studio.vmoptions. Este archivo contiene una configuración que afecta las características de rendimiento de la máquina virtual de Java HotSpot. También se puede acceder a este desde Android Studio. Consulta la sección Cómo personalizar tus opciones de VM.
STUDIO_PROPERTIES Establece la ubicación del archivo idea.properties. Este archivo te permite personalizar las propiedades del IDE de Android Studio, como la ruta de acceso a los complementos que instaló el usuario y el tamaño máximo de archivo que admite el IDE. Consulta la sección Cómo personalizar tus propiedades del IDE.
STUDIO_JDK Establece la ubicación del JDK en el que se ejecuta Android Studio. Cuando inicias el IDE, este verificará las variables de entorno STUDIO_JDK, JDK_HOME y JAVA_HOME en ese orden.
STUDIO_GRADLE_JDK Establece la ubicación del JDK que usa Android Studio para iniciar el daemon de Gradle. Cuando inicias el IDE, primero comprobará STUDIO_GRADLE_JDK. Si no se definió STUDIO_GRADLE_JDK, el IDE usará el valor establecido en la configuración de la estructura del proyecto.
Variables de entorno del emulador
De forma predeterminada, el emulador almacena los archivos de configuración en $HOME/.android/ y los datos de AVD en $HOME/.android/avd/. Para anular los valores predeterminados, configura las siguientes variables de entorno. El comando emulator -avd <avd_name> busca en el directorio avd, en el orden de los valores de $ANDROID_AVD_HOME, $ANDROID_USER_HOME/avd/ y $HOME/.android/avd/.

Para obtener ayuda con la variable de entorno del emulador, escribe emulator -help-environment en la línea de comandos. Si deseas obtener información sobre las opciones de línea de comandos de emulator, consulta Cómo iniciar el emulador desde la línea de comandos.

ANDROID_EMULATOR_HOME Establece la ruta de acceso al directorio de configuración del emulador específico del usuario. La configuración predeterminada es $ANDROID_USER_HOME.

Las herramientas más antiguas, como Android Studio 4.3 y versiones anteriores, no leen ANDROID_USER_HOME. Para esas herramientas, el valor predeterminado es $ANDROID_SDK_HOME/.android.

ANDROID_AVD_HOME Establece la ruta de acceso al directorio que contiene todos los archivos específicos de AVD, que en su mayoría consisten en imágenes de disco muy grandes. La ubicación predeterminada es $ANDROID_EMULATOR_HOME/avd/. Se recomienda especificar una ubicación nueva si la predeterminada tiene poco espacio en el disco.
Android Emulator consulta las siguientes variables de entorno cuando se inicia:
ANDROID_LOG_TAGS Consulta ANDROID_LOG_TAGS.
HTTP_PROXY

Contiene la configuración de proxy HTTP/HTTPS para un proxy HTTP global. Usa un separador de dos puntos (:) entre el host y el puerto. Por ejemplo, set HTTP_PROXY=myserver:1981.

Esto es lo mismo que especificar el argumento -http-proxy proxy cuando se ejecuta el emulador desde la línea de comandos.

ANDROID_VERBOSE Consulta ANDROID_VERBOSE.
ANDROID_HOME Consulta ANDROID_HOME.
ANDROID_EMULATOR_USE_SYSTEM_LIBS Contiene un valor de 0 (predeterminado) o 1. Un valor de 1 significa que se usa el archivo libstdc++.so del sistema en lugar del que viene incluido con el emulador. Configura esta variable de entorno solo cuando el emulador no se inicie en tu sistema Linux debido a un problema de la biblioteca del sistema. Por ejemplo, algunas bibliotecas de controladores Radeon GL para Linux requieren una versión más reciente del archivo libstdc++.so.
Audio de emulador rápido (QEMU)
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV En Linux, puedes cambiar el backend de audio predeterminado del emulador mediante la configuración de la variable de entorno QEMU_AUDIO_DRV en uno de los siguientes valores:
  • alsa: usa el backend de Advanced Linux Sound Architecture (ALSA).
  • esd: usa el backend de Enlightened Sound Daemon (EsounD).
  • sdl: usa el backend de audio Simple DirectMedia Layer (SDL) (no se admite entrada de audio).
  • oss:: usa el backend de Open Sound System (OSS).
  • none:: no admite audio.
set QEMU_AUDIO_DRV=alsa

También puedes usar backends distintos para entrada y salida de audio seleccionando uno de los valores de QEMU para las variables de entorno QEMU_AUDIO_OUT_DRV y QEMU_AUDIO_IN_DRV:

set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

Si quieres inhabilitar la compatibilidad de audio, usa la opción emulator -no-audio o configura QEMU_AUDIO_DRV en none. Es posible que debas inhabilitar el audio en las siguientes situaciones:

  • En casos excepcionales, los controladores de audio pueden hacer que Windows se reinicie mientras se ejecuta el emulador.
  • En algunos equipos de Linux, el emulador puede bloquearse en el inicio cuando la compatibilidad con audio está habilitada.
Variables de entorno adb
ANDROID_SERIAL Usa esta variable para proporcionar el número de serie de un emulador, como emulator-5555, a un comando adb. Si configuras esta variable, pero usas la opción -s con el fin de especificar un número de serie desde la línea de comandos, la entrada de la línea de comandos anula el valor en ANDROID_SERIAL.

En el siguiente ejemplo, se configura ANDROID_SERIAL y se llama a adb install helloworld.apk, que luego instala el Paquete de aplicación para Android en emulator-5555.

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk
Variables de entorno adb logcat
ANDROID_LOG_TAGS Usa esta variable de entorno para configurar una expresión de filtro predeterminada cuando ejecutes logcat en tu computadora de desarrollo. Por ejemplo:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

Esto es lo mismo que especificar el argumento -logcat tags cuando se ejecuta el emulador desde la línea de comandos.

Consulta el artículo para filtrar resultados de registros si quieres obtener más información y ejemplos.

ADB_TRACE Contiene una lista separada por comas de la información de depuración que se registrará. Los valores pueden ser los siguientes: all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport y jdwp.

Para mostrar los registros adb de los clientes adb y el servidor adb, configura ADB_TRACE en all y, luego, llama al comando adb logcat, de la siguiente manera:

set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE Contiene una lista separada por comas de opciones detalladas de salida (etiquetas de depuración) que usa el emulador. En el siguiente ejemplo se muestra cómo se define ANDROID_VERBOSE con las etiquetas de depuración debug-socket y debug-radio:
set ANDROID_VERBOSE=socket,radio

Esto es lo mismo que especificar los argumentos -verbose -verbose-socket -verbose-radio juntos cuando se ejecuta el emulador desde la línea de comandos.

Se ignoran las etiquetas de depuración que no son compatibles. Para obtener más información sobre etiquetas de depuración, usa emulator -help-debug-tags.