1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android 友盟统计动态设置渠道 Android 友盟多渠道打包

android 友盟统计动态设置渠道 Android 友盟多渠道打包

时间:2021-01-18 21:41:03

相关推荐

android 友盟统计动态设置渠道 Android 友盟多渠道打包

一、简介

为了统计不同渠道上的下载数量及用户活动情况,方便后台做运营统计。我们需要在安装包中添加不同的标识(渠道信息 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"

}

四、源码地址

五、内容推荐:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。