Android Studio 3.2.1 での Gradle ビルドの高速化
Android Studio でビルドが完了するのを何分も待っているような気がしたことはありませんか? 私も。そして、それはかなり迷惑です。幸いなことに、これを改善するために使用できる方法がいくつかあります。Android はビルドに Gradle を使用します。最新バージョンは 4.6 で、以前のバージョンよりもパフォーマンスが大幅に向上しています (詳細については、リリース ノートを参照してください)。
ステップ 1: Gradle のバージョンを更新する これを行う簡単な方法は、[モジュール設定を開く] (プロジェクト) > [プロジェクト構造] に移動することです。

アップデート
Gradle バージョン: 4.6
への変更およびAndroidプラグイン バージョン: 3.2.1への変更

https://services.gradle.org/distributions/gradle-4.6-all.zipから Gradle リリース ディストリビューションをダウンロード
し、Gradle フォルダーにコピーします。

最後のステップは、[設定] > [Gradle] でディストリビューションを追加することです

[適用] をクリックして変更を保存することを忘れないでください。
ステップ 2:オフライン モード、Gradle デーモン、およびプロジェクトの並列ビルドを有効にする オフライン モードは、Gradle に最新の更新チェックを無視するように指示します。Gradle は毎回依存関係を要求し、このオプションを使用すると、依存関係のために既にマシン上にあるものを使用するだけになります。android studio 設定から Gradle に移動し、オフライン作業ボックスをクリックします。

- android studio 設定からコンパイラに移動し、コマンドライン ボックスに「— オフライン」を追加して、[独立したモジュールを並列にコンパイル] をクリックします。

次のステップは、プロジェクトの Gradle デーモンと並列ビルドを有効にすることです。並列ビルドでは、複数のモジュールを含むプロジェクト (Gradle のマルチプロジェクト ビルド) が並列にビルドされるため、大規模なプロジェクトやモジュール プロジェクトのビルドが高速化されます。

これらの設定は、Gradle スクリプト ディレクトリ (つまり、~/.gradle/gradle.properties) にある gradle.properties という名前のファイルを変更することで有効にできます。これらのオプションの一部 (並列モジュールのコンパイルなど) は、Android Studio から利用でき、そこでも有効にできます。デフォルトですが、それらを gradle.properties ファイルに入れると、ターミナルからビルドするときに有効になり、同僚が同じ設定を使用するようになります。しかし、チームで作業している場合、このようなことをコミットできないことがあります。
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit org.gradle.parallel=true
# When set to true the Gradle daemon is used to run the build. For local developer builds this is our favorite property.
# The developer environment is optimized for speed and feedback so we nearly always run Gradle jobs with the daemon.
org.gradle.daemon=true
デーモンを使用すると、毎回 Gradle アプリケーション全体を起動する必要がないため、ビルドの起動が速くなります。Gradle Daemon は既定では有効になっていませんが、開発者のマシンでは常に有効にすることをお勧めします (ただし、継続的インテグレーション サーバーでは無効のままにしておくことをお勧めします)。このモードに関する FAQ は、https://docs.gradle.org/current/userguide/gradle_daemon.htmlにあります。並列ビルド設定は、一部のプロジェクトでは安全ではない可能性があります。要件は、すべてのモジュールを分離する必要があることです。そうしないと、ビルドが失敗する可能性があります (詳細については、http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects を参照してください)。
手順 3:インクリメンタル dexign を有効にしてメモリ設定を微調整する インクリメンタル dexing をオンにすると、ビルドを高速化できます。モジュールのビルド ファイルで:

このオプションを Android ブロックに追加します。
dexOptions {
incremental true
}
その dexOptions ブロックでは、dex プロセスのヒープ サイズも指定できます。次に例を示します。
dexOptions {
incremental true
javaMaxHeapSize "12g"
}
「12g」は 12GB のメモリです。これに関する追加情報は google.github.io/android-gradle-dsl/current/ にあります。設定ファイルで Gradle パラメーターを構成することもできます。たとえば、大規模なプロジェクトの場合は最大ヒープ サイズを増やします。
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
詳細については、 https ://docs.gradle.org/current/userguide/userguide_single.html#sec :gradle_configuration_properties のパラメーターのすべてのリストを参照してください。
手順 4:ウイルス対策を無効にする プロジェクトとキャッシュ ファイルをウイルス対策スキャンから除外することを検討してください。これは明らかにセキュリティとのトレードオフです。ただし、ブランチを何度も切り替えると、アンチウイルスは gradle プロセスがファイルを使用できるようにする前にファイルを再スキャンするため、ビルド時間が遅くなります (特に、gradle ファイルとインデックス作成タスクを含む Android Studio 同期プロジェクト)。ウイルス対策を有効にした場合と無効にした場合のビルド時間とプロセス CPU を測定して、関連性があるかどうかを確認します。これが役立つことを願っています。ビルドのパフォーマンスを向上させるための質問やその他のヒントがある場合は、コメントを残してください。
役立つリンク