android渠道编号,Android 不同渠道差异代码
前言
在开发过程中,会遇到这种业务。
在某一个渠道,需要引入一些三方sdk,需要写一些差异性代码,跟原来的业务有重叠。如果所有的判断逻辑都写在一起,会出现很多if(flavor==xxx),并且三方sdk的包也会都在app里产生增量,直接导致apk过大。
解决方案
话不多说,直接上解决方案:
1、src文件下面分渠道来写代码
2、build.gradle下使用 flavorImplemention 来引入渠道对应的三方库文件
详细案例请往下看
案例:在当贝渠道添加当贝sdk广告库
***’dangbeilibs‘***可以单独用于存放dangbeiSDK的库文件
!下面是重要图解
1、一般初始化sdk都需要在Application里面初始化。
DangbeiApp继承App
2、然后加载广告在DangbeiMainActivity里面加载。
DangbeiMainActivity继承MainActivity
3、清单文件也需要配置一下。
注意:红色框里面的代码。如果入口activity的category是launcher,那么多个activity就会出现多个桌面应用图标,这里这样写可以只有一个图标
具体的缘由可搜索:“Android清单文件替换优先级相关”
android:name="com.xxxx.DangbeiMainActivity"
android:screenOrientation="landscape"
android:theme="@style/AppTheme.Splash">
//这个activity和主工程里面配置一样,只是intent-filter会被进行替换,以致于整个清单文件 launcher的只有一个
android:name="com.xxxx.ui.main.MainActivity"
android:screenOrientation="landscape"
android:theme="@style/AppTheme.Splash"
tools:node="replace">
复制代码4、在继承的时候,原来MainActivity的一些属性和方法会被继承者使用的,应该改写成protected修饰符
5、如果你的工程使用了dagger,那么新增的Actiivty需要使用注解的,也需要新建module进行配置
6、如果你的宿主工程里面的方法使用到了class来进行判断,如果要区分是DangbeiMainActivity还是MainActivity,就需要进行特殊的处理。这里分享出一种方法。
比如: 如果你宿主MainActivity是要跳转到LivePlayActivity,你是这样写的。但是,DangbeiMainActivity里面如果是需要跳转到DangbeiLivePlayActivity(DangbeiLivePlayActivity继承于LivePlayActivity),而你宿主工程里面有没有DangbeiLivePlayActivity这个类,怎么办?
办法就是宿主工程里创建一个Util来保存class,在danbeiApp初始化的时候,设置一下。
public class ClassUtil {
private static volatile ClassUtil mInstance;
private ClassUtil() {
}
public static ClassUtil getInstance() {
if (mInstance == null) {
synchronized (ClassUtil.class) {
if (mInstance == null) {
mInstance = new ClassUtil();
}
}
}
return mInstance;
}
private Class livePlayClass = LivePlayActivity.class;
public void setLivePlayClass(Class livePlayClass) {
this.livePlayClass = livePlayClass;
}
public Class getLivePlayClass() {
return livePlayClass;
}
}
复制代码
这样在跳转的时候就可以这样
就实现了跳转到DangbeiLivePlayerActivity而不是宿主工程的原LivePlayActivity
结语
欢迎留言,欢迎交流
android渠道编号,Android 不同渠道差异代码相关推荐
- android 渠道方案,Android 不同渠道差异代码
前言 在开发过程中,会遇到这种业务. 在某一个渠道,需要引入一些三方sdk,需要写一些差异性代码,跟原来的业务有重叠.如果所有的判断逻辑都写在一起,会出现很多if(flavor==xxx),并且三方s ...
- Android 不同渠道差异代码
前言 在开发过程中,会遇到这种业务. 在某一个渠道,需要引入一些三方sdk,需要写一些差异性代码,跟原来的业务有重叠.如果所有的判断逻辑都写在一起,会出现很多if(flavor==xxx),并且三方s ...
- php动态生成apk渠道包,Android自动生成渠道包
承接上文Android应用的自动化构建,我们已经通过ANT自动构建了应用,那接下来的问题是,如何自动构建渠道包,这里强烈推荐一篇文章美团Android自动化之旅-生成渠道包. 美团提到的第三种方式,截 ...
- android o preview 3,Android O Preview 之 通知渠道(Notification Channels)
介绍 Android O 引入了 通知渠道(Notification Channels),以提供统一的系统来帮助用户管理通知,如果是针对 android O 为目标平台时,必须实现一个或者多个通知渠道 ...
- Android-Ant自动编译打包android项目 -- 2 ----签名与渠道包
上篇介绍了怎么使用ant自动编译打包现有的android项目,这篇将继续介绍如果如何在ant打包应用的时候加入签名信息以及自动打包渠道包. 1. 加入签名信息: 在项目的根目录下建一个ant.prop ...
- Android自动化之旅—生成渠道包
概述 每当发新版本时,美团团购Android客户端会被分发到各个应用市场,比如豌豆荚,360手机助手等.为了统计这些市场的效果(活跃数,下单数等),需要有一种方法来唯一标识它们. 团购客户端目前通过渠 ...
- 美团Android自动化之旅—生成渠道包
每当发新版本时,美团团购Android客户端会被分发到各个应用市场,比如豌豆荚,360手机助手等.为了统计这些市场的效果(活跃数,下单数等),需要有一种方法来唯一标识它们. 团购客户端目前通过渠道号( ...
- 美团Android自动化之旅—适配渠道包
概述 前一篇文章(美团Android自动化之旅-生成渠道包)介绍了Android中几种生成渠道包的方式,基本解决了打包慢的问题. 但是,随着渠道越来越多,不同渠道对应用的要求也不尽相同.例如,有的渠道 ...
- android 渠道方案,Android多渠道打包时获取当前渠道的方法
作为Androidapp,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记一 ...
- android渠道校验,Android渠道版本自动化校验
国内市场上有许许多多的应用市场,常见的有:百度.360.腾讯应用宝.豌豆荚等.其他手机厂家如小米.华为.魅族.三星等都有自己的应用市场,总共有上百家! 1. 问题 发版前,Android工程师打包了上 ...
最新文章
- 重写 equals 方法就一定要重写 hashCode 方法?其实有个前提
- 计组第六章——计算机的运算方法重点总结
- ASP.NET 4新增功能(三) 对Web标准的支持和辅助功能的增强
- .NET Core 和 DevOps
- 依赖dll_DLL攻击漫谈
- python-next
- 人工智能基础(高中版)教材补充和资源分享之二 机器人学矩阵
- 日本互联网 20 年沧桑路
- python断言assert
- excel冻结窗口_excel表格怎么来冻结窗口同时冻结行和列
- 多图丨入门必看:万字长文带你轻松了解CRM
- SQL每日一题(20210901)如果员工的【入职日期】是当月15号后,则该员工的【社保缴纳月份】为【入职日期】的次月
- “多源异构”和“异构同源”定义区分详解
- python循环语句打印输出1-10_python_不用循环打印1-1000
- Mysql 常用 时间函数
- android 颜色 数组,在Android中声明维数,颜色,资源ID或其他非标准数据类型的数组?...
- caffe layer层详解
- 代理ARP原理与实践(“善意的欺骗”)
- 智融SW6206、SW3516、SW3522、SW2303等快充市场方案应用
- cisco的访问控制列表ACL的基本使用(大白话版)(基于cisco packet tracer)
热门文章
- 设置 Scite编辑器的默认编辑为 UTF-8 ,及其他一些参数配置
- 7-10 哈利·波特的考试
- MysQL索引与事务
- 50以内的勾股数c语言,50以内勾股数有哪些
- halcon获取图像中心点_Halcon学习之六:获取Image图像中Region区域的特征参数
- Unity3D手游开发实践《腾讯桌球》客户端开发经验总结
- 方舟生存进化手机版服务器无限琥珀,方舟生存进化无限琥珀
- 无法远程连接到计算机 凭证,远程连接凭据不工作如何处理_远程桌面连接提示凭据无法工作的解决教程-win7之家...
- 技术团队培养_如何在团队中培养伟大的文化
- 将阿里云盘挂载为本地磁盘使用