产品口味超过2维

时间:2017-07-21 13:11:02

标签: android android-gradle android-productflavors android-flavordimension

今年早些时候,我为客户发布了一个应用程序,我们使用了味道尺寸。我们有

         Full   |  Preview
Apple  | Apple  | Apple.Preview
Orange | Orange | Orange.Preview

这完美无缺。但现在我需要将Banana添加到项目中作为另一个应用程序,事情变得混乱。

在完整版本中,我有一些现有版本共享的功能,我希望完全从新应用程序中省略。还有一些资源可以很好地删除,但由于这些是小文件,我并不关心它。我也希望避免使用Full PreviewBanana,但如果我不能这样做,那么它就可以了。 我真正需要做的是将AppleOrange中的一些文件分组,将所有3个文件分组。有点像制作第三个维度。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

首先,对于您的不同文件,请使用productFlavorsGradle

    apple{
        applicationId "com.android.apple"
        buildConfigField "String", "MY_DISTINC_STUFF", "APPLE"
    }

    orange{
        applicationId "com.android.orange"
        buildConfigField "String", "MY_DISTINC_STUFF", "ORANGE"
    }

    banana{
        applicationId "com.android.banana"
        buildConfigField "String", "MY_DISTINC_STUFF", "BANANA"
    }

如果您想使用该字符串,请使用此BuildConfig.MY_DISTINC_STUFF

其次,如果要将一些可用于1,2或全部的文件分组。你必须这样做。

  1. src文件夹
  2. 下创建3个文件夹
  3. 按照build.gradle(应用级别)中的定义命名。例如:文件夹apple,文件夹orange,文件夹bananaDON'T删除您的主文件夹
  4. 如果您想为所有人使用相同的文件,请将该文件添加到main文件夹。 (不要关心其他3人)
  5. 如果要为不同的文件夹使用不同的文件,请创建具有same名称但different folder的4个文件。
  6. 运行时,请选择合适的Build Variants
  7. Android Runtime将决定必须加载哪个文件。