Variáveis de ambiente

Você pode configurar o comportamento do Android Studio e das ferramentas de linha de comando definindo variáveis de ambiente. Uma das variáveis de ambiente mais úteis a serem definidas é ANDROID_HOME, que muitas ferramentas leem para determinar o diretório de instalação do SDK do Android. Para executar ferramentas na linha de comando sem incluir o caminho completo para o executável, defina a variável de ambiente do caminho de pesquisa do comando para incluir ANDROID_HOME/tools, ANDROID_HOME/tools/bin e ANDROID_HOME/platform-tools.

Como configurar variáveis de ambiente

Os exemplos a seguir mostram como configurar variáveis de ambiente em uma janela de terminal e em um script de shell para diferentes sistemas operacionais. As configurações de variáveis em janelas de terminal duram apenas enquanto a janela está aberta. No macOS e no Linux, cada vez que um novo shell é iniciado, as configurações de variáveis são definidas nos scripts de inicialização do shell. No Windows, as configurações das variáveis podem ser definidas nas configurações do sistema.

Windows: em uma janela de terminal, digite o seguinte:

set HTTP_PROXY=myserver:1981

Se preferir, adicione-o pela IU do Windows. Confira a documentação da sua versão do Windows para aprender a fazer isso.

macOS e Linux: o método preciso para definir variáveis de ambiente depende do shell que você está usando. Para determinar qual tipo de shell está em execução, digite o seguinte:

echo $0

Em shells como Gnu Bash ou Zsh, as variáveis são definidas usando a seguinte sintaxe:

export VARIABLE_NAME=<new-value>

Em outros shells, como TCSH, as variáveis são definidas usando a seguinte sintaxe:

setenv VARIABLE_NAME <new-value>

Esses comandos podem ser adicionados ao script de inicialização do shell para definir as variáveis sempre que uma nova instância de shell é executada.

O local do script de inicialização do shell depende do shell em uso. Para Gnu Bash, o local pode ser ~/.bash_profile. Para Zsh, o local pode ser ~/.zprofile. Para TCSH, o local pode ser ~/.cshrc. Confira a documentação do shell que você está usando para ter certeza.

Também é possível atualizar a variável de ambiente PATH para incluir os locais da ferramenta.

Para Gnu Bash ou Zsh:

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

E para TCSH:

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

Referência de variáveis

A tabela a seguir descreve as variáveis de ambiente usadas com frequência para o Android SDK Tools.

Tabela 1. Variáveis de ambiente

Variáveis de ambiente do Android SDK
ANDROID_HOME Configura o caminho para o diretório de instalação do SDK. Depois de definido, o valor não costuma ser mudado e pode ser compartilhado por vários usuários na mesma máquina. ANDROID_SDK_ROOT, que também aponta para o diretório de instalação do SDK, está obsoleto. Se você continuar a usá-lo, o Android Studio e o Plug-in do Android para Gradle vão verificar se as variáveis antigas e novas são consistentes.
ANDROID_USER_HOME Define o caminho para o diretório de preferências do usuário para ferramentas que fazem parte do SDK do Android. O valor padrão é $HOME/.android/.

Algumas ferramentas mais antigas, como o Android Studio 4.3 e versões anteriores, não leem ANDROID_USER_HOME. Para substituir o local das preferências do usuário dessas ferramentas mais antigas, defina ANDROID_SDK_HOME como o diretório pai em que você quer que o diretório .android seja criado.

REPO_OS_OVERRIDE Defina esta variável como windows, macosx ou linux ao usar sdkmanager para fazer o download de pacotes para um sistema operacional diferente da máquina atual.
Variáveis de ambiente de configuração do Android Studio
As variáveis de configuração do Android Studio contêm configurações que personalizam o local dos arquivos de configuração e do JDK. Na inicialização, o Android Studio verifica as configurações dessas variáveis. Para saber mais, consulte Configurar o Android Studio.
STUDIO_VM_OPTIONS Define o local do arquivo studio.vmoptions. Esse arquivo contém configurações que afetam as características de desempenho da Java HotSpot Virtual Machine. Esse arquivo também pode ser acessado no Android Studio. Consulte Personalizar opções da VM.
STUDIO_PROPERTIES Define o local do arquivo idea.properties. Esse arquivo permite personalizar as propriedades do ambiente de desenvolvimento integrado do Android Studio, como o caminho para plug-ins instalados pelo usuário e o tamanho máximo de arquivo que oferece suporte a esse ambiente. Consulte Personalizar propriedades do ambiente de desenvolvimento integrado.
STUDIO_JDK Define o local do JDK em que o Android Studio é executado. Quando você inicia o ambiente de desenvolvimento integrado, ele verifica as variáveis de ambiente STUDIO_JDK, JDK_HOME e JAVA_HOME, nessa ordem.
STUDIO_GRADLE_JDK Define o local do JDK que o Android Studio usa para iniciar o daemon do Gradle. Quando você inicia o ambiente de desenvolvimento integrado, ele verifica primeiro STUDIO_GRADLE_JDK. Se STUDIO_GRADLE_JDK não estiver definido, o ambiente de desenvolvimento integrado vai usar o valor definido na caixa de diálogo Project Structure.
Variáveis de ambiente do emulador
Por padrão, o emulador armazena arquivos de configuração em $HOME/.android/ e dados de AVD em $HOME/.android/avd/. Você pode modificar os padrões definindo as seguintes variáveis de ambiente. O comando emulator -avd <avd_name> pesquisa o diretório avd na ordem dos valores em $ANDROID_AVD_HOME, $ANDROID_USER_HOME/avd/ e $HOME/.android/avd/.

