Android Studio の設定

Android Studio ではウィザードとテンプレートを使用して、Java Development Kit(JDK)や利用可能な RAM といったシステム要件を確認し、最適化されたデフォルトの Android Virtual Device(AVD)のエミュレーションや最新のシステム イメージなど、デフォルトの設定を構成できます。このドキュメントでは、Android Studio の使い方をカスタマイズするために必要な、その他の設定について説明します。

Android Studio では、[Help] メニューから 2 つの設定ファイルにアクセスできます。

  • studio.vmoptions: ヒープサイズ、キャッシュ サイズなど、Android Studio の Java 仮想マシン(JVM)のオプションをカスタマイズします。Linux マシン上では、Android Studio のバージョンによって、このファイルが studio64.vmoptions という名前になっている場合があります。
  • idea.properties: プラグイン フォルダのパス、サポートされる最大ファイルサイズなど、Android Studio のプロパティをカスタマイズします。

エミュレータやデバイスのセットアップと使用に関する詳しいドキュメントについては、次のトピックをご覧ください。

設定ファイルを見つける

設定ファイルは両方とも Android Studio の設定フォルダに格納されます。フォルダの名前は Android Studio のバージョンによって異なります。たとえば、Android Studio 3.3 の場合、フォルダ名は AndroidStudio3.3 です。このフォルダの場所は、オペレーティング システムによって異なります。

  • Windows: %USERPROFILE%\.CONFIGURATION_FOLDER
  • macOS: ~/Library/Preferences/CONFIGURATION_FOLDER
  • Linux: ~/.CONFIGURATION_FOLDER

次の環境変数を使用して、別の場所にある特定のオーバーライド ファイルを指定することもできます。

  • STUDIO_VM_OPTIONS: .vmoptions ファイルの名前と場所を設定します
  • STUDIO_PROPERTIES: .properties ファイルの名前と場所を設定します
  • STUDIO_JDK: Android Studio を実行する JDK を設定します

VM オプションのカスタマイズ

studio.vmoptions ファイルを使用して、Android Studio の JVM のオプションをカスタマイズできます。Android Studio のパフォーマンスを向上させる一般的な方法は、最大ヒープサイズを調整することですが、studio.vmoptions ファイルを使用して初期ヒープサイズ、キャッシュ サイズ、Java ガベージ コレクション スイッチなど、他のデフォルトの設定をオーバーライドすることもできます。

新しい studio.vmoptions ファイルを作成するか、既存のファイルを開くには、次の手順を行います。

  1. [Help] > [Edit Custom VM Options] をクリックします。Android Studio の VM オプションをまだ編集したことがない場合は、新しい studio.vmoptions ファイルを作成するよう求められます。[Yes] をクリックしてファイルを作成します。
  2. Android Studio のエディタ ウィンドウで studio.vmoptions ファイルが開きます。ファイルを編集してカスタマイズされた独自の VM オプションを追加します。カスタマイズ可能な JVM オプションの一覧については、Oracle の「Java HotSpot VM オプション」ページをご覧ください。

作成した studio.vmoptions ファイルは、デフォルトの ファイルに追加されます。このファイルは、Android Studio のインストール フォルダの bin/ ディレクトリにあります。

Android Studio のプログラム フォルダにある studio.vmoptions ファイルは、決して直接編集しないでください。このファイルにアクセスして Android Studio のデフォルトの VM オプションを確認することは可能ですが、独自の studio.vmoptions ファイルのみを編集することで、Android Studio の重要なデフォルトの設定がオーバーライドされるのを確実に防ぐことができます。このため、独自の studio.vmoptions ファイルでは目的の属性のみをオーバーライドして、その他の変更していない属性については、Android Studio でデフォルト値を引き続き使用できるようにしてください。

最大ヒープサイズ

Android Studio のデフォルトの最大ヒープサイズは 1,280 MB です。大規模なプロジェクトで作業する場合や、システムに大量の RAM が搭載されている場合は、Android Studio プロセス(コア IDE、Gradle デーモン、Kotlin デーモンなど)の最大ヒープサイズを増やすことによって、パフォーマンスを改善できます。

