Zmienne środowiskowe

Możesz skonfigurować działanie Android Studio i narzędzi wiersza poleceń, ustawiając zmienne środowiskowe. Jedną z najbardziej przydatnych zmiennych środowiskowych jest ANDROID_HOME. Jest ona odczytywana przez wiele narzędzi, aby określić katalog instalacyjny pakietu Android SDK. Aby uruchamiać narzędzia z wiersza poleceń bez podawania pełnej ścieżki do pliku wykonywalnego, ustaw zmienną środowiskową ścieżki wyszukiwania polecenia tak, aby obejmowała ANDROID_HOME/tools, ANDROID_HOME/tools/bin i ANDROID_HOME/platform-tools.

Ustawianie zmiennych środowiskowych

Poniższe przykłady pokazują, jak ustawić zmienne środowiskowe w oknie terminala i w skrypcie powłoki w różnych systemach operacyjnych. Zmienne ustawień w oknach terminala obowiązują tylko wtedy, gdy okno jest otwarte. W systemach macOS i Linux przy każdym uruchomieniu nowej powłoki w skryptach inicjowania powłoki określone są ustawienia zmiennych. W systemie Windows ustawienia zmiennych można skonfigurować w ustawieniach systemu.

Windows: w oknie terminala wpisz:

set HTTP_PROXY=myserver:1981

Możesz też dodać ją przy użyciu interfejsu użytkownika systemu Windows. Aby dowiedzieć się, jak to zrobić, zapoznaj się z dokumentacją dotyczącą używanej wersji systemu Windows.

macOS i Linux: dokładna metoda ustawiania zmiennych środowiskowych zależy od używanej powłoki. Aby określić działający typ powłoki, wpisz:

echo $0

W powłokach, takich jak Gnu Bash czy Zsh, zmienne są ustawiane przy użyciu tej składni:

export VARIABLE_NAME=<new-value>

W innych powłokach, takich jak TCSH, zmienne są ustawiane przy użyciu tej składni:

setenv VARIABLE_NAME <new-value>

Polecenia te można dodawać do skryptu inicjowania powłoki, aby ustawiać zmienne przy każdym uruchomieniu nowej instancji powłoki.

Lokalizacja skryptu inicjowania powłoki zależy od używanej powłoki. W przypadku Gnu Bash lokalizacją może być ~/.bash_profile. W przypadku Zsh lokalizacją może być ~/.zprofile. W przypadku TCSH lokalizacją może być ~/.cshrc. Dla pewności sprawdź dokumentację używanej powłoki.

Możesz też zaktualizować zmienną środowiskową PATH, aby uwzględnić lokalizacje narzędzi.

W przypadku Gnu Bash lub Zsh:

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

W przypadku TCSH:

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

Informacje o zmiennych

W tabeli poniżej opisujemy często używane zmienne środowiskowe w narzędziach Android SDK.

Tabela 1. Zmienne środowiskowe

Zmienne środowiskowe pakietu Android SDK
ANDROID_HOME Ustawia ścieżkę do katalogu instalacji pakietu SDK. Po ustawieniu wartość zwykle się nie zmienia i może być używana przez wielu użytkowników na tym samym komputerze. Interfejs ANDROID_SDK_ROOT, który wskazuje też katalog instalacji pakietu SDK, został wycofany. Jeśli nadal będziesz z niej korzystać, Android Studio i wtyczka Androida do obsługi Gradle sprawdzą, czy stare i nowe zmienne są spójne.
ANDROID_USER_HOME Ustawia ścieżkę do katalogu preferencji użytkownika dla narzędzi wchodzących w skład pakietu Android SDK. Domyślna wartość to $HOME/.android/.

Niektóre starsze narzędzia, takie jak Android Studio 4.3 i starsze, nie odczytują ANDROID_USER_HOME. Aby zastąpić lokalizację preferencji użytkownika w przypadku starszych narzędzi, ustaw ANDROID_SDK_HOME na katalog nadrzędny, w którym ma zostać utworzony katalog .android.

