環境変数

Android Studio とコマンドライン ツールの動作は、環境変数を設定することで調整できます。設定すると便利な環境変数の一つが ANDROID_HOME です。多くのツールがこの環境変数から Android SDK のインストール ディレクトリを判断しています。 実行可能ファイルのフルパスを指定せずにコマンドラインからツールを実行するには、コマンド検索パスの環境変数に ANDROID_HOME/toolsANDROID_HOME/tools/binANDROID_HOME/platform-tools を追加します。

環境変数を設定する方法

以下の例に、ターミナル ウィンドウと、さまざまなオペレーティング システムのシェル スクリプトで、環境変数を設定する方法を示します。ターミナル ウィンドウでの変数の設定は、そのウィンドウが開いている限り有効です。macOS と Linux では、新しいシェルが起動されるたびに、シェル初期化スクリプトで変数が設定されます。Windows の場合、変数の設定はシステム設定から行います。

Windows: ターミナル ウィンドウで次のように入力します。

set HTTP_PROXY=myserver:1981

または、Windows UI から追加することもできます。その方法については、Windows のお使いのバージョンのドキュメントをご確認ください。

macOS と Linux: 環境変数を設定する正確な方法は、使用しているシェルによって異なります。実行しているシェルの種類を確認するには、次のように入力します。

echo $0

Gnu BashZsh などのシェルでは、次の構文を使用して変数を設定します。

export VARIABLE_NAME=<new-value>

他のシェル(TCSH など)では、次の構文を使用して変数を設定します。

setenv VARIABLE_NAME <new-value>

これらのコマンドをシェル初期化スクリプトに追加すると、新しいシェル インスタンスが実行されるたびに変数が設定されます。

シェル初期化スクリプトの場所は、使用するシェルによって異なります。 Gnu Bash では ~/.bash_profile です。Zsh では ~/.zprofile です。TCSH では ~/.cshrc です。使用しているシェルのドキュメントで確認してください。

PATH 環境変数を更新して、ツールの場所を追加することもできます。

Gnu Bash または Zsh の場合:

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

TCSH の場合:

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

変数リファレンス

次の表に、Android SDK ツールで一般に使用される環境変数を示します。

表 1. 環境変数

Android SDK の環境変数
ANDROID_HOME SDK のインストール ディレクトリへのパスを設定します。一度設定すると、値は通常変更されず、同じマシン上の複数のユーザーが共有できます。ANDROID_SDK_ROOT は同様に SDK のインストール ディレクトリを指しますが、この変数のサポートは終了しています。引き続き使用する場合、Android Studio および Android Gradle プラグインにより、古い変数と新しい変数に一貫性があることが確認されます。
ANDROID_USER_HOME Android SDK に含まれるツールのユーザー設定ディレクトリへのパスを設定します。デフォルトは $HOME/.android/ です。

Android Studio 4.3 以前のように古いツールの中には ANDROID_USER_HOME を読み取らないものもあります。このような古いツールのユーザー設定の場所をオーバーライドするには、ANDROID_SDK_HOME を、.android ディレクトリを作成する親ディレクトリに設定します。

REPO_OS_OVERRIDE sdkmanager を使って現在のマシンとは異なるオペレーティング システム用のパッケージをダウンロードする場合は、この変数を windowsmacosx、または linux に設定します。
Android Studio 設定の環境変数
Android Studio 設定変数には、設定ファイルと JDK の場所をカスタマイズする設定があります。Android Studio は起動時にこれらの変数の設定を確認します。詳しくは、Android Studio の設定についての記事をご覧ください。
STUDIO_VM_OPTIONS studio.vmoptions ファイルの場所を設定します。 このファイルには、Java HotSpot 仮想マシン(VM)のパフォーマンス特性に影響を与える設定が含まれます。このファイルには、Android Studio 内からもアクセスできます。VM オプションのカスタマイズをご覧ください。
STUDIO_PROPERTIES idea.properties ファイルの場所を設定します。このファイルを使用すると、ユーザーがインストールしたプラグインへのパスや、IDE でサポートされている最大ファイルサイズなど、Android Studio IDE のプロパティをカスタマイズできます。IDE プロパティのカスタマイズについての説明をご覧ください。
STUDIO_JDK Android Studio が実行に使う JDK の場所を設定します。IDE を起動すると、STUDIO_JDKJDK_HOMEJAVA_HOME の順に各環境変数が確認されます。
STUDIO_GRADLE_JDK Android Studio が Gradle デーモンを開始するために使用する JDK の場所を設定します。IDE を起動すると、最初に STUDIO_GRADLE_JDK が確認されます。STUDIO_GRADLE_JDK が定義されていない場合、IDE は、プロジェクト構造の設定で設定した値を使用します。
エミュレータの環境変数
デフォルトでは、エミュレータは設定ファイルを $HOME/.android/ に、AVD データを $HOME/.android/avd/ に保存します。以下の環境変数を設定することで、デフォルトをオーバーライドできます。emulator -avd <avd_name> コマンドは avd ディレクトリの中で、$ANDROID_AVD_HOME$ANDROID_USER_HOME/avd/$HOME/.android/avd/ の順に各値を検索します。

エミュレータの環境変数のヘルプを確認するには、コマンドラインで「emulator -help-environment」と入力します。emulator のコマンドライン オプションの詳細については、コマンドラインからエミュレータを起動するをご覧ください。

