×

Android Android开发中渠道包过多时gradle过滤处理 Android渠道包grale优化过滤处理

Android开发中渠道包过多时gradle过滤处理

mtsym mtsym 发表于2018-07-05 14:46:18 浏览5257 评论0

抢沙发发表评论

有些公司App需要大力推广,所以会要求打大量的渠道包,这样gradle文件里面会产生一堆配置,如果不进行处理每次打开项目会非常慢,AS会花大量的时间去处理这些渠道包,为了避免这个问题,只需要在variantFilter进行一些过滤配置就行了,大致如下

variantFilter { variant ->
    def names = variant.flavors*.name

    def buildTypeName = variant.buildType.name
    // 过滤分组或者渠道信息
    Boolean is_target_vendor = names[0].contains('vendor')
    Boolean is_target_channel = names[1].contains('channel')
    // 过滤打包类型 release还是debug
    Boolean is_target_type = buildTypeName.equals('debug') || buildTypeName.equals('release') 

    if (is_target_vendor && is_target_channel && is_target_type) {
        variant.setIgnore(false)
        logger.warn('package flavor:' + names)
    }
    else {
        // 其他包直接忽略
        variant.setIgnore(true)
    }
}

群贤毕至

访客