我可以在Android调试版本中启用multidex吗?

His*_*akr 17 performance android android-multidex

亲爱的,我在很多博客文章中都看到,multidex apps启动比普通应用慢.我的应用程序使用了很多超过64k方法的库,所以我使用multidex.但是当我在发布版本中使用proguard时,最终的apk变得不到64k方法

所以我的问题是:我是否可以在Android调试版本中启用multidex,这样我就没有运行时错误?并在发布版本中禁用multi dex,因为我不需要它?

如果有,怎么样?

如果不是,Android是否足够智能以加速启动,因为它应该认识到应用程序不超过64k,即使它是多dex应用程序?

ant*_*icg 20

是的你可以.当您声明buildTypes仅包含针对debug的multidex时:

buildTypes {
    release {
        multiDexEnabled false
    }
    debug {
        multiDexEnabled true
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @KonradMorawski对于Android 5及以上版本不是必需的我相信 (2认同)

Ari*_*aro 9

除了仅为调试启用multidex,您可以将min sdk版本更改为21仅用于调试,因此gradle可以加快ART的dexing速度:

android {
    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 14
        }
    }
          ...
    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                                                 'proguard-rules.pro'
        }
    }
}
dependencies {
  compile 'com.android.support:multidex:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/tools/building/multidex.html