美文网首页
Android Gradle productFlavors 优化

Android Gradle productFlavors 优化

作者: StoneHui | 来源:发表于2019-07-08 17:55 被阅读0次

    平时的多渠道打包配置方式:

    android {
        ......
        productFlavors {
            flavorName1 {
                manifestPlaceholders.put("JPUSH_CHANNEL", "channel_1")
                buildConfigField("int", "fieldXxx", "1")
                ......
            }
            flavorName2 {
                manifestPlaceholders.put("JPUSH_CHANNEL", "channel_2")
                buildConfigField("int", "fieldXxx", "2")
                ......
            }
            .......
        }
    }
    

    这种方式没啥问题,只是写起来太烦了,一堆的重复代码,我不爽,我要封装一下:

    android {
        ......
        productFlavors {
            ext.flavor = { _flavor, _jPushChannel, _fieldXxx ->
                _flavor.manifestPlaceholders.put("JPUSH_CHANNEL", _jPushChannel)
                _flavor.buildConfigField("int", "fieldXxx", _fieldXxx)
            }
            flavorName1 {
                flavor(flavorName1, "channel_1", "1")
            }
            flavorName2 {
                flavor(flavorName2, "channel_2", "2")
            }
        }
    }
    

    封装完成,编译运行也没有问题。
    但是每个渠道要写 3 行代码,写两遍渠道名,还是不爽,我要一行搞定:

    android {
        ......
        productFlavors {
            ext.flavor = { _flavor, _jPushChannel, _fieldXxx ->
                _flavor.manifestPlaceholders.put("JPUSH_CHANNEL", _jPushChannel)
                _flavor.buildConfigField("int", "fieldXxx", _fieldXxx)
            }
            flavor(flavorName1, "channel_1", "1")
            flavor(flavorName2, "channel_2", "2")
        }
    }
    

    完美~
    配置越多,越能体现这种写法的优势。

    相关文章

      网友评论

          本文标题:Android Gradle productFlavors 优化

          本文链接:https://www.haomeiwen.com/subject/yepahctx.html