Android Studio では可能なヒープサイズの最適化が自動的にチェックされ、パフォーマンスを改善できることが検出されると通知されます。

Android Studio プロセス用の RAM の最大量を設定できるメモリ設定

図 1. メモリの推奨設定に関する通知

5 GB 以上の RAM を搭載した 64 ビットシステムを使用している場合、プロジェクトのヒープサイズを手動で調整することもできます。方法は次のとおりです。

  1. メニューバーから [File] > [Settings](Mac の場合は [Android Studio] > [Preference])をクリックします。
  2. [Appearance & Behavior] > [System Settings] > [Memory Settings] をクリックします。

    Android Studio プロセス用の RAM の最大量を設定できるメモリ設定

  3. ヒープサイズを必要な値に調整します。

  4. [Apply] をクリックします。

    IDE のヒープサイズを変更した場合、新しいメモリ設定を適用するには Android Studio を再起動する必要があります。

IDE 設定のエクスポートとインポート

プロジェクトの IDE で優先される設定の一部またはすべてを含む Settings.jar をエクスポートできます。この JAR ファイルは、別のプロジェクトにインポートしたり、チームのメンバーがインポートできるように配布したりできます。

詳しくは、IntelliJ IDEA の設定のエクスポートとインポートの説明をご覧ください。

IDE プロパティのカスタマイズ

idea.properties ファイルを使用すると、ユーザーがインストールしたプラグインのパス、IDE でサポートされている最大ファイルサイズなど、Android Studio の IDE プロパティをカスタマイズできます。idea.properties ファイルは IDE のデフォルトのプロパティと統合されるため、オーバーライド プロパティのみを指定できます。

新しい idea.properties ファイルを作成するか、既存のファイルを開くには、次の手順を行います。

  1. [Help] > [Edit Custom Properties] をクリックします。IDE プロパティを編集したことがない場合は、新しい idea.properties ファイルを作成するよう求められます。[Yes] をクリックしてファイルを作成します。
  2. Android Studio のエディタ ウィンドウで idea.properties ファイルが開きます。ファイルを編集してカスタマイズされた独自の IDE プロパティを追加します。

次の idea.properties ファイルには、カスタマイズされた一般的な IDE プロパティが含まれています。プロパティの一覧については、IntelliJ IDEA の idea.properties ファイルをご覧ください。

