作为Androidapp,发布多个分发平台是常规操作。然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码。

这里把简单的代码记一下。

首先,分渠道打包很简单。

在项目的build.gradle里设置

android{

...

productFlavors{

home_site{

dimension"money"

manifestPlaceholders=[UMENG_CHANNEL_VALUE:"home_site"]

}

main_store{

dimension"money"

manifestPlaceholders=[UMENG_CHANNEL_VALUE:"main_store"]

}

other_store{

dimension"money"

manifestPlaceholders=[UMENG_CHANNEL_VALUE:"other_store"]

}

}

}

其中的 dimension是维度,通过 flavorDimensions设置。

defaultConfig{

...

flavorDimensions"money"

}

设置维度主要是为了管理方便。

这个项目里总共设置了三个渠道

其中 UMENG_CHANNEL_VALUE可以随便命名,不过项目里的友盟统计会需要用到渠道名,所以这里就用UMENG的命名方法了。

接下来就是获取当前的渠道名,这样就可以根据不同的渠道包设置不同的逻辑,比如设置某一模块在某些平台发布的版本隐藏,而再另一些平台的版本上显示。

首先,需要在 AndroidManifest.xml文件定义信息变量。

android:icon="@mipmap/logo"

android:label="@string/app_name"

android:name=".App"

android:roundIcon="@mipmap/logo"

android:theme="@style/AppTheme.NoActionBar">

...

android:name="CHANNEL_NAME"

android:value="${UMENG_CHANNEL_VALUE}"/>

然后就可以在Application或Activity中获取了。

ApplicationInfoapplicationInfo=null;

try{

applicationInfo=getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);

if(applicationInfo==null){

return;

}

Stringvalue=applicationInfo.metaData.getString("CHANNEL_NAME");

CommonConfig.CHANNEL_NAME=value;

//按渠道设置差异化代码

System.out.println("CHANNEL_NAME:"+value);

switch(value){

case"home_site":

//逻辑1

break;

case"main_store":

//逻辑2

break;

case"other_store":

//逻辑3

break;

}

}catch(PackageManager.NameNotFoundExceptione){

e.printStackTrace();

}

您可能感兴趣的文章:AndroidStudio多渠道打包、自定义打包APK名称Android多渠道打包的方法步骤AndroidStudio多渠道打包套路android二次打包完成apk多渠道打包的方法Android几种多渠道打包的步骤详解AndroidStudio多渠道打包的配置方法AndroidStudio多渠道批量打包及代码混淆Android多渠道打包总结(推荐)使用AndroidStudioGradle实现友盟多渠道打包Android使用美团多渠道打包方案详解

android 渠道方案,Android多渠道打包时获取当前渠道的方法相关推荐

  1. android 获取当前渠道,Android多渠道打包时获取当前渠道的方法

    作为Android app,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记 ...

  2. android 渠道索取,Android多渠道打包时获取当前渠道的方法

    作为android app,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记 ...

  3. android 渠道索取,Android多渠道打包时获取当前渠道

    作为Android app,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记 ...

  4. android一行命令实现多渠道打包并自动进行资源混淆(Walle,AndResGuard)

    多渠道打包和资源混淆的作用这里我就不再阐述了.网上有很多. 本篇博客我们来介绍一下如何实现多渠道打包之前先进行资源混淆,这样一来我们打出来的包都是已经进行过资源混淆的了. 如果你还有其他的需求,也可以 ...

  5. Android grade语法,多渠道打包

    Android grade语法,多渠道打包 文章目录 Android grade语法,多渠道打包 一.groovy语法 二.自动打包切换测试正式环境 三.gradle多渠道打包 总结 一.groovy ...

  6. android gradle两种多渠道打包方式

    android gradle两种多渠道打包方式 gradle多渠道打包,目前已经了解到的有两种方式: 一种是利用gradle的manifestPlaceholders属性来替换渠道值 另一种是不同的渠 ...

  7. android多渠道打包签名配置,Gradle For Android(二) 多渠道打包与签名配置

    <Gradle For Android(二) 多渠道打包与签名配置> 转载请注明来自 傻小孩b(gold.xitu.io/user/57e089-喜欢的能够关注我,不按期总结文章!您的支持 ...

  8. Android热更新Tinker + 多渠道打包 + 加固的流程详解

    一.Tinker热修复 关于热修复的作用,不用多说了,一句话概括就是通过让用户无感的方式来修复线上应用的bug.这里介绍的是微信Tinker. 下面的接入方式都是参考自Tinker官方文档来.我这里主 ...

  9. Android之友盟多渠道打包与数据统计(非原创)

    文章大纲 一.多渠道打包与数据统计介绍 二.友盟实现多渠道打包实战 三.友盟数据统计实战 四.项目源码下载 五.参考文章 一.多渠道打包与数据统计介绍   多渠道打包,相信很多同学都知道.在Andro ...

最新文章

  1. mysql 去除括号_MySQL语句批量去除括号及内容
  2. Redhat Linux网卡配置与绑定
  3. bme280 环境传感器开发板_盘一盘那些年我们常用的物联网开发板!
  4. oracle xe 乱码_关于Linux操作系统下终端乱码的完美解决方法
  5. Composer The openssl extension is required for SSL/TLS protection
  6. Oracle 11g安装步骤
  7. raspberry pi_Linux Foundation安全徽章,Raspberry Pi成功,白宫工具等
  8. linux内核定时器死机,浅析linux内核中timer定时器的生成和sofirq软中断调用流程
  9. 重构是什么、为什么要重构
  10. java校验参数防止攻击_程序员写接口参数校验,总是太多if else?一招让你避免体力活...
  11. Android SDK上手指南:用户交互
  12. 龙芯3A3000搭建分布式存储服务etcd
  13. HDU 1114 Piggy-Bank 猪仔储钱罐(完全背包)
  14. C++--【基础】--HEX、DEC、OCT数据转换
  15. 安装Ubuntu 16.04后的系统设置和软件安装(搜狗输入法、Chrome、网易云音乐等)
  16. word交叉引用的理解
  17. 7种抓包工具详细介绍
  18. [生存志] 第56节 李聃函谷授道德经
  19. php代码审计ctf隐藏了目录,CTF中PHP代码审计小tips-7
  20. mysql font for linux_Navicat for MySQL与MySQL-Front比较 [图文]

热门文章

  1. esxi 6.7 update 3 3b_污水站运维系统,3大要点让你吃透运维本质
  2. 作者:彭保(1979-),男,博士,深圳信息职业技术学院副教授,《大数据》深圳市大数据发展动态调研组成员。...
  3. 【数据库系统】数据库引入空值null的意义
  4. 【Java】关键词assert的使用
  5. 【数据结构与算法】循环队列和链队列的比较
  6. 使用MVC连接数据库及MVC应用的一般命名
  7. ASPxGridView 结合CheckBox实现多选(在后台事件代码控制)
  8. (NO.00003)iOS游戏简单的机器人投射游戏成形记(一)
  9. 解决Windows 7 系统,Group Policy Client 服务未启动,不能登录的问题。
  10. 当遇到用\来分隔字符串