友盟多渠道打包

步骤一:在AndroidManifest.xml中加入 meta-data

    
        
    

步骤二:在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渠道多种多样,其实渠道不仅仅局限于应用市场一种推广方式也可以看做一个渠道,比如:通过人拉人的方式去推广,官网上推广,百度推广等。 所以说渠道成千上万,为了推广,有时候一次也会打成千的安装包,那你半天或者一天啥都别干了,所以个大公司高效的打包方式,借鉴一下

你可能感兴趣的:(友盟多渠道打包)