Android gradle中的“multiDexEnabled true”是什么意思。我们为什么要用这个?如果启用了什么效果?
Android应用程序(APK)文件包含Dalvik可执行文件(DEX)文件形式的可执行字节码文件,其中包含用于运行应用程序的编译代码。 Dalvik可执行规范将单个DEX文件中可引用的方法总数限制为65,536,包括Android框架方法,库方法和您自己的代码中的方法。超过此限制要求您配置应用程序构建过程以生成多个DEX文件,称为多索引配置。
你应该阅读关于Building Apps with Over 64K Methods的官方指南
Android应用程序默认具有SingleDex支持,这限制了您的应用程序只有65536个方法(引用)。所以multidexEnabled = true只是意味着你现在可以在你的应用程序中编写超过65536个方法(引用)。
当我们说方法的数量时,就意味着
您编写的方法+ Android Framework方法+第三方库(例如Volley,Retrofit,Facebook SDK等)方法。
我在一篇文章的某处读过 App Compat 24.2.1包含16.5k方法 Google Play服务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。 在enabling multidex support上查看更多信息
multidex允许您的应用程序拥有更多第三方库。
Android应用程序被编译成.dex文件/文件,然后压缩为单个.apk文件。 .dex文件具有Dalvik虚拟机(DVM)使用的字节码。 你可以在.dex and DVM上阅读更多内容
它允许您使用超过64k的方法构建应用程序。有关更多信息,请参阅http://developer.android.com/intl/es/tools/building/multidex.html