Android开发——友盟多渠道打包方法

前言

在很多项目开发完成,都是需要上架很多应用市场和一些推广渠道的。那么我们要怎么辨别用户的渠道来源呢?友盟的多渠道打包就能解决我们手动打包的难题,那样我们就不用一个个包去打了。

友盟多渠道打包

友盟就提供了多渠道打包的方式,可用于渠道统计等。 我们可以通过Android studio的build.gradle文件,简单配置后就可以实现自动打所有渠道包。下面是友盟多渠道打包的实现步骤

1.按照友盟的要求,AndroidManifest文件中需要有

<meta-data
 android:name="UMENG_CHANNEL"
 android:value="${UMENG_CHANNEL_VALUE}" />
 //UMENG_CHANNEL是友盟中代表渠道号的意思

这里的配置,value那里就是小米,360之类的渠道名称,但是我们在这里不会去写渠道名,写的是一个占位符,后面gradle编译的时候会动态的替换掉它。

2.在module(一般也就是app)的build.gradle的android{}中添加如下内容:

defaultConfig {
        // AndroidManifest.xml 里面UMENG_CHANNEL的value为 ${UMENG_CHANNEL_VALUE},添加一个默认渠道号
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]
}
productFlavors{
    xiaomi{}
    vivo{}
    huawei{}
    Tencent{}
 }
 productFlavors.all { flavor ->
    flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
 }

productFlavors是android节点的一个自节点。你需要打什么渠道的包,就在这里按友盟的要求用渠道名给UMENG_CHANNEL_VALUE赋值。

3.执行签名打包

这里写图片描述
打包完成时,就可以去app/Tencent/release中拿到我们腾讯应用宝的渠道包。

4.自定义包名

/自定义包名
    android.applicationVariants.all { variant ->
        variant.outputs.all { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith('.apk')) {
                outputFileName = defaultConfig.applicationId.subSequence(defaultConfig.applicationId
                .lastIndexOf(".") + 1, defaultConfig.applicationId.length()) + "-v" + defaultConfig
                .versionCode + "-" + output.baseName + ".apk"
            }
        }
    }

加入这段配置,可以自定义我们打包成功输入的包名,输出包名结果为xxx-v1-xiaomi-release.apk

猜你喜欢

转载自blog.csdn.net/chengxu_kuangrexintu/article/details/80425043