您可以通过设置环境变量来配置 Android Studio 和命令行工具的行为。其中一个最有用的环境变量之一是 ANDROID_HOME,很多工具都会读取该变量来确定 Android SDK 安装目录。如需通过命令行运行工具,而不包含可执行文件的完整路径,请将命令搜索路径环境变量设置为包含 ANDROID_HOME/tools、ANDROID_HOME/tools/bin 和 ANDROID_HOME/platform-tools。
如何设置环境变量
以下示例展示了如何在终端窗口和 shell 脚本中针对不同的操作系统设置环境变量。终端窗口中的变量设置仅在窗口打开时有效。在 macOS 和 Linux 上,可在每次启动新 shell 时,在 shell 初始化脚本中设置变量设置。在 Windows 上,可通过系统设置设定变量设置。
Windows:在终端窗口中输入以下命令:
set HTTP_PROXY=myserver:1981
或者,通过 Windows 界面添加该命令。如需了解具体操作方法,请查看您的 Windows 版本所适用的文档。
macOS 和 Linux:设置环境变量的确切方法取决于您使用的 shell。如需确定正在运行的 shell 类型,请输入以下命令:
echo $0
在 Gnu Bash 或 Zsh 等 shell 中,可使用以下语法设置变量:
export VARIABLE_NAME=<new-value>
在其他 shell(例如 TCSH)中,可使用以下语法设置变量:
setenv VARIABLE_NAME <new-value>
可以将这些命令添加到 shell 初始化脚本中,以便在每次运行新的 shell 实例时设置变量。
    shell 初始化脚本的位置取决于正在使用的 shell。对于 Gnu Bash,脚本位置可以是 ~/.bash_profile。对于 Zsh,脚本位置可以是 ~/.zprofile。对于 TCSH,脚本位置可以是 ~/.cshrc。请查看适用于您所使用的 shell 的文档,确保其准确无误。
  
    您还可以更新 PATH 环境变量,以包含工具位置。
  
对于 Gnu Bash 或 Zsh:
export ANDROID_HOME=~/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
对于 TCSH:
setenv ANDROID_HOME ~/Library/Android/sdk setenv PATH $PATH\:$ANDROID_HOME/tools\:$ANDROID_HOME/tools/bin\:$ANDROID_HOME/platform-tools
变量参考
下表介绍了 Android SDK 工具的常用环境变量。
表 1. 环境变量
| Android SDK 环境变量 | |
|---|---|
| ANDROID_HOME | 设置 SDK 安装目录的路径。设置后,该值通常不会更改,并且可以由同一台计算机上的多个用户共享。 ANDROID_SDK_ROOT也指向 SDK 安装目录,但已废弃。如果您继续使用它,Android Studio 和 Android Gradle 插件将检查旧变量和新变量是否一致。 | 
| ANDROID_USER_HOME | 为 Android SDK 中包含的工具设置用户偏好设置目录的路径。
      默认为 $HOME/.android/。
        某些较旧的工具(例如 Android Studio 4.3 及更低版本)不会读取  | 
| REPO_OS_OVERRIDE | 当您使用 sdkmanager为与当前计算机不同的操作系统下载软件包时,请将此变量设置为windows、macosx或linux。 | 
| Android Studio 配置环境变量 | |
| Android Studio 配置变量包含用于自定义配置文件和 JDK 位置的设置。启动时,Android Studio 会检查这些变量的设置。如需了解详情,请参阅配置 Android Studio。 | |
| STUDIO_VM_OPTIONS | 设置 studio.vmoptions文件的位置。此文件包含会影响 Java HotSpot 虚拟机性能特征的设置。您也可以从 Android Studio 中访问此文件。请参阅自定义虚拟机选项。 | 
| STUDIO_PROPERTIES | 设置 idea.properties文件的位置。您可以使用此文件自定义 Android Studio IDE 属性(例如用户安装的插件的路径)以及该 IDE 支持的文件大小上限。请参阅自定义 IDE 属性。 | 
| STUDIO_JDK | 设置 Android Studio 在其中运行的 JDK 的位置。当您启动 Android Studio 时,它会依次检查 STUDIO_JDK、JDK_HOME和JAVA_HOME环境变量。 | 
| STUDIO_GRADLE_JDK | 设置 Android Studio 用于启动 Gradle 守护程序的 JDK 的位置。当您启动 Android Studio 时,它会先检查 STUDIO_GRADLE_JDK。如果未定义STUDIO_GRADLE_JDK,Android Studio 将使用在项目结构设置中设置的值。 | 
| 模拟器环境变量 | |
| 默认情况下,模拟器会将配置文件存储在 $HOME/.android/下,将 AVD 数据存储在$HOME/.android/avd/下。您可以通过设置以下环境变量来替换默认设置。emulator -avd <avd_name>命令会依次按照$ANDROID_AVD_HOME、$ANDROID_USER_HOME/avd/和$HOME/.android/avd/中的值来搜索avd目录。
      如需模拟器环境变量方面的帮助,请在命令行中输入  | |
