web-dev-qa-db-ja.com

dexOptions内のインクリメンタル、preDexLibraries、jumboModeの意味は何ですか?

build.gradle内にそのパラメーターを追加できます

Android {
    dexOptions {
        incremental 
        preDexLibraries
        jumboMode 
        javaMaxHeapSize
    }
}

しかし、ドキュメントは低すぎます

http://google.github.io/Android-gradle-dsl/current/com.Android.build.gradle.internal.dsl.DexOptions.html#com.Android.build.gradle.internal.dsl。 DexOptions

ブール増分

Dxの増分モードを有効にするかどうか。これには多くの制限があり、機能しない場合があります。慎重に使用してください。

ブールjumboMode

Dxでジャンボモードを有効にします(--force-jumbo)。

ブールpreDexLibraries

ライブラリを事前にデックスするかどうか。これによりインクリメンタルビルドを改善できますが、クリーンビルドは遅くなる場合があります。

1)増分にはどの制限がありますか?

2)ジャンボモードとは

3)pre-dexライブラリとは何ですか?

23
Xan

まず、whats dexファイルを見てみましょう。純粋なJavaでは、Javaコードをコンパイルすると、Android your Javaで_.class_ファイルにコンパイルされます。 _コードは_.dex_ファイルにコンパイルされます。 (両方ともバイトコードですが、異なります)

incremental:これは、Gradleが以前のdexファイルを使用し、それらに新しい変更を追加することを意味します(毎回それらを再構築しない)。

最初のQの答え:例制限の1つは、multidex *と一緒に使用できないことでした(この制限は解決されましたが、sdkバージョンでは、影響を受けるdexファイルのみを再構築することにより、multidex apkに対して21+の増分ビルドが可能です)

-注:Gradleバージョン2.1.0以降、インクリメンタルオプションはデフォルトでtrueであるため、この制限について心配する必要はもうありません。

multidex:このオプションは、コードメソッドが単一のdexファイルの最大制限(64kメソッド)を超えない限り、Javaコードを複数のdexファイルにコンパイルすることを意味します。

jumboMode2番目のQの答え):dexファイルの文字列カウントにも制限があります。このオプションを有効にすると、dexファイルの文字列カウントが拡張されます(このオプションはtrue Gradle 2.1.0以降なので、心配する必要はありません)

preDexLibraries番目のQの答え):ライブラリからdexファイルをビルドするため、incremental builds(dexファイルを毎回ビルドしないライブラリの時間)。したがって、クリーンビルド時にこのアイテムを使用すると、すべてが少し遅くなります。

19
Amir Ziarati