步驟一:在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渠道多種多樣,其實渠道不僅僅局限于應用市場一種推廣方式也可以看做一個渠道,比如:通過人拉人的方式去推廣,官網上推廣,百度推廣等。 所以說渠道成千上萬,為了推廣,有時候一次也會打成千的安裝包,那你半天或者一天啥都別干了,所以個大公司高效的打包方式,借鑒一下