Переменные среды

Вы можете настроить поведение Android Studio и инструментов командной строки, задав переменные среды. Одна из самых полезных переменных среды, которые можно задать, – ANDROID_HOME. Многие инструменты считывают ее, чтобы определить каталог установки Android SDK. Чтобы запускать инструменты из командной строки, не указывая полный путь к исполняемому файлу, задайте для переменной среды путь поиска команд, включив в нее ANDROID_HOME/tools, ANDROID_HOME/tools/bin и ANDROID_HOME/platform-tools.

Как задать переменные среды

В примерах ниже показано, как задать переменные среды в окне терминала и в сценарии командной строки для разных операционных систем. Настройки переменных в окнах терминала действуют, только пока окно открыто. В macOS и Linux при запуске новой оболочки настройки переменных задаются в скриптах инициализации оболочки. В Windows параметры переменных можно задать в системных настройках.

Windows: в окне терминала введите следующее:

set HTTP_PROXY=myserver:1981

Вы также можете добавить его через интерфейс Windows. Инструкции можно найти в документации к вашей версии Windows.

macOS и Linux. Способ настройки переменных среды зависит от используемой оболочки. Чтобы узнать, какой тип оболочки используется, введите следующую команду:

echo $0

В таких оболочках, как GNU Bash или Zsh, переменные задаются с помощью следующего синтаксиса:

export VARIABLE_NAME=<new-value>

В других оболочках, например TCSH, переменные задаются с помощью следующего синтаксиса:

setenv VARIABLE_NAME <new-value>

Эти команды можно добавить в скрипт инициализации оболочки, чтобы задавать переменные при каждом запуске нового экземпляра оболочки.

Расположение скрипта инициализации оболочки зависит от используемой оболочки. В Gnu Bash местоположение может быть ~/.bash_profile. Для Zsh местоположение может быть ~/.zprofile. Для TCSH местоположение может быть указано в виде ~/.cshrc. Чтобы узнать, так ли это, изучите документацию к используемой оболочке.

Вы также можете обновить переменную среды 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 и более ранние версии, не считывают ANDROID_USER_HOME. Чтобы переопределить местоположение настроек пользователя для этих устаревших инструментов, задайте для переменной ANDROID_SDK_HOME родительский каталог, в котором нужно создать каталог .android.

REPO_OS_OVERRIDE Установите для этой переменной значение windows, macosx или linux, если вы используете sdkmanager для скачивания пакетов для операционной системы, отличной от текущей.
Переменные среды конфигурации Android Studio
Переменные конфигурации Android Studio содержат настройки, которые позволяют задать расположение файлов конфигурации и JDK. При запуске Android Studio проверяет эти переменные на наличие настроек. Подробнее о том, как настроить Android Studio…
STUDIO_VM_OPTIONS Указывает местоположение файла studio.vmoptions. Этот файл содержит настройки, влияющие на производительность виртуальной машины Java HotSpot. Этот файл также можно открыть в Android Studio. Подробнее о том, как настроить параметры виртуальной машины…
STUDIO_PROPERTIES Указывает местоположение файла idea.properties. Этот файл позволяет настраивать свойства IDE Android Studio, например путь к установленным пользователем плагинам и максимальный размер файла, поддерживаемый IDE. Как настроить свойства IDE
STUDIO_JDK Задает расположение JDK, в которой работает Android Studio. При запуске IDE проверяет переменные среды STUDIO_JDK, JDK_HOME и JAVA_HOME в указанном порядке.
STUDIO_GRADLE_JDK Указывает местоположение JDK, которое Android Studio использует для запуска демона Gradle. При запуске IDE сначала проверяется файл STUDIO_GRADLE_JDK. Если поле STUDIO_GRADLE_JDK не задано, IDE использует значение, указанное в настройках структуры проекта.
Переменные среды эмулятора
По умолчанию эмулятор хранит файлы конфигурации в каталоге $HOME/.android/, а данные AVD – в каталоге $HOME/.android/avd/. Вы можете переопределить значения по умолчанию, задав следующие переменные среды: Команда emulator -avd <avd_name> выполняет поиск в каталоге avd в порядке значений в $ANDROID_AVD_HOME, $ANDROID_USER_HOME/avd/ и $HOME/.android/avd/.

