Zmienne środowiskowe

Działanie Androida Studio i narzędzi wiersza poleceń możesz skonfigurować, ustawiając zmienne środowiskowe. Jedną z najbardziej przydatnych zmiennych środowiskowych do ustawienia jest ANDROID_HOME, którą wiele narzędzi odczytuje w celu określenia katalogu instalacji 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 poleceń tak, aby zawierał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 przypadku różnych systemów operacyjnych. Ustawienia zmiennych w oknach terminala są ważne tylko tak długo, jak okno jest otwarte. W systemach macOS i Linux za każdym razem, gdy uruchamiana jest nowa powłoka, ustawienia zmiennych są konfigurowane w skryptach inicjujących powłokę. 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ć go w interfejsie Windows. Informacje o tym, jak to zrobić, znajdziesz w dokumentacji swojej wersji systemu Windows.

macOS i Linux: dokładna metoda ustawiania zmiennych środowiskowych zależy od używanej powłoki. Aby sprawdzić, który typ powłoki jest uruchomiony, wpisz:

echo $0

W powłokach takich jak Gnu Bash czy Zsh zmienne są ustawiane za pomocą 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>

Te polecenia można dodać do skryptu inicjującego powłokę, aby ustawiać zmienne przy każdym uruchomieniu nowej instancji powłoki.

Lokalizacja skryptu inicjującego powłokę zależy od używanej powłoki. W przypadku Gnu Bash lokalizacja może być ~/.bash_profile. W przypadku powłoki Zsh lokalizacja może być ~/.zprofile. W przypadku TCSH lokalizacja może być ~/.cshrc. Aby się upewnić, zapoznaj się z 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
  

Odwołanie do zmiennych

W tabeli poniżej znajdziesz opis najczęściej używanych zmiennych środowiskowych narzędzi pakietu Android SDK.

Tabela 1. Zmienne środowiskowe

Zmienne środowiskowe Android SDK
ANDROID_HOME Ustawia ścieżkę do katalogu instalacyjnego pakietu SDK. Po ustawieniu wartość zwykle nie zmienia się i może być udostępniana przez wielu użytkowników na tym samym komputerze. ANDROID_SDK_ROOT, który również wskazuje katalog instalacyjny pakietu SDK, jest wycofany. Jeśli nadal będziesz go używać, Android Studio i wtyczka Androida do obsługi Gradle będą sprawdzać, czy stare i nowe zmienne są spójne.
ANDROID_USER_HOME Ustawia ścieżkę do katalogu preferencji użytkownika dla narzędzi, które są częścią pakietu Android SDK. Domyślna wartość to $HOME/.android/.

Niektóre starsze narzędzia, np. Android Studio 4.3 i starsze, nie odczytują znaku ANDROID_USER_HOME. Aby zastąpić lokalizację preferencji użytkownika w przypadku starszych narzędzi, ustaw zmienną 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, gdy używasz polecenia sdkmanager do pobierania pakietów dla systemu operacyjnego innego niż ten, który jest obecnie używany na komputerze.
Zmienne środowiskowe konfiguracji Androida Studio
Zmienne konfiguracji Androida Studio zawierają ustawienia, które dostosowują lokalizację plików konfiguracyjnych i JDK. Podczas uruchamiania Android Studio sprawdza te zmienne pod kątem ustawień. Więcej informacji znajdziesz w artykule Konfigurowanie Androida Studio.
STUDIO_VM_OPTIONS Ustawia lokalizację pliku studio.vmoptions. Ten plik zawiera ustawienia wpływające na charakterystykę wydajności maszyny wirtualnej Java HotSpot. Dostęp do tego pliku można też uzyskać w Android Studio. Zobacz Dostosowywanie opcji maszyny wirtualnej.
STUDIO_PROPERTIES Ustawia lokalizację pliku idea.properties. Ten plik umożliwia dostosowywanie właściwości środowiska IDE Android Studio, takich jak ścieżka do zainstalowanych przez użytkownika wtyczek i maksymalny rozmiar pliku obsługiwany przez środowisko IDE. Zobacz Dostosowywanie właściwości środowiska IDE.
STUDIO_JDK Ustawia lokalizację JDK, w którym działa Android Studio. Po uruchomieniu środowiska IDE sprawdza ono zmienne środowiskowe STUDIO_JDK, JDK_HOME i JAVA_HOME w tej kolejności.
STUDIO_GRADLE_JDK Określa lokalizację pakietu JDK, którego Android Studio używa do uruchamiania demona Gradle. Gdy uruchomisz IDE, najpierw sprawdzi STUDIO_GRADLE_JDK. Jeśli zmienna STUDIO_GRADLE_JDK nie jest zdefiniowana, IDE używa wartości ustawionej w ustawieniach struktury projektu.
Zmienne środowiskowe emulatora
Domyślnie emulator przechowuje pliki konfiguracyjne w folderze $HOME/.android/, a dane AVD w folderze $HOME/.android/avd/. Możesz zastąpić wartości domyślne, ustawiając te 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, w wierszu poleceń wpisz emulator -help-environment. Informacje o opcjach wiersza poleceń emulator znajdziesz w artykule Uruchamianie emulatora z wiersza poleceń.

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

Starsze narzędzia, takie jak Android Studio 4.3 i wcześniejsze, nie odczytują 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 związane z AVD, które w większości są bardzo dużymi obrazami dysków. Domyślna lokalizacja to $ANDROID_EMULATOR_HOME/avd/. Nową lokalizację możesz określić, jeśli w domyślnej lokalizacji jest mało miejsca na dysku.
Emulator Androida wysyła zapytania o te zmienne środowiskowe podczas uruchamiania:
ANDROID_LOG_TAGS Zobacz: ANDROID_LOG_TAGS.
HTTP_PROXY

Zawiera ustawienie serwera proxy HTTP/HTTPS dla globalnego serwera proxy HTTP. Używa dwukropka (:) jako separatora między hostem a portem. Na przykład: set HTTP_PROXY=myserver:1981.

Jest to równoznaczne z określeniem argumentu -http-proxy proxy podczas uruchamiania emulatora z 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 zamiast pliku dołączonego do emulatora używany jest plik libstdc++.so systemu. Ustaw tę zmienną środowiskową tylko wtedy, gdy emulator nie uruchamia się w systemie Linux z powodu problemu z biblioteką systemową. Na przykład niektóre biblioteki sterowników Linux Radeon GL wymagają nowszego pliku libstdc++.so.
Dźwięk w szybkim emulatorze (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żywanie backendu Enlightened Sound Daemon (EsounD)
  • sdl: używanie backendu audio Simple DirectMedia Layer (SDL) (bez obsługi wejścia audio).
  • oss:: używanie backendu Open Sound System (OSS)
  • none:: nie obsługuje dźwięku
set QEMU_AUDIO_DRV=alsa

Możesz też używać różnych backendów dla wejścia i wyjścia 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. W tych sytuacjach może być konieczne wyłączenie dźwięku:

  • W rzadkich przypadkach sterowniki audio mogą powodować ponowne uruchomienie systemu Windows podczas działania emulatora.
  • Na niektórych komputerach z systemem Linux emulator może zawiesić się podczas uruchamiania, gdy włączona jest obsługa dźwięku.
Zmienne środowiskowe adb
ANDROID_SERIAL Użyj tej zmiennej, aby podać numer seryjny emulatora, np. emulator-5555, w poleceniu adb. Jeśli ustawisz tę zmienną, ale użyjesz opcji -s do określenia numeru seryjnego z poziomu wiersza poleceń, dane wejściowe wiersza poleceń zastąpią wartość w ANDROID_SERIAL.

W tym przykładzie ustawiamy ANDROID_SERIAL i wywołujemy adb install helloworld.apk, co powoduje zainstalowanie pakietu aplikacji na Androida na 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 podczas uruchamiania polecenia adb logcat na komputerze deweloperskim. Przykład:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:S

Wyrażenie filtra używa tej samej składni co opcja emulatora -logcat tags.

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

ADB_TRACE Zawiera rozdzieloną przecinkami listę informacji do debugowania, które mają być rejestrowane. Wartości mogą być następujące: all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport i jdwp.

Aby wyświetlić logi adb 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 rozdzieloną przecinkami listę opcji szczegółowych danych wyjściowych (tagów debugowania) używanych przez emulator. W tym przykładzie element ANDROID_VERBOSE jest zdefiniowany za pomocą tagów debugowania debug-socket i debug-radio:
set ANDROID_VERBOSE=socket,radio

Jest to równoznaczne z określeniem argumentów -verbose -verbose-socket -verbose-radio podczas uruchamiania emulatora z wiersza poleceń.

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