安卓多渠道打包(结合友盟)

通常发版本时我们需要打很多渠道的包,360,应用宝,豌豆荚等等,安卓默认只打一个debug的包。那么如何进行多渠道打包呢?本文借助友盟结合gradle来讲解如何进行多渠道打包。包打好后,各个包上对应的渠道,然后我们可以就可以在友盟上看到每个渠道的一些统计数据了,如日活,每日下载量,每日新增用户等等。做法其实也很简单,看下文。

添加依赖
打开build.gradle,在`dependencies·标签中加入

compile 'com.umeng.analytics:analytics:latest.integration'

在manifest文件中加入:

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

假设我们要打应用宝,360,豌豆荚,小米,百度这5个渠道的包。
接下来,在build.gradleandroid标签中加入:

android {
    productFlavors {
        yingyongbao {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"]
        }
        _360 {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]
        }
        wandoujia {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
        }
        xiaomi {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
        }
        baidu {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
        }
    }
}

或者用下面代码替代,简洁一些:

productFlavors {
    yingyongbao{}
    xiaomi {}
    _360 {}
    baidu {}
    wandoujia {}
}

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

UMENG_CHANNEL_VALUE就是manifest文件中meta-data标签的android:value="${UMENG_CHANNEL_VALUE}"值。

此时,配置完成,点击build.gradle的sync,同步完成后,打开菜单栏,View->Tool Windows->Build Variants,你就可以看到配置的各个渠道啦。


点击各个渠道的debug或release,就可以生成对应的包啦。

这时候你肯定会问,这么多渠道,一个一个打,得打到什么时候啊?能一键生成所有的包多好!这时候我们就要用到gradle了。gradle有一个命令可以一键打包。不过先别着急执行这个命令行,先往下看。

//编译并打所有的release包(通常上正式渠道只需要release包,所以我们只打release包就可以了)
gradlew assembleRelease
//编译并打所有的debug包
gradlew assembleDebug

如果是第一次运行这个命令可能会有些坑。
既然用到gradle命令,gradle肯定得下载好。默认会从官网下载gradle,但这样太慢了,而且一般会出错,我们可以先下载好gradle,然后解压到相应路径下。具体步骤如下:

1. 下载好gradle2.10,然后解压到下面的路径下
// C:\Users\lxy这是我的路径,lxy是我的用户名
C:\Users\lxy\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst\gradle-2.10

解压后如下图:


2. 配置gradle环境变量

打开环境变量,配置GRADLE_HOME,这里默认你会配置环境变量。路径就是刚才解压的路径:

C:\Users\lxy\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst\gradle-2.10
3. 依次执行下列命令
//查看gradle版本号
./gradlew -v

这个过程比较慢,耐心等待,成功后如下图:


因为我之前路径下有gradle-2.10这个文件,所以它先删除原有的,可以不用管,最后打印出gradle版本号就对了。

//把之前打包所产生的所有文件全部清除(注意:第一次下载时,它的作用是下载gradle的一些依赖包,所以第一次打包的时候,必须执行这条命令)
./gradlew clean
// 编译
./gradlew build
// 打包
./gradlew assembleRelease

因为包比较多,所以这个过程比较慢,耐心等待。完成后,我们就可以在app->build->outputs->apk目录下看到所有的包啦。致此,多渠道打包就完成啦。
总结一下,如果是第一次打包,并且gradle配置 ok,需要依次执行:

//下载gradle的一些依赖包
//如果之前不是第一次打,跳过该条命令,直接执行下面两条
./gradlew clean
// 编译
./gradlew build
// 打release包
./gradlew assembleRelease

ok,到这里,文章就结束了,有问题欢迎指正共同进步

参考:
友萌报表文档解读

推荐阅读更多精彩内容