jumboMode(dexOptions)的优缺点是什么?

时间:2016-02-26 03:03:12

标签: android android-studio android-gradle dexoptions

我的Android构建~~是~~很慢。 3-5分钟。

我删除了很多依赖项,现在可以在没有multidex的情况下构建 - yay。

然而我问自己手动设置巨型模式是否有意义......

jumboMode

  

启用后,它允许在dex文件https://stackoverflow.com/a/24224385/570168

中包含更多字符串
  • jumbo模式有disadavantes吗?
  • 它应该一直亮着吗? (或更好的关闭)
  • 它对构建速度有影响吗?

1 个答案:

答案 0 :(得分:0)

问题1:巨型模式没有任何缺点,但有一些优势。

超大模式与DEX文件中可以引用的字符串数有关,默认情况下使用16位宽的整数对它们进行索引。因此,如果您的应用程序编码的字符串超过2 ^ 16,则dx工具也会失败。但是,对于字符串引用,有一种解决方法:DEX支持“巨型操作码”,该代码允许32位宽的字符串引用。 Android Gradle构建脚本中的jumboMode标志启用了此模式,最多可引用2 ^ 32个字符串。

这意味着,如果您的dex文件中有2 ^ 16个以上的引用,则可以使用enter code class Program { static void Main(string[] args) { // list for items List<string> items = new List<string>() { "laptop", "book", "backpack", "cellphone", "pencils", "notebook", "pens" }; // list for prices List<double> prices = new List<double>() { 900.54, 40.20, 21.00, 600.00, 4.25, 10.50, 5.00 }; } } public static void CombineTheLists( string item, double prices) { for (int i = 0; i < item.Length; i++) { } } } 来允许最多2 ^ 32个引用来满足此要求。这是通过强制字节码始终使用“巨型字符串”(2 ^ 32)引用来完成的,以帮助避免合并dex文件时出现问题。

第二季度:这取决于您的班级文件。如果您不想担心它,可以随时将其打开。

第三季度:仅对构建速度没有影响。