#---------------------------------------------------------------------
    # Uncomment this option if you want to customize path to user installed plugins folder. Make sure
    # you're using forward slashes.
    #---------------------------------------------------------------------
    # idea.plugins.path=${idea.config.path}/plugins
    #---------------------------------------------------------------------
    # Maximum file size (kilobytes) IDE should provide code assistance for.
    # The larger file is the slower its editor works and higher overall system memory requirements are
    # if code assistance is enabled. Remove this property or set to very large number if you need
    # code assistance for any files available regardless their size.
    #---------------------------------------------------------------------
    idea.max.intellisense.filesize=2500
    #---------------------------------------------------------------------
    # This option controls console cyclic buffer: keeps the console output size not higher than the
    # specified buffer size (Kb). Older lines are deleted. In order to disable cycle buffer use
    # idea.cycle.buffer.size=disabled
    #---------------------------------------------------------------------
    idea.cycle.buffer.size=1024
    #---------------------------------------------------------------------
    # Configure if a special launcher should be used when running processes from within IDE.
    # Using Launcher enables "soft exit" and "thread dump" features
    #---------------------------------------------------------------------
    idea.no.launcher=false
    #---------------------------------------------------------------------
    # To avoid too long classpath
    #---------------------------------------------------------------------
    idea.dynamic.classpath=false
    #---------------------------------------------------------------------
    # There are two possible values of idea.popup.weight property: "heavy" and "medium".
    # If you have WM configured as "Focus follows mouse with Auto Raise" then you have to
    # set this property to "medium". It prevents problems with popup menus on some
    # configurations.
    #---------------------------------------------------------------------
    idea.popup.weight=heavy
    #---------------------------------------------------------------------
    # Use default anti-aliasing in system, i.e. override value of
    # "Settings|Editor|Appearance|Use anti-aliased font" option. May be useful when using Windows
    # Remote Desktop Connection for instance.
    #---------------------------------------------------------------------
    idea.use.default.antialiasing.in.editor=false
    #---------------------------------------------------------------------
    # Disabling this property may lead to visual glitches like blinking and fail to repaint
    # on certain display adapter cards.
    #---------------------------------------------------------------------
    sun.java2d.noddraw=true
    #---------------------------------------------------------------------
    # Removing this property may lead to editor performance degradation under Windows.
    #---------------------------------------------------------------------
    sun.java2d.d3d=false
    #---------------------------------------------------------------------
    # Workaround for slow scrolling in JDK6
    #---------------------------------------------------------------------
    swing.bufferPerWindow=false
    #---------------------------------------------------------------------
    # Removing this property may lead to editor performance degradation under X Window.
    #---------------------------------------------------------------------
    sun.java2d.pmoffscreen=false
    #---------------------------------------------------------------------
    # Workaround to avoid long hangs while accessing clipboard under Mac OS X.
    #---------------------------------------------------------------------
    # ide.mac.useNativeClipboard=True
    #---------------------------------------------------------------------
    # Maximum size (kilobytes) IDEA will load for showing past file contents -
    # in Show Diff or when calculating Digest Diff
    #---------------------------------------------------------------------
    # idea.max.vcs.loaded.size.kb=20480
    

メモリの少ないマシン用に IDE を設定する

推奨仕様(システム要件をご覧ください)に満たないマシンで Android Studio を実行する場合は、以下のように IDE をカスタマイズすることによりパフォーマンスを改善できます。

  • Android Studio で使用できる最大ヒープサイズを引き下げる: Android Studio の最大ヒープサイズを 512 MB に引き下げます。最大ヒープサイズの変更の詳細については、最大ヒープサイズをご覧ください。
  • Gradle および Android Plugin for Gradle を更新する: 最新バージョンの Gradle および Android Plugin for Gradle に更新して、パフォーマンスに関する最新の改善点が反映された状態で使用します。Gradle および Android Plugin for Gradle の更新の詳細については、Android Plugin for Gradle のリリースノートをご覧ください。
  • 省電力モードを有効にする: 省電力モードを有効にすると、メモリや電池を大量に消費する多くのバックグラウンド処理が無効になります。これには、エラーをハイライト表示する即時インスペクション、ポップアップ表示されるコードのオート コンプリート、バックグラウンドでの自動増分コンパイルが含まれます。省電力モードを有効にするには、[File] > [Power Save Mode] をクリックします。
  • 不要な lint チェックを無効にする: Android Studio でコードに対して実行する lint チェックを変更するには、次の手順を行います。

    1. [File] > [Settings](macOS では [Android Studio] > [Preferences])をクリックして [Settings] ダイアログを開きます。
    2. 左側のパネルで [Editor] セクションを展開し、[Inspections] をクリックします。
    3. チェックボックスをクリックして、プロジェクトに合わせて lint チェックをオンまたはオフにします。
    4. [Apply] または [OK] をクリックして変更を保存します。
  • 実機でのデバッグ: エミュレータ上でデバッグを実施すると実機でデバッグするよりも多くのメモリが消費されます。したがって、実機でデバッグを行うことにより、Android Studio の全体的なパフォーマンスを改善できます。

  • 必要な Google Play 開発者サービスのみを依存関係として含める: Google Play 開発者サービスを依存関係としてプロジェクトに含めると必要なメモリの量が増えます。メモリの使用効率およびパフォーマンスを向上させるには、必要な依存関係のみを含めます。詳しくは、プロジェクトに Google Play 開発者サービスを追加するをご覧ください。

  • Gradle のオフライン モードをオンにする: 帯域幅が限られている場合は、オフライン モードをオンにして、ビルド中に欠落している依存関係のダウンロードを Gradle が試行しないようにします。オフライン モードがオンの場合、欠落している依存関係があると、Gradle ではダウンロードを試行する代わりにビルドエラーが発生します。オフライン モードをオンにするには、次の手順を行います。

    1. [File] > [Settings](macOS では [Android Studio] > [Preferences])をクリックして [Settings] ダイアログを開きます。
    2. 左側のパネルで、[Build, Execution, Deployment] を展開し、[Gradle] をクリックします。
    3. [Global Gradle settings] の下にある [Offline work] チェックボックスをオンにします。
    4. [Apply] または [OK] をクリックして変更を有効にします。
  • Gradle で使用できる最大ヒープサイズを引き下げる: Gradle のデフォルトの最大ヒープサイズは 1,536 MB です。下記のように、gradle.properties ファイルの org.gradle.jvmargs プロパティをオーバーライドしてこの値を引き下げます。

    # Make sure to gradually decrease this value and note
        # changes in performance. Allocating too lttle memory may
        # also decrease performance.
        org.gradle.jvmargs = -Xmx1536m
        
  • 並列コンパイルを有効にしない: Android Studio では独立したモジュールを同時にコンパイルできますが、メモリの少ないシステムではこの機能をオンにしないでください。この設定を確認するには、次の手順を行います。

    1. [File] > [Settings](macOS では [Android Studio] > [Preferences])をクリックして [Settings] ダイアログを開きます。
    2. 左側のパネルで、[Build, Execution, Deployment] を展開し、[Compiler] をクリックします。
    3. [Compile independent modules in parallel] チェックボックスがオフであることを確認します。
    4. 変更した場合は、[Apply] または [OK] をクリックして変更を有効にします。