ANDROID_EMULATOR_HOME ユーザー固有のエミュレータ設定ディレクトリへのパスを設定します。デフォルトは $ANDROID_USER_HOME です。

Android Studio 4.3 以前のように古いツールの中には ANDROID_USER_HOME を読み取らないものもあります。これらのツールについては、デフォルト値は $ANDROID_SDK_HOME/.android です。

ANDROID_AVD_HOME AVD 固有のすべてのファイルが格納されているディレクトリへのパスを設定します。これらのファイルの大部分は、非常に大きなディスク イメージで構成されます。デフォルトの場所は $ANDROID_EMULATOR_HOME/avd/ です。デフォルトの場所でディスク空き容量が少ない場合は、新しい場所を指定することをおすすめします。
Android エミュレータは起動時に、以下の環境変数を照会します。
ANDROID_LOG_TAGS ANDROID_LOG_TAGS をご覧ください。
HTTP_PROXY

グローバル HTTP プロキシの HTTP/HTTPS プロキシ設定が含まれます。ホストとポートの間にはコロン(:)区切り文字を使用します。例: 「set HTTP_PROXY=myserver:1981」。

これは、コマンドラインからエミュレータを実行するときに -http-proxy proxy 引数を指定することと同じです。

ANDROID_VERBOSE ANDROID_VERBOSE をご覧ください。
ANDROID_HOME ANDROID_HOME をご覧ください。
ANDROID_EMULATOR_USE_SYSTEM_LIBS 値 0(デフォルト)または 1 を設定します。値 1 は、エミュレータにバンドルされているライブラリではなく、システムの libstdc++.so ファイルが使用されることを示します。この環境変数は、システム ライブラリの問題が原因で Linux システム上でエミュレータが起動しない場合にのみ設定します。たとえば、一部の Linux Radeon GL ドライバ ライブラリでは最新の libstdc++.so ファイルが必要です。
クイック エミュレータ(QEMU)の音声
QEMU_AUDIO_DRV QEMU_AUDIO_OUT_DRV QEMU_AUDIO_IN_DRV Linux では、QEMU_AUDIO_DRV 環境変数を以下のいずれかの値に設定することで、エミュレータのデフォルトの音声バックエンドを変更できます。
  • alsa: Advanced Linux Sound Architecture(ALSA)バックエンドを使用する
  • esd: Enlightened Sound Daemon(EsounD)バックエンドを使用する
  • sdl: Simple DirectMedia Layer(SDL)の音声バックエンドを使用する(音声入力はサポートされません)
  • oss:: Open Sound System(OSS)バックエンドを使用する
  • none:: 音声をサポートしない
set QEMU_AUDIO_DRV=alsa

音声入力と音声出力に別個のバックエンドを使用することもできます。それには、QEMU_AUDIO_OUT_DRV 環境変数と QEMU_AUDIO_IN_DRV 環境変数に QEMU の値をそれぞれ選択します。

set QEMU_AUDIO_OUT=esd
set QEMU_AUDIO_IN=oss

音声サポートを無効にする場合は、emulator -no-audio オプションを指定するか、QEMU_AUDIO_DRVnone に設定します。以下のような状況で音声を無効にすることが必要になる場合があります。

  • まれに、エミュレータの実行中に、音声ドライバが Windows を再起動することがあります。
  • 一部の Linux マシンで、音声サポートを有効にしていると、エミュレータが起動時に動かなくなることがあります。
adb 環境変数
ANDROID_SERIAL この変数は、エミュレータのシリアル番号(例: emulator-5555)を adb コマンドに指定します。この変数を設定した場合でも、コマンドラインから -s オプションでシリアル番号を指定すると、ANDROID_SERIAL の値よりもコマンドラインからの入力が優先されます。

次の例では、ANDROID_SERIAL を設定して adb install helloworld.apk を呼び出します。これにより、Android アプリのパッケージが emulator-5555 にインストールされます。

set ANDROID_SERIAL=emulator-555
adb install helloWorld.apk
adb logcat 環境変数
ANDROID_LOG_TAGS この環境変数は、開発用コンピュータで logcat を実行する場合のデフォルトのフィルタ式を設定します。次に例を示します。
set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.

これは、コマンドラインからエミュレータを実行するときに -logcat tags 引数を指定することと同じです。

詳細と例については、ログ出力をフィルタするをご覧ください。

ADB_TRACE ログに記録するデバッグ情報のカンマ区切りのリストを含めます。 値として、alladbsocketspacketsrwxusbsyncsysdepstransportjdwp を指定できます。

adb クライアントと adb サーバーの adb ログを表示するには、次のように ADB_TRACEall に設定し、adb logcat コマンドを呼び出します。

set ADB_TRACE=all
adb logcat
ANDROID_VERBOSE エミュレータが使用する詳細出力オプション(デバッグタグ)のカンマ区切りのリストを含めます。次の例は、debug-socketdebug-radio のデバッグタグが定義された ANDROID_VERBOSE を示しています。
set ANDROID_VERBOSE=socket,radio

これは、コマンドラインからエミュレータを実行するときに、-verbose -verbose-socket -verbose-radio 引数を一緒に指定するのと同じです。

サポートされていないデバッグタグは無視されます。デバッグタグについて詳細を表示するには、 emulator -help-debug-tags を指定します。