The Android Developer Challenge is back! Submit your idea before December 2.

環境変数

Android Studio とコマンドライン ツールの環境変数を設定して、SDK のインストール場所や、ユーザー固有のデータの保存場所などを指定できます。このページでは、最も一般的に使用される環境変数について説明します。

次の例は、SDK をデフォルトの場所である $USER_HOME$HOME ではなく、E:\Android\sdk\ にインストールしている場合、環境変数を使ってエミュレータを起動する方法を示します。

    $ set ANDROID_SDK_ROOT=E:\Android\sdk\
    $ emulator -avd Pixel_API_25
    

変数リファレンス

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

表 1. 環境変数

Android SDK の環境変数
ANDROID_SDK_ROOT SDK のインストール ディレクトリへのパスを設定します。一度設定すると、値は通常変更されず、同じマシン上の複数のユーザーが共有できます。 ANDROID_HOME は同様に SDK のインストール ディレクトリを指しますが、サポートが終了されます。引き続き使用する場合、以下のルールが適用されます。
  • ANDROID_HOME が定義されていて、SDK の有効なインストールを示している場合は、その値が ANDROID_SDK_ROOT の値の代わりに使用されます。
  • ANDROID_HOME が定義されていない場合は、ANDROID_SDK_ROOT の値が使用されます。
  • ANDROID_HOME が定義されているが、その場所が存在しないか、SDK の有効なインストールが含まれていない場合は、代わりに ANDROID_SDK_ROOT の値が使用されます。
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 Studio とともに実行される JDK の場所を設定します。Android Studio を起動すると、STUDIO_JDKJDK_HOMEJAVA_HOME の順に各環境変数が確認されます。
エミュレータの環境変数
デフォルトでは、エミュレータは設定ファイルを $HOME/.android/ に、AVD データを $HOME/.android/avd/ に保存します。以下の環境変数を設定することで、デフォルトをオーバーライドできます。emulator -avd <avd_name> コマンドは avd ディレクトリの中で、$ANDROID_AVD_HOME$ANDROID_SDK_HOME/.android/avd/$HOME/.android/avd/ の順に各値を検索します。

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

ANDROID_EMULATOR_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 のように指定します。
ANDROID_VERBOSE ANDROID_VERBOSE をご覧ください。
ANDROID_EMULATOR_HOME ANDROID_EMULATOR_HOME をご覧ください。
ANDROID_SDK_ROOT ANDROID_SDK_ROOT をご覧ください。
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-555)を adb コマンドに指定します。この変数を設定した場合でも、コマンドラインから -s オプションでシリアル番号を指定すると、ANDROID_SERIAL の値よりもコマンドラインからの入力が優先されます。

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


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

    set ANDROID_LOG_TAGS=ActivityManager:I MyApp:D *:.
    

詳細と例については、ログ出力をフィルタリングする場合の説明をご覧ください。

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

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

環境変数を設定する方法

以下の例に、ターミナル ウィンドウと、さまざまなオペレーティング システムのシェル スクリプトで、環境変数を設定する方法を示します。ターミナル ウィンドウでの変数の設定は、そのウィンドウが開いている限り有効です。シェル スクリプトでの変数の設定は、複数のログイン セッションにまたがって継続します。

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

set HTTP_PROXY=myserver:1981

または、Windows の UI を使ってシェル スクリプトに設定を追加します。その方法については、Windows のお使いのバージョンのドキュメントをご確認ください。

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

export HTTP_PROXY=myserver:1981

または、~/.bash_profile ファイルに設定を追加して、ファイルのソースを次のように指定します。

export HTTP_PROXY=myserver:1981
$ source ~/.bash_profile