JDK バージョンの設定

Android Studio 2.2 以降には最新バージョンの OpenJDK のコピーがバンドルされています。この JDK バージョンを Android プロジェクトで使用することをおすすめします。バンドルされた JDK を使用するには、次の手順を行います。

  1. Android Studio でプロジェクトを開き、メニューバーの [File] > [Project Structure] を選択します。
  2. [SDK Location] ページで、[JDK location] の下にある [Use embedded JDK] チェックボックスをオンにします。
  3. [OK] をクリックします。

デフォルトでは、プロジェクトのコンパイルに使用される Java 言語のバージョンは、プロジェクトの compileSdkVersion によって決まります(Android のバージョンが異なればサポートしている Java のバージョンが異なるため)。必要な場合は、次の CompileOptions {} ブロックを build.gradle ファイルに追加することにより、このデフォルトの Java バージョンをオーバーライドできます。

android {
        compileOptions {
            sourceCompatibility JavaVersion.VERSION\_1\_6
            targetCompatibility JavaVersion.VERSION\_1\_6
        }
    }
    

compileSdkVersion が定義されている場所の詳細については、モジュール レベルのビルドファイルをご覧ください。

プロキシの設定

プロキシは、HTTP クライアントとウェブサーバー間を仲介し、インターネット接続のセキュリティとプライバシーを強化する接続ポイントとして機能します。

ファイアウォールの内側で Android Studio を実行するには、Android Studio IDE のプロキシ設定が必要です。Android Studio IDE の HTTP プロキシ設定ページを使用して、Android Studio の HTTP プロキシ設定を行ってください。

コマンドラインから、または継続的インテグレーション サーバーなどの Android Studio がインストールされていないマシンで Android Plugin for Gradle を実行するときは、Gradle ビルドファイルでプロキシ設定を行います。

Android Studio のプロキシ設定

