android studio 友盟多渠道打包

本文介绍如何通过Gradle配置实现Android应用多渠道打包自动化。主要讲述了如何在AndroidManifest.xml中设置渠道信息,并通过Gradle脚本根据不同渠道自动生成对应的APK文件。

渠道信息一般在  AndroidManifest.xml 中修改以下值:
首先你必须在AndroidManifest.xml中的meta-data修改以下的样子:
<meta-data android:name="UMENG_CHANNEL"
            android:value="${UMENG_CHANNEL_VALUE}" />
其中 ${UMENG_CHANNEL_VALUE} 中的值就是你在gradle中自定义配置的值。
build.gradle文件就利用productFlavors:
productFlavors {
  wandoujia {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
  }
  baidu {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
  }
  360 {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]
  }
}其中 [UMENG_CHANNEL_VALUE: "wandoujia"] 就是对应 ${UMENG_CHANNEL_VALUE} 的值。
更简洁的写法
productFlavors {
  wandoujia { }
  baidu { }
  360 { }
  productFlavors.all { flavor ->
    flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
  }
}
其中 name 的值对相对应各个 productFlavors 的选项值,这样就达到自动替换渠道值的目的了。
设置输出apk名称
buildTypes {
        release {
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        // 输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk
                        def fileName = "app_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
        }
    }
    
一次生成所有渠道包
在android studio底栏中有个命令行工具 Terminal 
gradlew assembleRelease 就可以一次性生成所有的渠道包了
单独生成渠道包
gradle assembleWandoujiaRelease

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值