android 渠道方案,Android多渠道打包时获取当前渠道的方法
作为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多渠道打包时获取当前渠道的方法相关推荐
- android 获取当前渠道,Android多渠道打包时获取当前渠道的方法
作为Android app,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记 ...
- android 渠道索取,Android多渠道打包时获取当前渠道的方法
作为android app,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记 ...
- android 渠道索取,Android多渠道打包时获取当前渠道
作为Android app,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记 ...
- android一行命令实现多渠道打包并自动进行资源混淆(Walle,AndResGuard)
多渠道打包和资源混淆的作用这里我就不再阐述了.网上有很多. 本篇博客我们来介绍一下如何实现多渠道打包之前先进行资源混淆,这样一来我们打出来的包都是已经进行过资源混淆的了. 如果你还有其他的需求,也可以 ...
- Android grade语法,多渠道打包
Android grade语法,多渠道打包 文章目录 Android grade语法,多渠道打包 一.groovy语法 二.自动打包切换测试正式环境 三.gradle多渠道打包 总结 一.groovy ...
- android gradle两种多渠道打包方式
android gradle两种多渠道打包方式 gradle多渠道打包,目前已经了解到的有两种方式: 一种是利用gradle的manifestPlaceholders属性来替换渠道值 另一种是不同的渠 ...
- android多渠道打包签名配置,Gradle For Android(二) 多渠道打包与签名配置
<Gradle For Android(二) 多渠道打包与签名配置> 转载请注明来自 傻小孩b(gold.xitu.io/user/57e089-喜欢的能够关注我,不按期总结文章!您的支持 ...
- Android热更新Tinker + 多渠道打包 + 加固的流程详解
一.Tinker热修复 关于热修复的作用,不用多说了,一句话概括就是通过让用户无感的方式来修复线上应用的bug.这里介绍的是微信Tinker. 下面的接入方式都是参考自Tinker官方文档来.我这里主 ...
- Android之友盟多渠道打包与数据统计(非原创)
文章大纲 一.多渠道打包与数据统计介绍 二.友盟实现多渠道打包实战 三.友盟数据统计实战 四.项目源码下载 五.参考文章 一.多渠道打包与数据统计介绍 多渠道打包,相信很多同学都知道.在Andro ...
最新文章
- mysql 去除括号_MySQL语句批量去除括号及内容
- Redhat Linux网卡配置与绑定
- bme280 环境传感器开发板_盘一盘那些年我们常用的物联网开发板!
- oracle xe 乱码_关于Linux操作系统下终端乱码的完美解决方法
- Composer The openssl extension is required for SSL/TLS protection
- Oracle 11g安装步骤
- raspberry pi_Linux Foundation安全徽章,Raspberry Pi成功,白宫工具等
- linux内核定时器死机,浅析linux内核中timer定时器的生成和sofirq软中断调用流程
- 重构是什么、为什么要重构
- java校验参数防止攻击_程序员写接口参数校验,总是太多if else?一招让你避免体力活...
- Android SDK上手指南:用户交互
- 龙芯3A3000搭建分布式存储服务etcd
- HDU 1114 Piggy-Bank 猪仔储钱罐(完全背包)
- C++--【基础】--HEX、DEC、OCT数据转换
- 安装Ubuntu 16.04后的系统设置和软件安装(搜狗输入法、Chrome、网易云音乐等)
- word交叉引用的理解
- 7种抓包工具详细介绍
- [生存志] 第56节 李聃函谷授道德经
- php代码审计ctf隐藏了目录,CTF中PHP代码审计小tips-7
- mysql font for linux_Navicat for MySQL与MySQL-Front比较 [图文]
热门文章
- esxi 6.7 update 3 3b_污水站运维系统,3大要点让你吃透运维本质
- 作者:彭保(1979-),男,博士,深圳信息职业技术学院副教授,《大数据》深圳市大数据发展动态调研组成员。...
- 【数据库系统】数据库引入空值null的意义
- 【Java】关键词assert的使用
- 【数据结构与算法】循环队列和链队列的比较
- 使用MVC连接数据库及MVC应用的一般命名
- ASPxGridView 结合CheckBox实现多选(在后台事件代码控制)
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(一)
- 解决Windows 7 系统,Group Policy Client 服务未启动,不能登录的问题。
- 当遇到用\来分隔字符串