我最近发现了来自 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 方法。在更新 multidex 构建工具以允许您指定必须包含在主 dex 文件中的类之前,某些库可能无法使用。
2) 仅针对 Android API Level 21 (Android L) 及更高版本构建时,Gradle Build Plugin 中的行为有所不同。它说它要快得多,因为它“将应用程序的每个模块(包括依赖项)构建为单独的 dex 文件。这通常称为预 dexing。” Android中模块的定义是什么?这是这里提到的 Java 库、Android 库和 Android 应用程序模块:http: //developer.android.com/sdk/installing/studio-build.html#projectModules?远程或本地二进制依赖项(例如:Jars)是否算作单独的模块,因此会被放入不同的 dex 文件中,还是根据它们被包含在模块中?