1

今年早些时候,我为我们使用风味维度的客户发布了一个应用程序。我们有

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

这非常有效。但现在我需要Banana作为另一个应用程序添加到项目中,事情变得一团糟。

在完整版本中,我有一些现有版本共享的功能,我希望完全从新应用程序中排除。有些资源也可以很好地删除,但由于这些是小文件,我并不关心它。我也希望避免Full和的Preview版本Banana,但如果我不能这样做,那也没关系。我真正需要做的是将一些文件分组到Appleand中Orange,而其他文件则为所有 3。有点像制作第三维。有什么建议吗?

4

1 回答 1

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. 在文件夹下创建3个文件src
  2. build.gradle按照您在(应用程序级别)中定义的名称命名它。例如:文件apple夹,文件夹orange,文件夹bananaDON'T删除你的主文件夹
  3. 如果您想对所有人使用相同的文件,请将该文件添加到文件main夹中。(不要在意其他3个)
  4. 如果要为不同的文件夹使用不同的文件,请创建 4 个具有same名称的文件,但是different folder.
  5. 跑步时,选择合适的Build Variants

Android 运行时将决定必须加载哪个文件。

于 2017-07-21T13:25:24.473 回答