构建多种口味的Android应用程序创建多个apks

时间:2017-08-31 11:11:38

标签: android gradle build

我想创建一个具有两种风格的应用程序,一种功能较少,另一种功能更多。我该怎么办

让我们假设有

A - 申请

Flavour1 - feature1,feature2 Flavour2 - feature1,feature2,feature3

如何发布一个apk 以及用户如何从Play商店安装应用程序,用户将如何知道将要安装哪种风味

1 个答案:

答案 0 :(得分:0)

There is nice documentation from google.

多种口味

您应该在构建文件

中声明flavor
android {
    ...
    defaultConfig {...}
    buildTypes {...}
    productFlavors {
        demo {
            applicationIdSuffix ".demo"
            versionNameSuffix "-demo"
        }
        full {
            applicationIdSuffix ".full"
            versionNameSuffix "-full"
        }
    }

}

构建完成后,将创建两个apk文件。它们有不同的应用程序ID,因此您可以将它们作为两个不同的应用程序发布到Play商店。例如,一个免费和一个付费。

功能

可以有更多解决方案,但最简单的方法是使用buildConfigField。

productFlavors {
   demo {
       applicationIdSuffix ".demo"
       versionNameSuffix "-demo"
       buildConfigField "boolean", "FEATURE_1", "true"
       buildConfigField "boolean", "FEATURE_2", "false"
       buildConfigField "boolean", "FEATURE_3", "false"
   }
   full {
       applicationIdSuffix ".full"
       versionNameSuffix "-full"
       buildConfigField "boolean", "FEATURE_1", "true"
       buildConfigField "boolean", "FEATURE_2", "true"
       buildConfigField "boolean", "FEATURE_3", "true"
   }
}

然后在java源代码中,您可以检查功能是否已启用:

if (BuildConfig.FEATURE_1) {
   //run feature
}

文档中描述了其他一些方法。