android 友盟统计动态设置渠道,Android 友盟多渠道打包
一、简介为了统计不同渠道上的下载数量及用户活动情况,方便后台做运营统计。我们需要在安装包中添加不同的标识(渠道信息 Channel)。多渠道的实现方式多种多样,此篇只实现友盟多渠道打包的方法。友盟多渠道打包方法试用于少量的渠道,如果要打包十几个或上百个的渠道就要花费大量的时间,影响效率。二、基本配置(1)基于项目集成友盟统计的基础上,我们只需要在AndroidManifest.xml 文件中修改渠
一、简介
为了统计不同渠道上的下载数量及用户活动情况,方便后台做运营统计。我们需要在安装包中添加不同的标识(渠道信息 Channel)。多渠道的实现方式多种多样,此篇只实现友盟多渠道打包的方法。友盟多渠道打包方法试用于少量的渠道,如果要打包十几个或上百个的渠道就要花费大量的时间,影响效率。
二、基本配置
(1)基于项目集成友盟统计的基础上,我们只需要在AndroidManifest.xml 文件中修改渠道信息:
(2)在module的build.gradle的android{}中添加如下内容:
android {
...
...
// 多渠道打包
productFlavors {
wandoujia {
}
xiaomi {
}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
// 修改命名规则3.0之前可以使用
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = outputFile.name.replace(".apk","-${defaultConfig.versionName}.apk")
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
三、AS升到3.0后遇到的错
(1)AS升到3.0后 output.outputFile变成了只读模式,不能再往里面写东西了。这时我们需要修改命名规则
image.png
//修改后的命名规则
applicationVariants.all { variant ->
variant.outputs.all {
def formattedDate = new Date().format('yyyy_MM_dd')
outputFileName = rootProject.getName()+"-"+variant.flavorName+"-"+buildType.name+"-"+formattedDate+"-v"+defaultConfig.versionName+"-"+ defaultConfig.versionCode+ ".apk";
}
}
(2)Android Plugin3.0的依赖机制:在使用library时会自动匹配variant(debug, release),就是说app的debug会自动匹配library的debug。同样如果使用flavor的时候,比如app的redDebug同样会自动匹配library的readDebug。虽然有这样的优势,但是在使用flavor时,必须定义flavor dimension,否则会提示错误(不知道是哪位大神说的感觉蛮有道理的 借用一下,反正我是菜鸟,不是很懂。)。所以需要在以下加上这句话
image.png
//在下面添加 flavorDimensions "versionCode" 即可
defaultConfig {
applicationId "*********"
minSdkVersion 18
targetSdkVersion 28
versionCode 1
versionName "1.0"
flavorDimensions "versionCode"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
四、源码地址
五、内容推荐:
更多推荐
所有评论(0)