通常发版本时我们需要打很多渠道的包,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.gradle
的android
标签中加入:
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,到这里,文章就结束了,有问题欢迎指正共同进步
参考:
友萌报表文档解读
网友评论