android studio 多渠道打包

a.配置清单文件

在application节点中配置如下:

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="{UMENG_CHANNEL}" >
</meta-data>

b.配置build.gradle脚本文件

    //多渠道打包
    productFlavors {
        baidu {}
        beta {}
    }
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

c.在Terminal命令行面板中输入命令:
          gradlew clean              //清空之前的build目录

          gradlew build              //重新build project,完成后生成8个apk

生成结果如下:

注:假如想为生成的apk文件重命名,可以使用以下脚本(例如我们仅仅想对release 签名版本进行重命名)

applicationVariants.all { variant ->4
    variant.outputs.each { output ->
        def outputFile = output.outputFile
        if (outputFile != null && outputFile.name.endsWith('release.apk')) {
            def fileName = "wrapdemo${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
            output.outputFile = new File(outputFile.parent, fileName)
        }
    }
}

其中releaseTime()为我们自定义的方法(获取当前时间以yyyyMMdd的形式),具体如下

def releaseTime() {
    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}

之后在Terminal命令行面板中输入命令:
gradlew clean             

gradlew build            

生成apk结果如下图:

原文地址:https://www.cnblogs.com/x-bing/p/5463314.html