多渠道的配置

多渠道先要分析需求,然后按功能划分成几个维度.举个例子,我们要打的包特供"好女人"和"坏男人",我们的需求就可以分成两个维度,"性别"和"品性"

先定义这两个维度

android{
    defaultConfig {
            flavorDimensions "性别","品性"
    }
}

  然后我们配置productFlavors,

android{
    productFlavors{
       好 {
              dimension '品性'
        }
        坏{
             dimension '品性'
           }
        男人{
            dimension '性别'
        }
         女人{
              dimension '性别'
        }
       
    }
}

  由于我们只需要好女人和坏男人两个版本,所以需要把好男人和坏女人过滤掉

android{
    defaultConfig{
	flavorDimensions "品性","性别"
    }
    productFlavors{
       好 {
              dimension '品性'
        }
        坏{
             dimension '品性'
           }
        男人{
            dimension '性别'
        }
         女人{
              dimension '性别'
        }
       
    }

    variantFilter{
        def names = it.flavors*.name
        if(names.contains("男人") && names.contains("好")){
            setIgnore(true)
        }
	if(names.contains("女人") && names.contains("坏")){
            setIgnore(true)
        }
     }
}

  然后,我们坏男人专用版本只供测试,不对外分部,也就是说不需要release版本

android{
    defaultConfig{
	flavorDimensions "品性","性别"
    }
    productFlavors{
       好 {
              dimension '品性'
        }
        坏{
             dimension '品性'
           }
        男人{
            dimension '性别'
        }
         女人{
              dimension '性别'
        }
       
    }

    variantFilter{
        def names = it.flavors*.name
        if(names.contains("男人") && names.contains("好")){
            setIgnore(true)
        }
	if(names.contains("女人") && names.contains("坏")){
            setIgnore(true)
        }
	if(names.contains("男人")&&names.contains("坏") && it.buildType.name=='release'){
            setIgnore(true)
        }
     }
}

  坏有部分特殊的代码,另外放置,女人也有部分代码和资源放置到其它目录

android{
    defaultConfig{
	flavorDimensions "品性","性别"
    }
    productFlavors{
       好 {
              dimension '品性'
        }
        坏{
             dimension '品性'
           }
        男人{
            dimension '性别'
        }
         女人{
              dimension '性别'
        }
       
    }

    variantFilter{
        def names = it.flavors*.name
        if(names.contains("男人") && names.contains("好")){
            setIgnore(true)
        }
	if(names.contains("女人") && names.contains("坏")){
            setIgnore(true)
        }
	if(names.contains("男人")&&names.contains("坏") && it.buildType.name=='release'){
            setIgnore(true)
        }
     }
    sourceSets{
	main{...}
	坏{...}
	女人{...}
    }
}

  

猜你喜欢

转载自www.cnblogs.com/gelandesprung/p/10143373.html