REPO_OS_OVERRIDE Ustaw tę zmienną na windows, macosx lub linux, jeśli używasz sdkmanager do pobierania pakietów systemu operacyjnego innego niż bieżąca maszyna.
Zmienne środowiskowe konfiguracji Android Studio
Zmienne konfiguracji Android Studio zawierają ustawienia, które dostosowują lokalizację plików konfiguracji i pakietu JDK. Po uruchomieniu Android Studio sprawdza ustawienia tych zmiennych. Więcej informacji znajdziesz w artykule o konfigurowaniu Android Studio.
STUDIO_VM_OPTIONS Określa lokalizację pliku studio.vmoptions. Ten plik zawiera ustawienia wpływające na wydajność maszyny wirtualnej HotSpot Javy. Możesz go też otworzyć w Android Studio. Zobacz Dostosowywanie opcji maszyny wirtualnej.
STUDIO_PROPERTIES Ustawia lokalizację pliku idea.properties. Ten plik umożliwia dostosowanie właściwości środowiska IDE Android Studio, takich jak ścieżka do wtyczek zainstalowanych przez użytkownika oraz maksymalny rozmiar pliku obsługiwany przez IDE. Zapoznaj się z sekcją o dostosowywaniu właściwości IDE.
STUDIO_JDK Ustawia lokalizację pakietu JDK, w którym działa Android Studio. Po uruchomieniu IDE sprawdza zmienne środowiskowe STUDIO_JDK, JDK_HOME i JAVA_HOME (w tej kolejności).
STUDIO_GRADLE_JDK Ustawia lokalizację pliku JDK, którego Android Studio używa do uruchamiania demona Gradle. Po uruchomieniu IDE najpierw sprawdza STUDIO_GRADLE_JDK. Jeśli STUDIO_GRADLE_JDK nie jest zdefiniowany, IDE używa wartości określonej w ustawieniach struktury projektu.
Zmienne środowiskowe emulatora
Domyślnie emulator przechowuje pliki konfiguracji w lokalizacji $HOME/.android/, a dane AVD w: $HOME/.android/avd/. Możesz zastąpić wartości domyślne, ustawiając poniższe zmienne środowiskowe. Polecenie emulator -avd <avd_name> przeszukuje katalog avd w kolejności wartości w $ANDROID_AVD_HOME, $ANDROID_USER_HOME/avd/ i $HOME/.android/avd/.

Aby uzyskać pomoc dotyczącą zmiennej środowiskowej emulatora, wpisz emulator -help-environment w wierszu poleceń. Informacje o opcjach wiersza poleceń emulator znajdziesz w artykule o uruchamianiu emulatora z poziomu wiersza poleceń.

ANDROID_EMULATOR_HOME Ustawia ścieżkę do katalogu konfiguracji emulatora specyficznego dla użytkownika. Domyślna wartość to $ANDROID_USER_HOME.

Starsze narzędzia, takie jak Android Studio 4.3 i starsze, nie obsługują ANDROID_USER_HOME. W przypadku tych narzędzi wartość domyślna to $ANDROID_SDK_HOME/.android.

ANDROID_AVD_HOME Ustawia ścieżkę do katalogu zawierającego wszystkie pliki specyficzne dla AVD, które składają się głównie z bardzo dużych obrazów dysków. Lokalizacja domyślna to $ANDROID_EMULATOR_HOME/avd/. Jeśli na dysku jest mało miejsca, możesz określić nową lokalizację.
Po uruchomieniu emulator Androida wysyła zapytania do tych zmiennych środowiskowych:
ANDROID_LOG_TAGS Zobacz ANDROID_LOG_TAGS.
HTTP_PROXY

Zawiera ustawienie serwera proxy HTTP/HTTPS dla globalnego serwera proxy HTTP. między hostem a portem jest używany separator dwukropków (:), Na przykład: set HTTP_PROXY=myserver:1981.

Działa to tak samo jak podanie argumentu -http-proxy proxy podczas uruchamiania emulatora z poziomu wiersza poleceń.

