Multi-APK through Product Flavors

A product flavor defines a customized version of the application build by the project. A single project can have different flavors which change the generated application.

The productFlavors support the same properties as defaultConfig this is because defaultConfig actually belongs to the ProductFlavor class

android {
    defaultConfig {...}
    buildTypes {...}
    productFlavors {
        demo {
            applicationId "com.example.myapp.demo"
            versionName "1.0-demo"
        full {
            applicationId "com.example.myapp.full"
            versionName "1.0-full"

Product flavors can customize the following properties:

  • minSdkVersion
  • targetSdkVersion
  • versionCode
  • versionName
  • package name
  • release signing info
  • BuildConfig
  • NDK ABI filter
  • test info