Android Studio は HTTP プロキシ設定をサポートしているため、ファイアウォールの背後やセキュアなネットワークでも Android Studio を実行できます。Android Studio で HTTP プロキシ設定を行う手順は次のとおりです。

  1. メニューバーで [File] > [Settings] をクリックします(macOS では、[Android Studio] > [Preferences] をクリックします)。
  2. 左側のパネルで、[Appearance & Behavior] > [System Settings] > [HTTP Proxy] をクリックします。[HTTP Proxy] ページが表示されます。
  3. 自動プロキシ設定 URL をプロキシ設定に使用する場合は [Auto-detect proxy settings] を選択し、各設定を自分で入力する場合は [Manual proxy configuration] を選択します。この設定の詳細については、HTTP プロキシをご覧ください。
  4. [Apply] または [OK] をクリックして変更を有効にします。

Android Plugin for Gradle の HTTP プロキシ設定

コマンドラインから、または Android Studio がインストールされていないマシンで Android Plugin を実行するときは、Gradle ビルドファイルで Android Plugin for Gradle のプロキシ設定を行います。

アプリケーション固有の HTTP プロキシ設定については、build.gradle ファイルに各アプリケーション モジュールで必要なプロキシ設定を入力します。

apply plugin: 'com.android.application'

    android {
        ...

        defaultConfig {
            ...
            systemProp.http.proxyHost=proxy.company.com
            systemProp.http.proxyPort=443
            systemProp.http.proxyUser=userid
            systemProp.http.proxyPassword=password
            systemProp.http.auth.ntlm.domain=domain
        }
        ...
    }
    

プロジェクト全体の HTTP プロキシ設定については、gradle/gradle.properties ファイルにプロキシ設定を入力します。

# Project-wide Gradle settings.
    ...

    systemProp.http.proxyHost=proxy.company.com
    systemProp.http.proxyPort=443
    systemProp.http.proxyUser=username
    systemProp.http.proxyPassword=password
    systemProp.http.auth.ntlm.domain=domain

    systemProp.https.proxyHost=proxy.company.com
    systemProp.https.proxyPort=443
    systemProp.https.proxyUser=username
    systemProp.https.proxyPassword=password
    systemProp.https.auth.ntlm.domain=domain

    ...
    

Gradle プロパティを使用してプロキシ設定を行う方法については、Gradle のユーザーガイドをご覧ください。

Windows で Android Studio のパフォーマンスを最適化する

Windows での Android Studio のパフォーマンスは、さまざまな要因の影響を受ける可能性があります。 ここでは、Windows で最善のパフォーマンスを得るために Android Studio の設定を最適化する方法について説明します。

ビルド速度に対するウィルス対策ソフトウェアの影響を最小限に抑える

一部のウィルス対策ソフトウェアは Android Studio のビルドプロセスの妨げとなり、ビルドの実行速度を大幅に低下させることがあります。Android Studio でビルドを実行する場合、Gradle はアプリのリソースとソースコードをコンパイルし、コンパイルされたリソースをまとめて APK にパッケージ化します。この処理中に、パソコン上に多数のファイルが作成されます。ウィルス対策ソフトウェアでリアルタイム スキャンが有効になっている場合は、ファイルが作成されるたびにそのファイルのスキャンが実行され、ビルドプロセスが強制的に停止されることがあります。

この問題を回避するには、特定のディレクトリをウィルス対策ソフトウェアのリアルタイム スキャンから除外します。

次のリストでは、リアルタイム スキャンから除外すべき Android Studio の各ディレクトリのデフォルトの位置を示します。

Gradle キャッシュ
%USERPROFILE%\.gradle
Android Studio プロジェクト
%USERPROFILE%\AndroidStudioProjects
Android SDK
%USERPROFILE%\AppData\Local\Android\SDK
Android Studio システム ファイル
C:\Program Files\Android\Android Studio\system

グループ ポリシーで制御される環境に合わせてディレクトリの場所をカスタマイズする

グループ ポリシーによって、パソコンのリアルタイム スキャンから除外できるディレクトリが制限されている場合は、一元化されたグループ ポリシーですでに除外されている場所に Android Studio ディレクトリを移動できます。

次のリストでは、各 Android Studio ディレクトリの場所をカスタマイズする方法を示します。C:\WorkFolder は、グループ ポリシーですでに除外されているディレクトリです。