Para receber ajuda com a variável de ambiente do emulador, digite emulator -help-environment na linha de comando. Para saber mais sobre as opções de linha de comando emulator, consulte Iniciar o emulador na linha de comando.

ANDROID_EMULATOR_HOME Define o caminho para o diretório de configuração do emulador específico do usuário. O valor padrão é $ANDROID_USER_HOME.

Ferramentas mais antigas, como o Android Studio 4.3 e anteriores, não leem ANDROID_USER_HOME. Para essas ferramentas, o valor padrão é $ANDROID_SDK_HOME/.android.

ANDROID_AVD_HOME Define o caminho para o diretório que contém todos os arquivos específicos do AVD, que consistem principalmente em imagens de disco muito grandes. O local padrão é $ANDROID_EMULATOR_HOME/avd/. Você poderá especificar um novo local se o padrão estiver com pouco espaço em disco.
O Android Emulator consulta as seguintes variáveis de ambiente quando é iniciado.
ANDROID_LOG_TAGS Consulte ANDROID_LOG_TAGS.
HTTP_PROXY

Contém a configuração de proxy HTTP/HTTPS para um proxy HTTP global. Usa um separador de dois-pontos (:) entre o host e a porta. Por exemplo, set HTTP_PROXY=myserver:1981.

Isso é o mesmo que especificar o argumento -http-proxy proxy ao executar o emulador a partir da linha de comando.

ANDROID_VERBOSE Consulte ANDROID_VERBOSE.
ANDROID_HOME Consulte ANDROID_HOME.
ANDROID_EMULATOR_USE_SYSTEM_LIBS Contém um valor de 0 (padrão) ou 1. Um valor de 1 significa que o arquivo libstdc++.so do sistema é usado em vez daquele que acompanha o emulador. Defina essa variável de ambiente apenas quando o emulador não for iniciado no sistema Linux devido a um problema na biblioteca do sistema. Por exemplo, algumas bibliotecas de drivers Linux Radeon GL exigem um arquivo libstdc++.so mais recente.
Emulador de áudio rápido (QEMU)
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV No Linux, você pode mudar o back-end de áudio padrão do emulador configurando a variável de ambiente QEMU_AUDIO_DRV como um dos seguintes valores:
  • alsa: usar o back-end Advanced Linux Sound Architecture (ALSA)
  • esd: usar o back-end Enlightened Sound Daemon (EsounD)
  • sdl: usar o back-end de áudio Simple DirectMedia Layer (SDL) (não compatível com entrada de áudio)
  • oss:: usar o back-end Open Sound System (OSS)
  • none:: não tem suporte a áudio.
set QEMU_AUDIO_DRV=alsa

Você também pode usar back-ends distintos para entrada e saída de áudio selecionando um dos seguintes valores QEMU para as variáveis de ambiente QEMU_AUDIO_OUT_DRV e QEMU_AUDIO_IN_DRV:

set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

Se quiser desativar a compatibilidade com áudio, use a opção emulator -no-audio ou defina QEMU_AUDIO_DRV como none. Pode ser necessário desativar o áudio nas seguintes situações:

  • Em casos raros, os drivers de áudio podem fazer com que o Windows seja reinicializado enquanto o emulador está em execução.
  • Em algumas máquinas Linux, o emulador pode ficar travado na inicialização com a compatibilidade com áudio ativada.
Variáveis de ambiente adb
ANDROID_SERIAL Use essa variável para fornecer um número de série do emulador, como emulator-5555, para um comando adb. Se você configurar essa variável, mas usar a opção -s para especificar um número de série na linha de comando, a entrada da linha de comando vai modificar o valor em ANDROID_SERIAL.

O exemplo a seguir define ANDROID_SERIAL e chama adb install helloworld.apk, que instala o pacote de aplicativo para Android no emulator-5555.

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk
Variáveis de ambiente adb logcat
ANDROID_LOG_TAGS Use essa variável de ambiente para configurar uma expressão de filtro padrão quando estiver executando logcat no computador de desenvolvimento. Exemplo:
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

Isso é o mesmo que especificar o argumento -logcat tags ao executar o emulador na linha de comando.

Consulte Filtrar a saída do registro para ver mais informações e exemplos.

ADB_TRACE Contém uma lista separada por vírgulas das informações de depuração a serem registradas. Os valores podem ser: all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport e jdwp.

Para mostrar os registros adb dos clientes adb e do servidor adb, defina ADB_TRACE como all e, em seguida, chame o comando adb logcat da seguinte maneira:

set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE Contém uma lista separada por vírgulas de opções de saída detalhadas (tags de depuração) usadas pelo emulador. O exemplo a seguir mostra ANDROID_VERBOSE definido com as tags de depuração debug-socket e debug-radio:
set ANDROID_VERBOSE=socket,radio

Isso é o mesmo que especificar os argumentos -verbose -verbose-socket -verbose-radio juntos ao executar o emulador na linha de comando.

Tags de depuração sem suporte são ignoradas. Para saber mais sobre tags de depuração, use emulator -help-debug-tags.