Android Studio 多渠道打包

转载请标明出处:http://blog.csdn.net/donkor_/article/details/58587893
前言
初登友盟官网,“【友盟+】全球领先的第三方全域大数据服务提供商。”这句话就醒目地显示在眼前。可以明确的知道,友盟在移动端app开发,确实具备了很大的影响力。而国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,如果一个一个去打包,那实在是麻烦。但如果这时候使用友盟,那简直是再简单不过了。通过本文,学习在Android Studio中以友盟为例进行多渠道打包。

▲ 基本使用
首先,在AndroidManifest.xml里配置PlaceHolder

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="${UMENG_CHANNEL_VALUE}" />

value填的主要是360,应用宝之类的渠道名称,最好不要写中文!在这里先不用着急写渠道名,写一个占位符,后面gradle编译的时候会动态的替换掉它。

在app的build文件的defaultConfig里加上PlaceHolder定义

android {
    ...

    defaultConfig {
        ...
        manifestPlaceholders = [ UMENG_CHANNEL_VALUE:"default_channel" ]
    }   
}

设置productFlavors

    productFlavors {
        default_channel{}
        wandoujia{}
        _360{}
        yingyongbao{}
        xiaomi{}
        baidu{}
        huawei{}
        jifeng{}
    }

    productFlavors.all { flavor ->
        flavor.manifestPlaceholders = [ UMENG_CHANNEL_VALUE:name ]
    }

设置自动生成apk命名

android.applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def outputFile = output.outputFile
        if (outputFile != null && outputFile.name.endsWith('.apk')) {
            File outputDirectory = new File(outputFile.parent);
            def fileName
            if (variant.buildType.name == "release") {
//                    fileName = "app_v${defaultConfig.versionName}_${packageTime()}_${variant.productFlavors[0].name}.apk"
                fileName = "donkor_${variant.productFlavors[0].name}.apk"
            } else {
//                    fileName = "app_v${defaultConfig.versionName}_${packageTime()}_beta.apk"
                fileName = "donkor_${variant.productFlavors[0].name}_beta.apk"
            }
            output.outputFile = new File(outputDirectory, fileName)
        }
    }
}

在android studio底栏中有个命令行工具Terminal,直接输入命令“gradlew assembleRelease”导Release包。在app–>build–>outputs–>apk路径中就可以看到打包成功后的APK。成功效果图如下

其他的打包命令还包括:

  • gradlew assemble:打所有渠道包
  • gradlew assembleDebug:只打Debug包
  • gradlew assemble_360:只打360的渠道包
  • gradlew assemble_360Release:只打360的release渠道包

注意,此时这里的APK还是未签名的。我们需要配置gradle让APP自动签名,如果还有不会配置的话,可以参考我的另外一篇文章Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值 。然后再次在Terminal执行gradlew assembleRelease命令,此时生成的就是有签名的渠道包

配置文件与jks下载地址:http://download.csdn.net/detail/donkor_/9766524


About me
Email :donkor@yeah.net
Android开发交流QQ群 : 537891203
Android开发交流群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值