android - 构建多种口味的android应用会创建多个apk

标签 android gradle build

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

让我们假设有

A-应用

flavor 1-功能1,功能2
flavor 2-功能1,功能2,功能3

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

最佳答案

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
}

文档中介绍了其他方法。

关于android - 构建多种口味的android应用会创建多个apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45980095/

相关文章:

android - 应用程序在 android 中启动

android - 菜单按钮在我的 Samsung S2 Android Mobile 中不起作用。

github - Github Action ,摇晃。 git log的pretty = format标志不起作用

android - 是否弃用了 gradle 的 android transform-api?

build - Azure DevOps 构建失败 - MSB4226 - Analysis Services

android - 旋转手机时隐藏键盘

java - 仅接受来自一个 Android 应用程序的请求

javax/xml/bind/JAXBException 使用 gradle 构建

android - Jenkins 构建失败,Gradle 构建守护进程意外消失

c++ - 当Visual Studio 2017从github源构建时,c1083错误