ウェブサイト検索

Gradleビルドのスピードを上げる方法は?


このチュートリアルでは、ビルド時間を短縮するためにGradleビルドで行えることを見ていきます。

Android Gradleビルドを高速化する

私たちのAndroid Studioプロジェクトのサイズが増加するにつれて、Gradleビルドのパフォーマンスが重要になります。最も単純なプロジェクトのGradleの速度でさえかなり遅いです。各プロジェクトは独自の複雑さと独自性を持っており、それが異なるビルド速度の原因となります。それにもかかわらず、ビルド速度に関して非常に共通していることは、貴重な時間を奪い、その結果、生産性が損なわれるということです。いくつかの基本的なコツを使うことで、ビルドごとに余分な秒数を節約することができ、それが生産性に大きな違いをもたらします。

  1. 最新バージョンのGradleを使用していることを確認してください。一般的に、新しいアップデートごとにパフォーマンスが大幅に向上します。注意: Java 1.8は1.6よりも速いです。こちらも更新されていることを確認してください。

  2. モジュールの使用を最小限に抑えるようにしてください。私たちのニーズに合わせてライブラリを修正するためにフォークする必要があるケースが多くあります。モジュールはjarやaarの依存関係の4倍の時間がかかります。これは、モジュールが毎回最初からビルドする必要があるためです。

  3. 設定-> ビルド、実行、デプロイメント-> ビルドツール-> Gradle から Gradle オフライン作業を有効にします。これにより、ビルド中に gradle がネットワークにアクセスできなくなり、依存関係をキャッシュ自体から解決するよう強制されます。注意: これはすべての依存関係が一度にダウンロードされてキャッシュに保存されている場合にのみ機能します。新しい依存関係を変更または追加する必要がある場合は、このオプションを無効にしなければならず、そうしないとビルドが失敗します。

  4. プロジェクトのルートからgradle.propertiesファイルを開きます。その中に以下のコード行を追加します。org.gradle.daemon=true Gradleデーモンはバックグラウンドプロセスです。これを追加すると、ビルド中にいくつかの余分なメモリを消費します。org.gradle.parallel=true 上記のコード行は、複数のモジュールを同時にコンパイルできるようにします。それに加えて、他の利点も提供します。

    • 変更がないプロジェクトのために設定を再利用する
    • プロジェクトレベルは最新のチェックです
    • 依存プロジェクトを構築する代わりに、事前構築されたアーティファクトを使用する

    次のコード行を追加すると、ビルドの速度を向上させるのにも役立ちます。org.gradle.configureondemand=true もう一つ重要なプロパティは、org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8です。上記の行は、Javaコンパイラが最大2GB(2048MB)のメモリを使用できるようにするために用いられます。これは2GB以上のメモリが利用可能な場合にのみ使用するべきです。これがgradle.propertiesファイルの見た目です:

  5. 動的依存関係、例えばcompile 'com.google.maps.android:android-maps-utils:0.4+'のようなものは避けてください。動的依存関係は、最新のビルドを毎回探し続けるため、ビルドを遅くします。パフォーマンスを改善するためには、バージョンを固定する必要があります。

  6. 必要な依存関係のみを使用してください。例えば、Googleマップの依存関係では、compile 'com.google.android.gms:play-services:8.4.0'をインポートするのではなく、compile 'com.google.android.gms:play-services-maps:8.4.0'だけをインポートしてください。

私たちのプロジェクトにこのような調整を取り入れることで、長期的には多くの時間を節約できます。このGradleビルドのヒントが、あなたのプロジェクトのビルド時間を改善するのに役立つことを願っています。

関連記事: