Android gradleの "multiDexEnabled true"の意味。これを使用する理由は、有効にした場合の影響です。
Androidアプリケーション(APK)ファイルには、アプリの実行に使用されるコンパイル済みコードを含むDalvik実行可能(DEX)ファイルの形式の実行可能バイトコードファイルが含まれます。 Dalvik Executable仕様では、Androidフレームワークメソッド、ライブラリメソッド、独自のコードのメソッドを含む、単一のDEXファイル内で参照できるメソッドの総数を65.536に制限しています。 multidex構成と呼ばれる複数のDEXファイルを生成するようにアプリのビルドプロセスを構成する必要があります。
64K以上のメソッドを使用したアプリの構築についての公式ガイドラインを読む必要があります。
Androidアプリケーションには、デフォルトでアプリケーションが65536個のメソッド(参照)のみを持つように制限するSingleDexサポートがあります。したがって、multidexEnabled = trueは、アプリケーションで65536を超えるメソッド(参照)を記述できることを意味します。
メソッドの数を言うと、それは
あなたが書いたメソッド+ Android Frameworkメソッド+サードパーティライブラリ(Volley、Retrofit、Facebook SDKなど)メソッド。
私はその投稿のどこかを読んだことがあります
App Compat 24.2.1には16.5kのメソッドが含まれています
Google Play Services GCM 9.6.1には16.7kのメソッドが含まれています。
したがって、App Compat 24.2.1を備えた単純なHello worldアプリケーションを作成したばかりの場合、アプリケーションには既に16.7kメソッドがあります。
アプリのminSdkVersionに依存します
MinSdkVersion> = 21の場合、multidexEnabled = trueと記述することで有効にできます。
minSdkVersion <21の場合、Gradleに Multidex Compatibily library を含める必要があります。
詳細は multidexサポートの有効化
multidexを使用すると、アプリケーションでより多くのサードパーティライブラリを使用できます。
Androidアプリケーションは、単一の.apkファイルに圧縮された.dexファイルにコンパイルされます。 .dexファイルには、Dalvik Virtual Machine(DVM)が使用するバイトコードがあります。
詳細は 。dexおよびDVM
64kを超えるメソッドでアプリを構築できます。詳細については、こちらを参照してください http://developer.Android.com/intl/es/tools/building/multidex.html
multidexはアプリケーションへのサードパーティライブラリをサポートします
MinSdkVersion> = 21の場合、multiSxVersion <21の場合、multidexEnabled = trueと記述することで有効にできます。グラドルに Multidex Compatibilyライブラリ を含める必要があります。 multidexサポートの有効化 の詳細を参照してください