我最近发现了Android的新MultiDex功能,用于处理引用超过65,000个的应用程序。请参阅:https://developer.android.com/tools/building/multidex.html
有人可以帮我理解以下问题:
1)Gradle构建插件如何确定将什么内容放入主dex文件(classes.dex)与辅助dex文件中?根据文档,必须在主dex中包含某些内容,但它没有给出任何示例。所有活动都必须在主dex文件中吗?
引用文本:
在Dalvik运行时执行时,主dex文件需要包含哪些类存在复杂要求。Android构建工具更新处理Android要求,但其他包含的库可能具有额外的依赖要求,包括使用内省或从本地代码调用Java方法。一些库可能无法使用,直到多重Dex构建工具被更新以允许您指定必须包括在主dex文件中的类。
2) 当仅为Android API Level 21(Android L)及以上版本构建时,Gradle Build插件的行为会有所不同。它说速度更快,因为它“将应用程序的每个模块(包括依赖项)作为单独的dex文件构建。这通常被称为预编译。”在Android中,模块的定义是什么?这是指Java库、Android库和Android应用程序模块吗?http://developer.android.com/sdk/installing/studio-build.html#projectModules?远程或本地二进制依赖项(例如Jars)是否算作单独的模块,因此会被放入不同的dex文件中,还是根据它们进行依赖的模块中包含它们?