165

前回の更新 (6 月 25 日からのビルド) 以来、Android スタジオ Gradle の変更は非常に遅くなりました。また、ファイルを編集してキーアップ時に再コンパイルすると、変更が自動追跡されるようです。

i5 では、各変更に数分かかります。

Gradleの変更をスピードアップする方法はありますか?

4

24 に答える 24

100

間違いなく違いを生む: How To… Gradle のビルド時間を短縮する

gradle.properties次のディレクトリに名前の付いたファイルを作成するだけです。

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

次の行をファイルに追加します。

org.gradle.daemon=true
于 2014-01-29T19:41:16.917 に答える
79

この設定を変更すると、コンパイル時間が 10 分から 10 秒に短縮されました。

ステップ1:

設定(ctrl+Alt+S) ->

ビルド、実行、デプロイ ->

コンパイラ ->

--offlineコマンドライン オプション ボックスに「 」と入力します。

ステップ2:

「独立したモジュールを並行してコンパイルする」チェックボックスをオンにします。

& クリック 適用 -> OK

ここに画像の説明を入力

ステップ 3: gradle.properties ファイルに -> 次の行を追加します。

org.gradle.jvmargs=-Xmx2048M -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=true

アップデート:

Android Studio 2.0 以降を使用している場合は、Instant Run をお試しください

設定 → ビルド、実行、デプロイ → Instant Run → Instant Run を有効にします。

Instant Run の詳細 - https://developer.android.com/studio/run/index.html#instant-run

于 2015-06-27T14:11:14.693 に答える
41

開発者はそれに取り組んでいます。この回答に投稿したように、現時点で最速の解決策は、コマンド ラインから gradle を使用することです。開発していないすべてのモジュールについては、バイナリ ライブラリに切り替える必要があります。g+ では、それについて開発者との議論があります。

于 2013-06-26T16:06:44.443 に答える
6

Android Studio 2.1 では、「Dex In Process」を有効にしてアプリのビルドを高速化できます。

ここに画像の説明を入力

詳細については、https ://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.vijksflyn をご覧ください。

于 2016-05-13T00:43:55.427 に答える
5
dexOptions {
    incremental true
    javaMaxHeapSize "4g"
}
于 2016-02-15T18:20:27.013 に答える
4
  1. オフライン作業を有効にする

  2. 次のコードを追加して、Gradle のパフォーマンスを改善します。gradle.properties

org.gradle.daemon=true
org.gradle.parallel=true

ステップ バイ ステップ ガイド: http://www.viralandroid.com/2015/08/how-to-make-android-studio-fast.html

于 2016-01-16T13:58:06.900 に答える
2

コマンド ラインを使用してパフォーマンスを向上させることもできます。Linux<task name>のプロジェクトのルート フォルダー内からコマンド ./gradlew を使用するか<task name>、特定の Gradle に対して上記のコマンドのいずれかを最初に実行するときに、gradlew のような gradlew.bat ファイルを使用できます。バージョンに対応する Gradle ディストリビューションをダウンロードし、それを使用してビルドを実行します。

ラッパーを介して Gradle プロジェクトをインポートする場合、IDE は Gradle の「すべての」ディストリビューションを使用するように要求する場合があります。これはまったく問題なく、IDE がビルド ファイルのコード補完を提供するのに役立ちます。これは、自分で Gradle を手動でインストールする必要がないことを意味するだけでなく、ビルドが設計されたバージョンの Gradle を確実に使用できることを意味します。これにより、履歴ビルドの信頼性が向上します。詳細については、Wrapper を使用したビルドの実行を参照してください。

于 2016-01-20T14:30:41.487 に答える
0

Drawable フォルダーを右クリックし、png/jpg 画像を webp 形式に変換すると、gradle が大幅に改善されました

于 2021-07-14T04:08:06.907 に答える
0

Android開発者ドキュメントから:

JVM ガベージ コレクタを構成します。ビルド時間が 2 ~ 4 秒に短縮されました

gradle.properties ファイル

org.gradle.jvmargs=-Xmx1536m -XX:+UseParallelGC

この開発者ドキュメントを参照してください

于 2021-10-12T12:29:03.273 に答える
0

プロジェクトで multidex を有効にした場合によく発生します。これにより、開発プロセスが遅くなる可能性があります!! よるドキュメント

ビルド システムは、どのクラスをプライマリ DEX ファイルに含める必要があるか、どのクラスをセカンダリ DEX ファイルに含めることができるかについて複雑な決定を下す必要があるため、multidex 構成ではビルド処理時間が大幅に長くなります。つまり、multidex を使用したインクリメンタル ビルドは通常、時間がかかり、開発プロセスが遅くなる可能性があります。

しかし、これを最適化できます:

より長い増分ビルド時間を軽減するには、プレデクシングを使用して、ビルド間でマルチデックス出力を再利用する必要があります。

Android Studio 2.3 以降を使用している場合、Android 5.0 (API レベル 21) 以降を実行しているデバイスにアプリをデプロイするときに、IDE は自動的にこの機能を使用します。

したがって、 minSdkVersion を 21 以上に設定する必要があります。

ただし、製品バージョンで 21 未満の minSdkVersion をサポートする必要がある場合、たとえば 19

productFlavors を使用して、開発バージョンの minSdkVersion 21 を設定できます。

    android {
    defaultConfig {
        ...
        multiDexEnabled true
        // The default minimum API level you want to support.
        minSdkVersion 15
    }
    productFlavors {
        // Includes settings you want to keep only while developing your app.
        dev{
            //the IDE automatically uses  pre-dexing feature to mitigate longer incremental when deploying your app to a device running Android 5.0 !
            minSdkVersion 21
        }
        prod {

        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                                                 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile 'com.android.support:multidex:1.0.3'
}
于 2018-07-20T07:56:21.990 に答える