Variabili di ambiente

Puoi configurare il comportamento di Android Studio e degli strumenti a riga di comando impostando le variabili di ambiente. Una delle variabili di ambiente più utili da impostare è ANDROID_HOME, che molti strumenti leggono per determinare la directory di installazione dell'SDK Android. Per eseguire gli strumenti dalla riga di comando senza includere il percorso completo dell'eseguibile, imposta la variabile di ambiente del percorso di ricerca dei comandi in modo che includa ANDROID_HOME/tools, ANDROID_HOME/tools/bin e ANDROID_HOME/platform-tools.

Come impostare le variabili di ambiente

Gli esempi seguenti mostrano come impostare le variabili di ambiente in una finestra del terminale e in uno script shell per diversi sistemi operativi. Le impostazioni delle variabili nelle finestre del terminale durano solo finché la finestra è aperta. Su macOS e Linux, ogni volta che viene avviata una nuova shell, le impostazioni delle variabili vengono impostate negli script di inizializzazione della shell. Su Windows, le impostazioni delle variabili possono essere configurate tramite le impostazioni di sistema.

Windows: in una finestra del terminale, digita:

set HTTP_PROXY=myserver:1981

In alternativa, aggiungilo tramite l'interfaccia utente di Windows. Consulta la documentazione della tua versione di Windows per scoprire come.

macOS e Linux: il metodo preciso per impostare le variabili di ambiente dipende dalla shell che utilizzi. Per determinare il tipo di shell in esecuzione, digita:

echo $0

In shell come Gnu Bash o Zsh, le variabili vengono impostate utilizzando la seguente sintassi:

export VARIABLE_NAME=<new-value>

In altre shell, come TCSH, le variabili vengono impostate utilizzando la seguente sintassi:

setenv VARIABLE_NAME <new-value>

Questi comandi possono essere aggiunti allo script di inizializzazione della shell per impostare le variabili ogni volta che viene eseguita una nuova istanza della shell.

La posizione dello script di inizializzazione della shell dipende dalla shell utilizzata. Per Gnu Bash, la posizione può essere ~/.bash_profile. Per Zsh, la posizione può essere ~/.zprofile. Per TCSH, la posizione può essere ~/.cshrc. Consulta la documentazione della shell che stai utilizzando per esserne certo.

Puoi anche aggiornare la variabile di ambiente PATH per includere le posizioni degli strumenti.

Per Gnu Bash o Zsh:

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

Per TCSH:

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

Riferimento alle variabili

La tabella seguente descrive le variabili di ambiente di uso comune per gli strumenti dell'SDK Android.

Tabella 1. Variabili di ambiente

Variabili di ambiente dell'SDK Android
ANDROID_HOME Imposta il percorso della directory di installazione dell'SDK. Una volta impostato, il valore in genere non cambia e può essere condiviso da più utenti sulla stessa macchina. ANDROID_SDK_ROOT, che punta anche alla directory di installazione dell'SDK, è deprecato. Se continui a utilizzarlo, Android Studio e il plug-in Android per Gradle verificheranno che le variabili vecchie e nuove siano coerenti.
ANDROID_USER_HOME Imposta il percorso della directory delle preferenze utente per gli strumenti che fanno parte dell'SDK Android. Il valore predefinito è $HOME/.android/.

Alcuni strumenti meno recenti, come Android Studio 4.3 e versioni precedenti, non leggono ANDROID_USER_HOME. Per ignorare la posizione delle preferenze utente per questi strumenti precedenti, imposta ANDROID_SDK_HOME sulla directory principale in cui vuoi che venga creata la directory .android.

REPO_OS_OVERRIDE Imposta questa variabile su windows, macosx o linux quando utilizzi sdkmanager per scaricare pacchetti per un sistema operativo diverso dalla macchina attuale.
Variabili di ambiente di configurazione di Android Studio
Le variabili di configurazione di Android Studio contengono impostazioni che personalizzano la posizione di file di configurazione e JDK. All'avvio, Android Studio controlla queste variabili per le impostazioni. Per saperne di più, consulta Configura Android Studio.
STUDIO_VM_OPTIONS Imposta la posizione del file studio.vmoptions. Questo file contiene impostazioni che influiscono sulle caratteristiche di prestazioni della macchina virtuale Java HotSpot. È possibile accedere a questo file anche da Android Studio. Vedi Personalizzare le opzioni della VM.
STUDIO_PROPERTIES Imposta la posizione del file idea.properties. Questo file consente di personalizzare le proprietà dell'IDE Android Studio, ad esempio il percorso dei plug-in installati dall'utente e la dimensione massima dei file supportata dall'IDE. Consulta Personalizzare le proprietà dell'IDE.
STUDIO_JDK Imposta la posizione del JDK in cui viene eseguito Android Studio. Quando avvii l'IDE, controlla le variabili di ambiente STUDIO_JDK, JDK_HOME e JAVA_HOME, in quest'ordine.
STUDIO_GRADLE_JDK Imposta la posizione del JDK che Android Studio utilizza per avviare il daemon Gradle. Quando avvii l'IDE, viene innanzitutto controllato STUDIO_GRADLE_JDK. Se STUDIO_GRADLE_JDK non è definito, l'IDE utilizza il valore impostato nelle impostazioni della struttura del progetto.
Variabili di ambiente dell'emulatore
Per impostazione predefinita, l'emulatore archivia i file di configurazione in $HOME/.android/ e i dati AVD in $HOME/.android/avd/. Puoi eseguire l'override dei valori predefiniti impostando le seguenti variabili di ambiente. Il comando emulator -avd <avd_name> cerca nella directory avd nell'ordine dei valori in $ANDROID_AVD_HOME, $ANDROID_USER_HOME/avd/ e $HOME/.android/avd/.

