web-dev-qa-db-ja.com

「multiDexEnabled true」とはどういう意味ですか?

Android gradleの "multiDexEnabled true"の意味。これを使用する理由は、有効にした場合の影響です。

46
shekhar pande

Androidアプリケーション(APK)ファイルには、アプリの実行に使用されるコンパイル済みコードを含むDalvik実行可能(DEX)ファイルの形式の実行可能バイトコードファイルが含まれます。 Dalvik Executable仕様では、Androidフレームワークメソッド、ライブラリメソッド、独自のコードのメソッドを含む、単一のDEXファイル内で参照できるメソッドの総数を65.536に制限しています。 multidex構成と呼ばれる複数のDEXファイルを生成するようにアプリのビルドプロセスを構成する必要があります。

64K以上のメソッドを使用したアプリの構築についての公式ガイドラインを読む必要があります。

49
IntelliJ Amiya

Androidアプリケーションには、デフォルトでアプリケーションが65536個のメソッド(参照)のみを持つように制限するSingleDexサポートがあります。したがって、multidexEnabled = trueは、アプリケーションで65536を超えるメソッド(参照)を記述できることを意味します。

しかし、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メソッドがあります。

Multidexサポートを有効にする方法

アプリのminSdkVersionに依存します

MinSdkVersion> = 21の場合、multidexEnabled = trueと記述することで有効にできます。
minSdkVersion <21の場合、Gradleに Multidex Compatibily library を含める必要があります。
詳細は multidexサポートの有効化

MultiDexの利点

multidexを使用すると、アプリケーションでより多くのサードパーティライブラリを使用できます。

.dexファイルの詳細

Androidアプリケーションは、単一の.apkファイルに圧縮された.dexファイルにコンパイルされます。 .dexファイルには、Dalvik Virtual Machine(DVM)が使用するバイトコードがあります。
詳細は 。dexおよびDVM

16
Rohit Singh

64kを超えるメソッドでアプリを構築できます。詳細については、こちらを参照してください http://developer.Android.com/intl/es/tools/building/multidex.html

1

multidexはアプリケーションへのサードパーティライブラリをサポートします

MinSdkVersion> = 21の場合、multiSxVersion <21の場合、multidexEnabled = trueと記述することで有効にできます。グラドルに Multidex Compatibilyライブラリ を含める必要があります。 multidexサポートの有効化 の詳細を参照してください

0
Keshav Gera