友盟多渠道打包
2018-08-29 本文已影响0人
bobo_li
步骤一:在AndroidManifest.xml中加入 meta-data
<application>
<meta-data android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}"/>
</application>
步骤二:在gradle中加入
productFlavors {
wandujia {}
yingyongbao {}
xiaomi {}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
//指定输出apk的名称
android.applicationVariants.all { variant ->
variant.outputs.all {
if (variant.name.endsWith("Debug")) {
//debug包
outputFileName = "$applicationId _v${defaultConfig.versionName}_code${defaultConfig.versionCode}_debug.apk"
} else {
//release包
outputFileName = "$applicationId _v${defaultConfig.versionName}_code${defaultConfig.versionCode}_${releaseTime()}_release.apk"
}
}
}
def releaseTime() {
return new Date().format("yyyyMMddHHmm", TimeZone.getTimeZone("GMT+08:00"))
}
说明 gradle用groovy语言
1.什么是多渠道包?
渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、360市场、应用宝市场等
2为什么要提供多渠道包
我们要在安装包中添加不同的标识,应用在请求网络的时候携带渠道信用,方便后台做运营统计(这就是添加渠道信息的用处).
3.实现多渠道打包的原理:
一般来讲,这个渠道的标识会放在AndoirdManifest.xml的Application的一个Metadata中。然后就可以在java中通过API获取对应的数据了。
4.如何实现
现在android渠道多种多样,其实渠道不仅仅局限于应用市场一种推广方式也可以看做一个渠道,比如:通过人拉人的方式去推广,官网上推广,百度推广等。 所以说渠道成千上万,为了推广,有时候一次也会打成千的安装包,那你半天或者一天啥都别干了,所以个大公司高效的打包方式,借鉴一下