Чтобы получить справку по переменным среды эмулятора, введите в командной строке emulator -help-environment. Информацию о параметрах командной строки emulator можно найти в статье Как запустить эмулятор из командной строки.

ANDROID_EMULATOR_HOME Указывает путь к каталогу с конфигурацией эмулятора для определенного пользователя. Значение по умолчанию – $ANDROID_USER_HOME.

Более старые инструменты, например Android Studio 4.3 и более ранние версии, не считывают ANDROID_USER_HOME. Для этих инструментов по умолчанию используется значение $ANDROID_SDK_HOME/.android.

ANDROID_AVD_HOME Указывает путь к каталогу, содержащему все файлы, относящиеся к AVD, которые в основном состоят из очень больших образов дисков. Местоположение по умолчанию – $ANDROID_EMULATOR_HOME/avd/. Указать новое местоположение может потребоваться, если в местоположении по умолчанию недостаточно места на диске.
При запуске эмулятор Android запрашивает следующие переменные среды:
ANDROID_LOG_TAGS Подробнее ANDROID_LOG_TAGS…
HTTP_PROXY

Содержит настройку HTTP/HTTPS-прокси для глобального HTTP-прокси. Использует двоеточие (:) в качестве разделителя между хостом и портом. Пример: set HTTP_PROXY=myserver:1981.

Это то же самое, что указать аргумент -http-proxy proxy при запуске эмулятора из командной строки.

ANDROID_VERBOSE Подробнее ANDROID_VERBOSE…
ANDROID_HOME Подробнее ANDROID_HOME…
ANDROID_EMULATOR_USE_SYSTEM_LIBS Содержит значение 0 (по умолчанию) или 1. Значение 1 означает, что вместо файла, поставляемого вместе с эмулятором, используется файл libstdc++.so системы. Устанавливайте эту переменную среды, только если эмулятор не запускается в вашей системе Linux из-за проблемы с системной библиотекой. Например, некоторым библиотекам драйверов Radeon GL для Linux требуется более новая версия файла libstdc++.so.
Аудио в быстром эмуляторе (QEMU)
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV В Linux можно изменить аудиоподсистему эмулятора по умолчанию, задав для переменной среды QEMU_AUDIO_DRV одно из следующих значений:
  • alsa: использовать серверную часть Advanced Linux Sound Architecture (ALSA)
  • esd: использовать сервер Enlightened Sound Daemon (EsounD).
  • sdl: использовать аудиоподсистему Simple DirectMedia Layer (SDL) (аудиовход не поддерживается).
  • oss:: использовать серверную часть Open Sound System (OSS).
  • none:: не поддерживает аудио
set QEMU_AUDIO_DRV=alsa

Вы также можете использовать разные серверные части для аудиовхода и аудиовыхода, выбрав одно из значений QEMU для переменных среды QEMU_AUDIO_OUT_DRV и QEMU_AUDIO_IN_DRV:

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, после чего пакет приложения для Android устанавливается на эмулятор emulator-5555.

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk
Переменные среды adb logcat
ANDROID_LOG_TAGS Используйте эту переменную среды, чтобы задать выражение фильтра по умолчанию при запуске adb logcat с компьютера разработчика. Пример:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:S

Выражение фильтра использует тот же синтаксис, что и параметр эмулятора -logcat tags.

Подробнее о том, как фильтровать данные журнала…

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 Содержит список параметров подробного вывода (теги отладки), разделенных запятыми, которые используются эмулятором. В следующем примере показан тег ANDROID_VERBOSE, определенный с помощью тегов отладки debug-socket и debug-radio:
set ANDROID_VERBOSE=socket,radio

Это то же самое, что указать аргументы -verbose -verbose-socket -verbose-radio вместе при запуске эмулятора из командной строки.

Неподдерживаемые теги отладки игнорируются. Подробнее emulator -help-debug-tagsо тегах отладки…