环境变量
您可以为 Android Studio 和命令行工具设置环境变量,以指定 SDK 的安装位置以及特定于用户的数据的存储位置等。 本页介绍了最常用的环境变量。
以下示例演示了当把 SDK 安装在 E:\Android\sdk\
(而不是其默认位置 $USER_HOME
或 $HOME
)时,如何使用环境变量来启动模拟器。
$ set ANDROID_SDK_ROOT=E:\Android\sdk\ $ emulator -avd Pixel_API_25
变量参考
下表介绍了 Android SDK 工具的常用环境变量。
表 1. 环境变量
Android SDK 环境变量
ANDROID_SDK_ROOT |
设置 SDK 安装目录的路径。设置后,该值通常不会更改,并且可以由同一台计算机上的多个用户共享。 ANDROID_HOME 也指向 SDK 安装目录,但已弃用。如果您继续使用它,则需遵守以下规则:1.如果定义了 ANDROID_HOME 并且其中包含有效的 SDK 安装,则会使用 ANDROID_HOME 的值而不是 ANDROID_SDK_ROOT 的值。2. 如果未定义 ANDROID_HOME ,则会使用 ANDROID_SDK_ROOT 中的值。3.如果定义了 ANDROID_HOME ,但其中不存在或不包含有效的 SDK 安装,则会使用 ANDROID_SDK_ROOT 中的值。 |
REPO_OS_OVERRIDE |
当您使用 sdkmanager 为与当前计算机不同的操作系统下载软件包时,请将此变量设置为 windows 、 macosx 或 linux 。注意 :您可以使用 Android Studio(而不是 sdkmanager )来管理 SDK 软件包。请参阅使用 SDK 管理器更新工具。 |
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 的位置。当您启动 IDE 时,它会依次检查 STUDIO_JDK 、 JDK_HOME 和 JAVA_HOME 环境变量。 |
STUDIO_GRADLE_JDK |
设置 Android Studio 用于启动 Gradle 守护程序的 JDK 的位置。当您启动 IDE 时,它会先检查 STUDIO_GRADLE_JDK 。如果未定义 STUDIO_GRADLE_JDK ,IDE 将使用在“Project Structure”对话框中设置的值。 |
模拟器环境变量
- 默认情况下,模拟器会将配置文件存储在
$HOME/.android/
下,将 AVD 数据存储在$HOME/.android/avd/
下。您可以通过设置以下环境变量来替换默认设置。emulator -avd <avd_name>
命令会依次按照$ANDROID_AVD_HOME
、$ANDROID_SDK_HOME/.android/avd/
和$HOME/.android/avd/
的值搜索avd
目录。 - 如需模拟器环境变量方面的帮助,请在命令行中输入
emulator -help-environment
。如需了解emulator
命令行选项,请参阅从命令行控制模拟器。
ANDROID_EMULATOR_HOME |
设置特定于用户的模拟器配置目录的路径。默认位置是 $ANDROID_SDK_HOME/.android/ 。 |
ANDROID_AVD_HOME |
设置包含所有 AVD 特定文件的目录的路径,这些文件大多由非常大的磁盘映像组成。默认位置是 $ANDROID_EMULATOR_HOME/avd/ 。如果默认位置的磁盘空间不足,则可能需要指定新位置。 |
Android 模拟器在启动时会查询以下环境变量 | |
— | — |
ANDROID_LOG_TAGS |
请参阅 ANDROID_LOG_TAGS 。 |
HTTP_PROXY |
包含全局 http 代理的 HTTP/HTTPS 代理(主机名和端口)设置。在主机和端口之间使用英文冒号 ( 分隔符。例如, set HTTP_PROXY=myserver:1981 。 |
ANDROID_VERBOSE |
请参阅 ANDROID_VERBOSE 。 |
ANDROID_EMULATOR_HOME |
请参阅 ANDROID_EMULATOR_HOME 。 |
ANDROID_SDK_ROOT |
请参阅 ANDROID_SDK_ROOT 。 |
ANDROID_EMULATOR_USE_SYSTEM_LIBS |
包含值 0(默认值)或 1。值为 1 表示使用系统的 libstdc++.so 文件,而不是与模拟器捆绑在一起的文件。请仅在模拟器因系统库问题而无法在 Linux 系统上启动时,才设置此环境变量。例如,某些 Linux Radeon GL 驱动程序库需要更新的 libstdc++.so 文件。注意 :将此环境变量设置为 1 并不保证模拟器能够正常运行。这样做能够解决只会影响很少一部分 Linux 用户的系统库问题。 |
快速模拟器 (QEMU) 音频
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV
|
在 Linux 上,您可以通过将 QEMU_AUDIO_DRV 环境变量设置为以下值之一来更改模拟器的默认音频后端:alsa :使用高级 Linux 音频架构 (ALSA) 后端esd :使用 Enlightened Sound Daemon (EsounD) 后端sdl :使用简易直控媒体层 (SDL) 音频后端(不支持音频输入)oss: :使用开放声音系统 (OSS) 后端none: :不支持音频set QEMU_AUDIO_DRV=alsa 您还可以通过分别为 QEMU_AUDIO_OUT_DRV 和 QEMU_AUDIO_IN_DRV 环境变量选择相应的 QEMU 值,为音频输入和音频输出使用不同的后端:set QEMU_AUDIO_OUT=esd set QEMU_AUDIO_IN=oss 如果要停用音频支持,请使用 emulator -no-audio 选项或将 QEMU_AUDIO_DRV 设置为 none 。在以下情况下,您可能需要停用音频:在极少数情况下,音频驱动程序可能会导致 Windows 在模拟器运行时重新启动。 在某些 Linux 计算机上,如果启用了音频支持,模拟器可能会在启动时卡住。 |
adb 环境变量
ANDROID_SERIAL |
可使用此变量为 adb 命令提供模拟器序列号,例如 emulator-5555。如果您设置了此变量,但又使用 -s 选项从命令行指定序列号,则命令行输入将取代 ANDROID_SERIAL 的值。以下示例会设置 ANDROID_SERIAL 并调用 adb install helloworld.apk ,然后该 APK 会在 emulator-5555 上安装 Android 应用软件包。set ANDROID_SERIAL=emulator-555 adb install helloWorld.apk
|
adb logcat 环境变量
ANDROID_LOG_TAGS |
当您从开发计算机运行 logcat 时,可使用此环境变量设置默认过滤器表达式。例如:set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *: 如需了解详情并查看示例,请参阅过滤日志输出。 |
ADB_TRACE |
包含要记录的调试信息的英文逗号分隔列表。具体值可以是: all 、 adb 、 sockets 、 packets 、 rwx 、 usb 、 sync 、 sysdeps 、 transport 和 jdwp 。如需显示 adb 客户端和 adb 服务器的 adb 日志,请将 ADB_TRACE 设置为 all ,然后调用 adb logcat 命令,如下所示:set ADB_TRACE=all adb logcat
|
ANDROID_VERBOSE |
包含模拟器使用的详细输出模式选项的英文逗号分隔列表。以下示例展示了使用 debug-socket 和 debug-radio 调试标记定义的 ANDROID_VERBOSE :set ANDROID_VERBOSE=socket,radio 不受支持的调试标记会被忽略。如需详细了解调试标记,请使用 emulator -help-debug-tags 。 |
如何设置环境变量
以下示例展示了如何在终端窗口和 shell 脚本中针对不同的操作系统设置环境变量。对于终端窗口中的变量设置,只要窗口不关闭,这些设置就会一直存在。而 shell 脚本中的变量设置,则会在登录会话之间保持不变。
Windows :在终端窗口中输入以下命令:
set HTTP_PROXY=myserver:1981
或者,通过 Windows 界面将该命令行添加到 shell 脚本中。如需了解具体操作方法,请查看您的 Windows 版本所适用的文档。
Mac 和 Linux :在终端窗口中输入以下命令:
export HTTP_PROXY=myserver:1981
或者,将该命令行添加到 ~/.bash_profile
文件中,并对该文件执行 source 命令,如下所示:
export HTTP_PROXY=myserver:1981
$ source ~/.bash_profile
转载自:https://developer.android.com/studio/command-line/variables?hl=zh-cn