产品风味结构

时间:2015-11-30 18:56:04

标签: android android-productflavors

我有一个使用~30种产品口味的项目。除了“主要”代码之外,它们的味道并不多,只有一些独特的资源。由于有这么多,我想构建我的代码目录,使其更有条理:

  • SRC
      • 的java
      • RES
    • productFlavors
      • flavor1
        • 的java
        • RES

但是当构建版本与“main”文件夹不同时,构建版本无法识别它们的风格。我有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:5)

  

我有一个使用~30种产品口味的项目

还有一个,你将匹配Baskin-Robbins' original ~31 flavors

  

但是,当它们处于不同于" main"的范围时,它不能识别它们的味道。夹。我有什么方法可以做到这一点吗?

您可以覆盖模块的build.gradle文件来源。虽然我没有尝试过你的场景(仅用于使用Gradle构建Eclipse风格的项目),但这样的事情应该有效:

android {
    // lots of cool stuff here

    sourceSets {
        flavor1 {
            manifest.srcFile 'src/productFlavors/flavor1/AndroidManifest.xml'
            java.srcDirs = ['src/productFlavors/flavor1/java']
            aidl.srcDirs = ['src/productFlavors/flavor1/aidl']
            res.srcDirs = ['src/productFlavors/flavor1/res']
            assets.srcDirs = ['src/productFlavors/flavor1/assets']
        }

        // lather, rinse, repeat
    }
}

如果您坚持src/productFlavors/.../的固定模式(其中...是风味名称),您可以使用一些Groovy脚本来迭代一系列风味名称并连接相应的源集。