Flavor Dimension源代码

时间:2016-11-07 20:52:42

标签: android android-productflavors android-sourcesets

我有一个包含约30种产品口味的项目。其中一些产品口味需要共享代码,而不与大多数产品口味共享。我可以将代码分配给风味组吗?

1 个答案:

答案 0 :(得分:0)

1)您知道如何为特定产品风格创建文件夹吗? 您可以创建一个文件夹,其中包含将用于特定风味组合的源或资源。 https://developer.android.com/studio/build/build-variants.html#sourcesets

例如,我们有一些风格:“beta”,“prod”在一个维度,“newApi”,“oldApi”在另一个维度。我们对所有风味组合使用一个类实现,除非它是带有新api的beta。所以我们发现gradle如何命名这个buidle变种(betaNewApi),创建文件夹项目/ app / src / betaNewApi并将我们的类放在那里,为包保存项目结构。因此,需要这个特定类的类只需要通常的一个或这个特殊的类型。

Our example

2)如果您不需要共享整个类而只需要共享一小部分代码,则可以使用运行时检查来进行调整:

if (BuildConfig.FLAVOR_releaseType.equals("prod")) 
    && BuildConfig.FLAVOR_apiLvl.equals("newApi")) {
        // here is your shared code
}

我们将像“prod”这样的常量提取到Application类中,并以这种方式使用它们。