| ANDROID_EMULATOR_HOME | 设置特定于用户的模拟器配置目录的路径。默认为 $ANDROID_USER_HOME。
        较旧的工具(如 Android Studio 4.3 及更早版本)不会读取  | 
| ANDROID_AVD_HOME | 设置包含所有 AVD 特定文件的目录的路径,这些文件大多包含非常大的磁盘映像。默认位置是 $ANDROID_EMULATOR_HOME/avd/。如果默认位置的磁盘空间不足,您可能需要指定新位置。 | 
| Android 模拟器在启动时会查询以下环境变量: | |
| ANDROID_LOG_TAGS | 请参阅 ANDROID_LOG_TAGS。 | 
| HTTP_PROXY | 包含全局 HTTP 代理的 HTTP/HTTPS 代理设置。在主机和端口之间使用英文冒号 (:) 分隔符。例如  这相当于在运行模拟器时从命令行指定  
 | 
| ANDROID_VERBOSE | 请参阅 ANDROID_VERBOSE。 | 
| ANDROID_HOME | 请参阅 ANDROID_HOME。 | 
| ANDROID_EMULATOR_USE_SYSTEM_LIBS | 包含值 0(默认值)或 1。值为 1 表示使用系统的 libstdc++.so文件,而不是与模拟器捆绑在一起的文件。请仅在模拟器因系统库问题而无法在 Linux 系统上启动时,才设置此环境变量。例如,某些 Linux Radeon GL 驱动程序库需要更新的libstdc++.so文件。 | 
| 快速模拟器 (QEMU) 音频 | |
| QEMU_AUDIO_DRVQEMU_AUDIO_OUT_DRVQEMU_AUDIO_IN_DRV | 在 Linux 上,您可以通过将 QEMU_AUDIO_DRV环境变量设置为以下值之一,更改模拟器的默认音频后端:
 set QEMU_AUDIO_DRV=alsa 
    您还可以通过分别为  set QEMU_AUDIO_OUT=esd set QEMU_AUDIO_IN=oss 
  如果要停用音频支持,请使用  
 | 
| adb 环境变量 | |
| ANDROID_SERIAL | 可使用此变量为 adb命令提供模拟器序列号,例如 emulator-5555。如果您设置了此变量,但又使用-s选项从命令行指定序列号,那么命令行输入将取代ANDROID_SERIAL的值。
    以下示例会设置  set ANDROID_SERIAL=emulator-555 adb install helloWorld.apk | 
| adb logcat 环境变量 | |
| ANDROID_LOG_TAGS | 当您从开发计算机运行 logcat时,可使用此环境变量设置默认过滤器表达式。例如:
set 这相当于在运行模拟器时从命令行指定  如需了解详情和查看示例,请参阅过滤日志输出部分。 | 
| ADB_TRACE | 包含要记录的调试信息的逗号分隔列表。具体值可以是: all、adb、sockets、packets、rwx、usb、sync、sysdeps、transport和jdwp。
    如需显示  set ADB_TRACE=all adb logcat | 
| ANDROID_VERBOSE | 包含模拟器使用的详细输出选项(调试标记)的逗号分隔列表。以下示例展示了使用 debug-socket和debug-radio调试标记定义的ANDROID_VERBOSE:set ANDROID_VERBOSE=socket,radio 这相当于在运行模拟器时从命令行同时指定  
 
    不受支持的调试标记会被忽略。如需详细了解调试标记,请使用  | 
