• 多渠道的配置


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

    先定义这两个维度

    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{...}
    	坏{...}
    	女人{...}
        }
    }
    

      

  • 相关阅读:
    mybatis0206 延迟加载
    怎样关闭“粘滞键”?
    TNS-12557: TNS:protocol adapter not loadable TNS-12560: TNS:protocol adapter error
    HTTP协议头部与Keep-Alive模式详解
    oracle定时器执行一遍就不执行或本就不执行
    Inflation System Properties
    https://stackoverflow.com/questions/16130292/java-lang-outofmemoryerror-permgen-space-java-reflection
    java spring中对properties属性文件加密及其解密
    annotation配置springMVC的方法了事务不起作用
    SQLPlus在连接时通常有四种方式
  • 原文地址:https://www.cnblogs.com/gelandesprung/p/10143373.html
Copyright © 2020-2023  润新知