Gradle キャッシュ
GRADLE_USER_HOME 環境変数が C:\WorkFolder\.gradle を指すように定義します。
Android Studio プロジェクト
C:\WorkFolder の適切なサブディレクトリにプロジェクト ディレクトリを移動するか作成します。たとえば、C:\WorkFolder\AndroidStudioProjects です。
Android SDK

手順:

  1. Android Studio で [Settings] ダイアログを開き(macOS では [Preferences])、[Appearance & Behavior] > [System Settings] > [Android SDK] に移動します。

  2. [Android SDK Location] の値を C:\WorkFolder\AndroidSDK に変更します。

    SDK を再度ダウンロードするのを避けるため、既存の SDK ディレクトリ(デフォルトでは %USERPROFILE%\AppData\Local\Android\SDK)を新しい場所にコピーしてください。

Android Studio システム ファイル

手順:

  1. Android Studio で、[Help] > [Edit Custom Properties] をクリックします。

    まだ作成していない場合は、idea.properties ファイルを作成するよう求められます。

  2. idea.properties ファイルに次の行を追加します。

        idea.system.path=c:/workfolder/studio/caches/trunk-system
        

オフライン ビルドの依存関係を設定する

ネットワークに接続しないでプロジェクトをビルドする場合は、以下の手順に沿って、Android Gradle Plugin と Google Maven の依存関係のオフライン バージョンを使用するように IDE を設定します。

まだ行っていない場合は、ダウンロード ページからオフライン コンポーネントをダウンロードします。

オフライン コンポーネントをダウンロードして解凍する

オフライン コンポーネントをダウンロードしたら、内容を次のディレクトリに解凍します。ディレクトリが存在しない場合は、作成する必要がある場合があります。

  • Windows の場合: %USER_HOME%/.android/manual-offline-m2/
  • macOS と Linux の場合: ~/.android/manual-offline-m2/

オフライン コンポーネントを更新する手順は次のとおりです。

  1. manual-offline-m2/ ディレクトリの内容を削除します。
  2. オフライン コンポーネントを再度ダウンロードします。
  3. ダウンロードした ZIP ファイルの内容を manual-offline-m2/ ディレクトリに解凍します。

Gradle プロジェクトにオフライン コンポーネントを含める

ダウンロードして解凍したオフライン コンポーネントを使用するように Android ビルドシステムに指示するには、下記のように、スクリプトを作成する必要があります。なお、このスクリプトは、オフライン コンポーネントの更新後でも、1 回だけ作成して保存する必要があります。

  1. 次のパスとファイル名で空のテキスト ファイルを作成します。
    • Windows の場合: %USER_HOME%/.gradle/init.d/offline.gradle
    • macOS と Linux の場合: ~/.gradle/init.d/offline.gradle
  2. テキスト ファイルを開き、次のスクリプトを含めます。

    def reposDir = new File(System.properties['user.home'], ".android/manual-offline-m2")
        def repos = new ArrayList()
        reposDir.eachDir {repos.add(it) }
        repos.sort()
    
        allprojects {
          buildscript {
            repositories {
              for (repo in repos) {
                maven {
                  name = "injected_offline_${repo.name}"
                  url = repo.toURI().toURL()
                }
              }
            }
          }
          repositories {
            for (repo in repos) {
              maven {
                name = "injected_offline_${repo.name}"
                url = repo.toURI().toURL()
              }
            }
          }
        }
        
  3. テキスト ファイルを保存します。

  4. (省略可)オフライン コンポーネントが想定どおりに機能していることを確認する場合は、下記のように、プロジェクトの build.gradle ファイルからオンライン リポジトリを削除します。これらのリポジトリなしでプロジェクトが正しくビルドされることを確認したら、リポジトリを build.gradle ファイルに戻すことができます。

    buildscript {
            repositories {
                // Hide these repositories to test your build against
                // the offline components. You can include them again after
                // you've confirmed that your project builds ‘offline’.
                // google()
                // jcenter()
            }
            ...
        }
        allprojects {
            repositories {
                // google()
                // jcenter()
            }
            ...
        }