LoginSignup
32
32

More than 5 years have passed since last update.

multidex環境でのビルドの高速化

Last updated at Posted at 2015-10-26

SDKバージョン21からmultidex環境でのビルドが最適化され、高速にビルドできるようになりました。これを有効にするためにはgradle.build上でminSdkVersionを21以上にする必要があります。

ただ、実際のプロダクトにおいて、minSdkVersionが21(Android 5.0以上)というのは現実的ではありません。そこで、開発環境とプロダクション環境で別々のproductFlavorを定義することで、開発時にはminSdkVersionを21に指定し、プロダクトとしてリリースする場合にはminSdkVersionを実際使われる値を使用することができます。これにより、開発時は高速なビルドで効率的な開発を行うことができます。

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'
}

参考URL

自分の環境ではもともとdebugビルドで1分30秒くらいかかっていたのが、50秒くらいに短縮されました。

すでにflavorが設定されている場合

しかし、すでにflavorによって複数のソースツリーの管理などが行われている場合、単純にflavorによってminSdkVersionを分けることはできません。(ちなみにbuildTypeではminSdkVersionは指定できません)そのためには次のような方法を用います。

32
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
32