返回

不同产品风味的不同依赖项:Gradle 指南

Android

构建不同产品风味的依赖项:Gradle 指南

简介

随着应用程序变得越来越复杂,我们经常需要创建具有不同功能和依赖项的产品风味。Gradle 的构建风味功能提供了方便的方法来实现这一点。本文将指导您完成使用 Gradle 定义不同产品风味的不同依赖项的步骤,并提供一个示例说明如何为免费广告风味添加 AdMob SDK。

步骤

1. 创建构建文件

首先,创建或打开应用程序的构建文件 (build.gradle)。此文件包含应用程序的构建配置。

2. 添加构建风味

android 块中,添加 productFlavors 块。此块用于定义应用程序的不同产品风味。每个产品风味都是应用程序的独立版本,具有自己的配置和依赖项。

android {
    ...
    productFlavors {
        Pro {
            ...
        }
        Free {
            ...
        }
    }
}

3. 添加依赖项

对于每个产品风味,您可以在 dependencies 块中指定特定于该风味的依赖项。例如,要为“Free”产品风味添加对 AdMob SDK 的依赖项,请执行以下操作:

productFlavors {
    Free {
        dependencies {
            compile files('libs/admob/admob-sdk-v6.13.0.jar')
        }
    }
}

4. 合并库

如果您需要合并主库与特定产品风味的私有库,可以在 sourceSets 块中添加以下代码:

sourceSets {
    main {
        ...
    }

    Free {
        ...
    }

    compileClasspath += files(allprojects.collect { it.buildDir.path })
}

示例

构建文件示例

以下是完整的示例构建文件,其中演示了如何为免费广告风味添加对 AdMob SDK 的依赖项:

buildscript {
    ...
}
apply plugin: 'android'

repositories {
    ...
}

android {
    ...
    productFlavors {
        Pro {
            packageName "de.janusz.journeyman.zinsrechner.pro"
        }
        Free {
            dependencies {
                compile files('libs/admob/admob-sdk-v6.13.0.jar')
            }
        }
    }
}

dependencies {
    ...
}

通过此配置,Gradle 将构建两个 APK:一个用于付费“Pro”风味,一个用于免费的广告“Free”风味。免费风味将包含 AdMob SDK,而付费风味则不会。

结论

使用 Gradle 的构建风味功能,我们可以轻松地为不同的产品风味定义不同的依赖项。这使我们能够创建应用程序的多个版本,每个版本都针对特定受众和功能进行定制。

常见问题解答

1. 如何为其他产品风味添加依赖项?

只需在 productFlavors 块中添加一个新的产品风味并指定其依赖项。

2. 我如何处理跨所有产品风味的依赖项?

将这些依赖项添加到 dependencies 块,该块位于 productFlavors 块之外。

3. 我在哪里可以找到有关 Gradle 的更多信息?

Gradle 文档和用户指南提供了有关构建风味和其他主题的全面信息。

4. 如何将依赖项打包到特定的 APK 中?

使用 applicationVariants API,您可以查询和控制每个产品风味构建的工件。

5. 如何避免在多个产品风味中重复代码?

考虑使用特性模块来组织和重用通用代码。