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

I seguenti esempi 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 dei terminali durano solo finché la finestra è aperta. Su macOS e Linux, a ogni avvio di 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 quanto segue:

set HTTP_PROXY=myserver:1981

In alternativa, aggiungilo tramite l'interfaccia utente di Windows. Per scoprire come fare, consulta la documentazione della tua versione di Windows.

macOS e Linux: il metodo preciso per impostare le variabili di ambiente dipende dalla shell in uso. Per determinare quale tipo di shell è in esecuzione, digita quanto segue:

echo $0

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

export VARIABLE_NAME=<new-value>

In altre shell, ad esempio 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 località può essere ~/.bash_profile. Per Zsh, la località può essere ~/.zprofile. Per TCSH, la località può essere ~/.cshrc. Per sicurezza, controlla la documentazione della shell che stai utilizzando.

Puoi anche aggiornare la variabile di ambiente PATH in modo da includere le località 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 quanto riguarda il TCSH:

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

Informazioni sulle variabili

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

Tabella 1. Variabili di ambiente

Variabili di ambiente SDK Android
ANDROID_HOME Imposta il percorso della directory di installazione dell'SDK. Una volta impostato, in genere il valore non cambia e può essere condiviso da più utenti sulla stessa macchina. L'istruzione ANDROID_SDK_ROOT, che rimanda anche alla directory di installazione dell'SDK, è deprecata. Se continui a utilizzarlo, Android Studio e il plug-in Android Gradle verificheranno che le variabili vecchie e nuove siano coerenti.
ANDROID_USER_HOME Imposta il percorso della directory delle preferenze dell'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 eseguire l'override della posizione delle preferenze utente per gli strumenti precedenti, imposta ANDROID_SDK_HOME sulla directory padre in cui vuoi creare 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 dei file di configurazione e del JDK. All'avvio, Android Studio controlla le impostazioni in queste variabili. Per ulteriori informazioni, consulta Configurare Android Studio.
STUDIO_VM_OPTIONS Imposta la posizione del file studio.vmoptions. Questo file contiene impostazioni che influiscono sulle caratteristiche delle prestazioni della macchina virtuale Java HotSpot. Il file è accessibile anche da Android Studio. Vedi Personalizzare le opzioni delle VM.
STUDIO_PROPERTIES Imposta la posizione del file idea.properties. Questo file consente di personalizzare le proprietà dell'IDE di Android Studio, ad esempio il percorso dei plug-in installati dall'utente e le dimensioni massime dei file supportate dall'IDE. Vedi Personalizzare le proprietà IDE.
STUDIO_JDK Consente di impostare 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 questo ordine.
STUDIO_GRADLE_JDK Imposta la posizione del JDK che Android Studio utilizza per avviare il daemon Gradle. Quando avvii l'IDE, controlla per la prima volta STUDIO_GRADLE_JDK. Se STUDIO_GRADLE_JDK non è definito, l'IDE utilizza il valore impostato nelle impostazioni della struttura del progetto.
Variabili di ambiente 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 assistenza sulle variabili 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 di AVD, che sono composti principalmente da immagini disco di grandi dimensioni. La località predefinita è $ANDROID_EMULATOR_HOME/avd/. Ti consigliamo di specificare una nuova località se quella predefinita è in esaurimento.
All'avvio, l'emulatore Android esegue una query sulle seguenti variabili di ambiente:
ANDROID_LOG_TAGS Vedi 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.

Equivale a specificare l'argomento -http-proxy proxy quando si esegue l'emulatore dalla riga di comando.

ANDROID_VERBOSE Vedi ANDROID_VERBOSE.
ANDROID_HOME Vedi ANDROID_HOME.
ANDROID_EMULATOR_USE_SYSTEM_LIBS Contiene un valore pari a 0 (predefinito) o 1. Il valore 1 indica che viene utilizzato il file libstdc++.so del sistema al posto di quello fornito nell'emulatore. Imposta questa variabile di ambiente solo quando l'emulatore non si avvia sul tuo sistema Linux a causa di un problema relativo alla libreria di sistema. Ad esempio, alcune librerie driver Radeon GL Linux richiedono un file libstdc++.so più recente.
Audio emulatore rapido (QEMU)
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV Su Linux, puoi cambiare il backend audio predefinito dell'emulatore impostando la variabile di ambiente QEMU_AUDIO_DRV su uno dei seguenti valori:
  • alsa: usa il backend ALSA (Advanced Linux Sound Architecture)
  • esd: usa il backend Enlightened Sound Daemon (EsounD)
  • sdl: usa il backend audio Simple DirectMedia Layer (SDL) (nessun input audio supportato)
  • oss:: usa il backend Open Sound System (OSS)
  • none:: audio non supportato
set QEMU_AUDIO_DRV=alsa

Puoi anche utilizzare backend distinti per l'input audio e le uscite 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, usa l'opzione emulator -no-audio o imposta QEMU_AUDIO_DRV su none. Potrebbe essere necessario disattivare l'audio nelle seguenti situazioni:

  • In rari casi, i driver audio possono causare il riavvio di Windows mentre l'emulatore è in esecuzione.
  • 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 quindi installa il pacchetto dell'app Android sull'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 logcat dal computer di sviluppo. Ad esempio:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

Equivale a specificare l'argomento -logcat tags quando si esegue l'emulatore dalla riga di comando.

Consulta Filtra l'output dei log per ulteriori informazioni ed esempi.

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, quindi 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

Equivale a specificare insieme gli argomenti -verbose -verbose-socket -verbose-radio quando si esegue l'emulatore dalla riga di comando.

I tag di debug non supportati vengono ignorati. Per ulteriori informazioni sui tag di debug, utilizza emulator -help-debug-tags.