一、简介

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

}

四、源码地址

五、内容推荐:

android 友盟统计动态设置渠道,Android 友盟多渠道打包相关推荐

  1. android加固多渠道,Android 多渠道打包(使用友盟统计,结合360加固宝进行多渠道打包)...

    如有不正确的地方,望各路小哥哥.小姐姐指点,小女子在此谢过(*^__^*) 嘻嘻-- 一般app做推广的时候都需要渠道包,方便分析数据,查看渠道质量 一.先去友盟平台申请一个appkey a.   a ...

  2. Android 手把手完美教你美团wally(瓦力)多渠道打包 3种方法(针对签名V1和V2都会有很详细的介绍)

    APK的生成步骤: 大家从图中可以看出,大体分为以下 7 个大步: 1.打包资源文件,生成 R.java 文件 2.处理 aidl 文件,生成相应 java 文件 3.编译工程源代码,生成相应 cla ...

  3. 友盟统计java代码_SFAnalytics 分析友盟统计源码,反编译 SDK,还有部分没有 出来 android 259万源代码下载- www.pudn.com...

    文件名称: SFAnalytics下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 8023 KB 上传时间: 2016-06-05 下载次数: 0 提 供 者: ...

  4. android 动态设置padding,Android动态设置控件大小以及设定margin以及padding值

    http://www.aichengxu.com/Java/73893.htm Android动态设置控件大小以及设定margin以及padding值,有需要的朋友可以参考下. 一.概述 在andro ...

  5. android 如何动态设置margin,Android 动态设置margin

    android的view中有setPadding,但是没有直接的setMargin方法.如果要在代码中设置该怎么做呢? 可以通过设置view里面的LayoutParams 设置,而这个LayoutPa ...

  6. android动态设置src,Android 代码里设置ImageView的src和background

    设置ImageView的src: image.setImageDrawable(getResources().getDrawable(R.drawable.blackk)); String path= ...

  7. android 动态设置margin,android 代码中设置margin

    场景:Android怎么在java代码中设置margin Android如何在java代码中设置margin 原创帖,转发请注明出处:http://thierry-xing.iteye.com/blo ...

  8. Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu) (转载)

    覆盖onPrepareOptionsMenu(Menu menu)这个方法非常的好用,我们可以定义boolean值来进行判断,如果满足条件就可以把菜单栏动态设置成某些状态,比如是否可见,text值等等 ...

  9. android 动态设置margin,Android 动态设置padding跟margin的问题

    最近要做到动态设置padding跟margin,设置它们四个参数都是int类型.比如这里设置了10,,可是这个数又是代表什么意思呢?一直很好奇它们的单位问题,所以这就造成了,在不同手机上的适配问题.有 ...

最新文章

  1. 必须为元素类型 association 声明属性 oftype。_CSS相关的选择器和属性介绍
  2. (LeetCode 92)Reverse Linked List II
  3. SpringMVC 中xml 配置多数据源
  4. 怎么查找那台电脑中了ARP病毒
  5. mysql 操作指令详解_Mysql常用命令详解
  6. 推荐几个最近Star过的Github仓库
  7. 遵循Java EE标准规范的开源GIS服务平台之三:数据发布与访问
  8. 本实例演示往TreeSet集合中存储自定义对象
  9. sql server 碎片整理——DBCC SHOWCONTIG
  10. Java之小球碰撞反弹
  11. Android包管理机制(二)PackageInstaller安装APK
  12. STM32野火教程学习
  13. 125w短波通信距离_陕西烽火通信短波及超短波产品.doc
  14. photoshop使用技巧_你应该知道的45个聪明的Photoshop技巧
  15. 桌面应用软件开发语言调查(转)
  16. php教程--案例4(判断闰年)
  17. 废旧的电脑硬盘还可以这样利用起来,太赞了!!
  18. mac浏览器没有网络,通讯软件(QQ、微信、飞书等)正常
  19. SpaceX 星链卫星互联网业务出现大规模宕机,现已修复
  20. 阿里,腾讯,百度软件测试工程师推荐——软件测试模型之瀑布模型

热门文章

  1. 类似staruml的工具有哪些?
  2. C++之initializer_list,可变参数模板参数展开方法
  3. 关键字驱动自动化测试
  4. 已知三角形三边,如何使用Python计算三角形的面积
  5. (转载)JavaScript:双波浪号“~~“ 与 Math.floor()
  6. Linux 服务器上部署web程序
  7. bert简单介绍和实践
  8. J-Link软件和文档包的版本发行说明(3)[V6.14 ~ V6.48b版本]
  9. windows服务编程
  10. Barrier类介绍