You can configure the behavior of Android Studio and the command-line tools by setting
  environment variables. One of the most useful environment variables to set is
  ANDROID_HOME, which many tools read to
  determine the Android SDK installation directory.
  To run tools from the command line without including the full path to the executable,
  set your command
  search path environment variable to include
  ANDROID_HOME/tools, ANDROID_HOME/tools/bin, and
  ANDROID_HOME/platform-tools.
How to set environment variables
The following examples show how to set environment variables in a terminal window and in a shell script for different operating systems. Variable settings in terminal windows last only as long as the window is open. On macOS and Linux, each time a new shell starts, variable settings are set in shell initialization scripts. On Windows, variable settings can be set through the system settings.
Windows: In a terminal window, type the following:
set HTTP_PROXY=myserver:1981
Alternately, add it through the Windows UI. Check the documentation for your version of Windows to learn how.
macOS and Linux: The precise method of setting environment variables depends on which shell you are using. To determine which shell type is running, type the following:
echo $0
In shells such as Gnu Bash or Zsh, variables are set using the following syntax:
export VARIABLE_NAME=<new-value>
In other shells, such as TCSH, variables are set using the following syntax:
setenv VARIABLE_NAME <new-value>
These commands can be added to the shell initialization script to set the variables each time a new shell instance is run.
    The location of the shell initialization script depends on the shell being used.
    For Gnu Bash, the location can be ~/.bash_profile. For
    Zsh, the location can be ~/.zprofile. For TCSH, the location can be
    ~/.cshrc. Check
    the documentation for the shell that you're using to be sure.
  
    You can also update the PATH environment variable to include the tool locations.
  
For Gnu Bash or Zsh:
export ANDROID_HOME=~/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
And for TCSH:
setenv ANDROID_HOME ~/Library/Android/sdk setenv PATH $PATH\:$ANDROID_HOME/tools\:$ANDROID_HOME/tools/bin\:$ANDROID_HOME/platform-tools
Variables reference
The following table describes commonly used environment variables for the Android SDK tools.
Table 1. Environment variables
| Android SDK environment variables | |
|---|---|
| ANDROID_HOME | Sets the path to the SDK installation directory. Once set,
    the value does not typically change and can be shared by multiple users on the same machine. ANDROID_SDK_ROOT, which also points to the SDK installation directory,
    is deprecated. If you continue to use it, Android Studio and the Android Gradle plugin will
    check that the old and new variables are consistent. | 
| ANDROID_USER_HOME | Sets the path to the user preferences directory for tools that are part of the Android SDK.
      Defaults to $HOME/.android/.
        Some older tools, such as Android Studio 4.3 and earlier, do not read
         | 
| REPO_OS_OVERRIDE | Set this variable to windows,macosx, orlinuxwhen
      you usesdkmanagerto download packages for an operating system different from the current machine. | 
| Android Studio configuration environment variables | |
| The Android Studio configuration variables contain settings that customize the location of configuration files and the JDK. On startup, Android Studio checks these variables for settings. For more information, see Configure Android Studio. | |
| STUDIO_VM_OPTIONS | Sets the location of the studio.vmoptionsfile.
    This file contains settings that affect the performance characteristics of the Java HotSpot
    Virtual Machine. This file can also be accessed from within Android Studio. See
    Customize your VM options. | 
| STUDIO_PROPERTIES | Sets the location of the idea.propertiesfile. This file lets you customize Android Studio IDE properties, such as the path to
    user installed plugins and the maximum file size supported by the IDE. See
    Customize your IDE properties. | 
| STUDIO_JDK | Sets the location of the JDK that Android Studio runs in. When you launch the IDE,
      it checks the STUDIO_JDK,JDK_HOME, andJAVA_HOMEenvironment variables, in that order. | 
| STUDIO_GRADLE_JDK | Sets the location of the JDK that Android Studio uses to start the Gradle daemon. When you
      launch the IDE, it first checks STUDIO_GRADLE_JDK. IfSTUDIO_GRADLE_JDKis not defined, the IDE uses the value set in
      the project structure settings. | 
| Emulator environment variables | |
| By default, the emulator stores configuration files under $HOME/.android/and AVD data under$HOME/.android/avd/. You can
        override the defaults by setting the following environment variables.
        Theemulator -avd <avd_name>command searches theavddirectory in the order of the values in$ANDROID_AVD_HOME,$ANDROID_USER_HOME/avd/, and$HOME/.android/avd/.
      For emulator environment variable help, type
       | |
| ANDROID_EMULATOR_HOME | Sets the path to the user-specific emulator configuration
      directory. Defaults to $ANDROID_USER_HOME.
        Older tools, such as Android Studio 4.3 and earlier, do not read
         | 
| ANDROID_AVD_HOME | Sets the path to the directory that contains all AVD-specific
      files, which mostly consist of very large disk images. The default location is $ANDROID_EMULATOR_HOME/avd/. You might want to specify a new location if
      the default location is low on disk space. | 
| The Android emulator queries the following environment variables when it starts: | |
| ANDROID_LOG_TAGS | See ANDROID_LOG_TAGS. | 
| HTTP_PROXY | Contains the HTTP/HTTPS proxy
    setting for a global HTTP proxy. Uses a colon (:) separator between the host and the port. For
    example,  This is the same as specifying the
       
 | 
| ANDROID_VERBOSE | See ANDROID_VERBOSE. | 
| ANDROID_HOME | See ANDROID_HOME. | 
| ANDROID_EMULATOR_USE_SYSTEM_LIBS | Contains a value of 0 (default) or 1. A value of 1 means the system's libstdc++.sofile is used instead of the one that comes bundled with the emulator.
      Set this environment variable only when the emulator does not start on your Linux system
      because of a system library problem. For example, some Linux Radeon GL driver libraries
      require a more recentlibstdc++.sofile. | 
| Quick emulator (QEMU) audio | |
| QEMU_AUDIO_DRVQEMU_AUDIO_OUT_DRVQEMU_AUDIO_IN_DRV | On Linux, you can change the default audio
        backend of the emulator by setting the QEMU_AUDIO_DRVenvironment variable
        to one of the following values:
 set QEMU_AUDIO_DRV=alsa 
    You can also use distinct backends for audio input and audio outputs by selecting one of the
    QEMU values for the  set QEMU_AUDIO_OUT=esd set QEMU_AUDIO_IN=oss 
  If you want to disable the audio support, use the  
 | 
| adb environment variables | |
| ANDROID_SERIAL | Use this variable to provide an emulator serial number, such
    as emulator-5555, to an adbcommand. If you set this variable but use the-soption to specify a serial number from the command line, the command-line input overrides
    the value inANDROID_SERIAL.
    The following example sets  set ANDROID_SERIAL=emulator-555 adb install helloWorld.apk | 
| adb logcat environment variables | |
| ANDROID_LOG_TAGS | Use this environment variable to set a default filter
  expression when you are running logcatfrom your development computer. For example:
set This is the same as specifying the
   See Filter log output for more information and examples. | 
| ADB_TRACE | Contains a comma-separated list of the debug information to log.
    Values can be the following: all,adb,sockets,packets,rwx,usb,sync,sysdeps,transport, andjdwp.
    To display the  set ADB_TRACE=all adb logcat | 
| ANDROID_VERBOSE | Contains a comma-separated list of verbose output options
  (debug tags) used by the emulator. The following example shows ANDROID_VERBOSEdefined with thedebug-socketanddebug-radiodebug tags:set ANDROID_VERBOSE=socket,radio This is the same as specifying the   
 
    Unsupported debug tags are ignored. For more
  information about debug tags, use  | 