ANDROID_VERBOSE Zobacz ANDROID_VERBOSE.
ANDROID_HOME Zobacz ANDROID_HOME.
ANDROID_EMULATOR_USE_SYSTEM_LIBS Zawiera wartość 0 (domyślną) lub 1. Wartość 1 oznacza, że używany jest plik libstdc++.so systemu, a nie plik dołączony do emulatora. Ustaw tę zmienną środowiskową tylko wtedy, gdy z powodu problemu z biblioteką systemową emulator nie uruchamia się w systemie Linux. Na przykład niektóre biblioteki sterownika Linux Radeon GL wymagają nowszego pliku libstdc++.so.
Dźwięk szybkiego emulatora (QEMU)
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV W systemie Linux możesz zmienić domyślny backend audio emulatora, ustawiając zmienną środowiskową QEMU_AUDIO_DRV na jedną z tych wartości:
  • alsa: użyj backendu Advanced Linux Sound Architecture (ALSA)
  • esd: użyj backendu Enlightened Sound Daemon (EsounD)
  • sdl: użyj backendu audio Simple DirectMedia Layer (SDL) (bez obsługi wejścia audio)
  • oss:: użyj backendu Open Sound System (OSS).
  • none:: nie obsługuj dźwięku
set QEMU_AUDIO_DRV=alsa

Możesz też używać różnych backendów dla danych wejściowych i wyjściowych audio, wybierając jedną z wartości QEMU dla zmiennych środowiskowych QEMU_AUDIO_OUT_DRV i QEMU_AUDIO_IN_DRV:

set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

Jeśli chcesz wyłączyć obsługę dźwięku, użyj opcji emulator -no-audio lub ustaw QEMU_AUDIO_DRV na none. Wyłączenie dźwięku może być konieczne w tych sytuacjach:

  • W rzadkich przypadkach sterowniki audio mogą spowodować ponowne uruchomienie systemu Windows, gdy emulator działa.
  • Na niektórych komputerach z systemem Linux emulator może się zawiesić przy uruchomieniu z włączoną obsługą dźwięku.
zmienne środowiskowe adb
ANDROID_SERIAL Użyj tej zmiennej, aby podać numer seryjny emulatora, np. emulator-5555, do polecenia adb. Jeśli ustawisz tę zmienną, ale za pomocą opcji -s podasz numer seryjny w wierszu poleceń, wartość w pliku ANDROID_SERIAL zostanie zastąpiona danymi wejściowymi z wiersza poleceń.

Ten przykład ustawia ANDROID_SERIAL i wywołuje metodę adb install helloworld.apk, która następnie instaluje pakiet aplikacji na Androida w emulatorze-5555.

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk

Zmienne środowiskowe adb logcat
ANDROID_LOG_TAGS Użyj tej zmiennej środowiskowej, aby ustawić domyślne wyrażenie filtra, gdy uruchamiasz logcat na komputerze deweloperskim. Przykład:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

Działa to tak samo jak podanie argumentu -logcat tags podczas uruchamiania emulatora z poziomu wiersza poleceń.

Więcej informacji i przykłady znajdziesz w sekcji Filtrowanie danych wyjściowych logu.

ADB_TRACE Zawiera rozdzielaną przecinkami listę informacji debugowania, które mają zostać zarejestrowane. Mogą to być te wartości: all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport i jdwp.

Aby wyświetlić logi adb dla klientów adb i serwera adb, ustaw ADB_TRACE na all, a następnie wywołaj polecenie adb logcat w ten sposób:

set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE Zawiera oddzieloną przecinkami listę szczegółowych opcji wyjściowych (tagów debugowania) używanych przez emulator. Poniższy przykład pokazuje parametr ANDROID_VERBOSE zdefiniowany za pomocą tagów debugowania debug-socket i debug-radio:
set ANDROID_VERBOSE=socket,radio

Działa to tak samo jak określenie razem argumentów -verbose -verbose-socket -verbose-radio podczas uruchamiania emulatora z poziomu wiersza poleceń.

Nieobsługiwane tagi debugowania są ignorowane. Więcej informacji o tagach debugowania znajdziesz tutaj: emulator -help-debug-tags.