android通过Gradle多渠道打包

由于Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,不过我们可以通过Gradle进行打包,以下为方法和技巧。

在使用SDK监测渠道时候,需要在AndroidManifest.xml里面进行配置,配置信息如下:

<meta-data

android:name=Channel”    //Channel标识为渠道监测; 

android:value=Channel_ID  //Channel_ID需要设置的渠道名称;

/>

里面的Channel_ID就是渠道标示。我们的目标就是在编译的时候这个值能够自动变化。

  • 第一步 在AndroidManifest.xml里配置PlaceHolder。

<meta-data

android:name=Channel

android:value=${CHANNEL_VALUE}  //将该处Channel_ID的值修改为变量${CHANNEL_VALUE}

/>

  • 第二步 在build.gradle设置productFlavors。

方法一:

android {

 productFlavors {

 xiaomi {

 manifestPlaceholders = [CHANNEL_VALUE: “xiaomi”]

}

360 {

 manifestPlaceholders = [CHANNEL_VALUE: “360”]

}

baidu {

 manifestPlaceholders = [CHANNEL_VALUE: “baidu”]

}

wandoujia {

 manifestPlaceholders = [CHANNEL_VALUE: “wandoujia”]

}

}

}

方法二:

android {

productFlavors {

xiaomi {}

360 {}

baidu {}

wandoujia {}

}

productFlavors.all {

flavor -> flavor.manifestPlaceholders = [CHANNEL_VALUE: name]

}

}

  • 执行 ./gradlew assembleRelease 进行打包。
未经允许不得转载:Cooders'S Blog » android通过Gradle多渠道打包