Per informazioni sulla variabile di ambiente dell'emulatore, digita emulator -help-environment nella riga di comando. Per informazioni sulle opzioni della riga di comando emulator, vedi Avviare l'emulatore dalla riga di comando.

ANDROID_EMULATOR_HOME Imposta il percorso della directory di configurazione dell'emulatore specifica per l'utente. Il valore predefinito è $ANDROID_USER_HOME.

Gli strumenti meno recenti, come Android Studio 4.3 e versioni precedenti, non leggono ANDROID_USER_HOME. Per questi strumenti, il valore predefinito è $ANDROID_SDK_HOME/.android.

ANDROID_AVD_HOME Imposta il percorso della directory che contiene tutti i file specifici dell'AVD, che sono costituiti principalmente da immagini disco molto grandi. La località predefinita è $ANDROID_EMULATOR_HOME/avd/. Potresti voler specificare una nuova posizione se lo spazio su disco della località predefinita è in esaurimento.
L'emulatore Android esegue query sulle seguenti variabili di ambiente all'avvio:
ANDROID_LOG_TAGS Consulta ANDROID_LOG_TAGS.
HTTP_PROXY

Contiene l'impostazione del proxy HTTP/HTTPS per un proxy HTTP globale. Utilizza i due punti (:) come separatore tra l'host e la porta. Ad esempio, set HTTP_PROXY=myserver:1981.

È come specificare l'argomento -http-proxy proxy quando esegui l'emulatore dalla riga di comando.

ANDROID_VERBOSE Consulta ANDROID_VERBOSE.
ANDROID_HOME Consulta ANDROID_HOME.
ANDROID_EMULATOR_USE_SYSTEM_LIBS Contiene il valore 0 (predefinito) o 1. Un valore pari a 1 indica che viene utilizzato il file libstdc++.so del sistema anziché quello fornito in bundle con l'emulatore. Imposta questa variabile di ambiente solo quando l'emulatore non viene avviato sul sistema Linux a causa di un problema della libreria di sistema. Ad esempio, alcune librerie di driver Linux Radeon GL richiedono un file libstdc++.so più recente.
Audio di Quick Emulator (QEMU)
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV Su Linux, puoi modificare il backend audio predefinito dell'emulatore impostando la variabile di ambiente QEMU_AUDIO_DRV su uno dei seguenti valori:
  • alsa: utilizza il backend Advanced Linux Sound Architecture (ALSA)
  • esd: Utilizza il backend Enlightened Sound Daemon (EsounD)
  • sdl: utilizza il backend audio Simple DirectMedia Layer (SDL) (nessun input audio supportato)
  • oss:: usa il backend Open Sound System (OSS)
  • none:: Non supporta l'audio
set QEMU_AUDIO_DRV=alsa

Puoi anche utilizzare backend distinti per l'input e gli output audio selezionando uno dei valori QEMU per le variabili di ambiente QEMU_AUDIO_OUT_DRV e QEMU_AUDIO_IN_DRV:

set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

Se vuoi disattivare il supporto audio, utilizza l'opzione emulator -no-audio o imposta QEMU_AUDIO_DRV su none. Potresti dover disattivare l'audio nelle seguenti situazioni:

  • In rari casi, i driver audio possono causare il riavvio di Windows durante l'esecuzione dell'emulatore.
  • Su alcuni computer Linux, l'emulatore potrebbe bloccarsi all'avvio con il supporto audio abilitato.
Variabili di ambiente adb
ANDROID_SERIAL Utilizza questa variabile per fornire un numero di serie dell'emulatore, ad esempio emulator-5555, a un comando adb. Se imposti questa variabile, ma utilizzi l'opzione -s per specificare un numero di serie dalla riga di comando, l'input della riga di comando sostituisce il valore in ANDROID_SERIAL.

L'esempio seguente imposta ANDROID_SERIAL e chiama adb install helloworld.apk, che a sua volta installa il pacchetto dell'applicazione Android su emulator-5555.

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk
Variabili di ambiente adb logcat
ANDROID_LOG_TAGS Utilizza questa variabile di ambiente per impostare un'espressione di filtro predefinita quando esegui adb logcat dal tuo computer di sviluppo. Ad esempio:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:S

L'espressione di filtro utilizza la stessa sintassi dell'opzione -logcat tags dell'emulatore.

Per ulteriori informazioni ed esempi, consulta la sezione Filtrare l'output del log.

ADB_TRACE Contiene un elenco separato da virgole delle informazioni di debug da registrare. I valori possono essere i seguenti: all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport e jdwp.

Per visualizzare i log adb per i client adb e il server adb, imposta ADB_TRACE su all e poi chiama il comando adb logcat, come segue:

set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE Contiene un elenco separato da virgole di opzioni di output dettagliate (tag di debug) utilizzate dall'emulatore. L'esempio seguente mostra ANDROID_VERBOSE definito con i tag di debug debug-socket e debug-radio:
set ANDROID_VERBOSE=socket,radio

È come specificare gli argomenti -verbose -verbose-socket -verbose-radio insieme quando esegui l'emulatore dalla riga di comando.

I tag di debug non supportati vengono ignorati. Per saperne di più sui tag di debug, utilizza emulator -help-debug-tags.