【Gradle】借助gradle的ProductFlavor实现多App间代码库复用
背景是什么?
lib A 和 lib A’ 拥有大部分相同的代码,小部分的产品特性差异,但是lib A是用在App 1 中,而lib A’是用在App 2上,如果分开维护两份代码拷贝,工作量将极为巨大。
如何代码复用
借助gradle提供的productFlavor来实现代码和资源的合并。基础知识可以参照之前写的一篇文档Gradle For Android Product flavors章节。
有Product flavors的知识基础,我们可以将source set拆分成如下:
- main: 主要是各个产品特性所共有的资源和代码,当然和productFlavor重复了也不可怕,会被productFlavor的所覆盖。
- productFlavorA: 包含属于其中一个App的具体产品特性资源及代码。其他的如 productFlavorB,productFlavorC…都是类似的。
gradle脚本配置
android {productFlavors {productFlavorA {compileSdkVersion 23buildToolsVersion "23.0.2"defaultConfig {minSdkVersion 18targetSdkVersion 23versionCode 500versionName "5.0.0"}}productFlavorB {compileSdkVersion 23buildToolsVersion "23.0.2"defaultConfig {minSdkVersion 19targetSdkVersion 23versionCode 1versionName "1.0"}}}
....
}
需要publishNonDefault,defaultPublishConfig配置?
参考之前写的wiki gradle管理发布
如果在不同的productFlavor中需要依赖不同的SDK呢?
productFlavor + compile 再跟上所依赖的库
参考之前写的wikiGradle For Android 的“依赖的概念”
【Gradle】借助gradle的ProductFlavor实现多App间代码库复用相关推荐
- Gradle sync failed: No variants found for ':app'. Check build files to ensure at least one varian...
Gradle sync failed: No variants found for ':app'. Check build files to ensure at least one variant e ...
- 【Android 修炼手册】Gradle 篇 -- Gradle 的基本使用
预备知识 基本的 android 开发知识 了解 Android Studio 基本使用 看完本文可以达到什么程度 掌握 gradle 的基本使用 了解 gradle 及 android gradle ...
- [Gradle系列]Gradle打包apk多版本,多渠道,多环境,多功能,多模块随心所欲
Tamic: http://blog.csdn.net/sk719887916/article/details/53411771 开始 上篇Gradle发布Module(Maven)到jcenter, ...
- 【AOP 面向切面编程】Android Studio 中配置 AspectJ ( 下载并配置AS中 jar 包 | 配置 Gradle 和 Gradle 插件版本 | 配置 Gradle 构建脚本 )
文章目录 一.AspectJ 下载 二.拷贝 aspectjrt.jar 到 Android Studio 三.配置 Gradle 和 Gradle 插件版本 四.配置 Gradle 构建脚本 一.A ...
- 【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )
文章目录 一.Gradle 及 Gradle 插件版本 二.支持 AndroidX 配置 三.设置 Android 编译目标版本 四.相关依赖库修改 Flutter 插件 " image_p ...
- 命令构建gradle项目_【Android 修炼手册】Gradle 篇 -- Gradle 源码分析
预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin 使用及开发 了解 android gradle plugin 的使用 看完本文可以达到什么程度 了解 grad ...
- android gradle + junit +jacoco +sonarscaner(sonarrunner) 获取单元测试覆盖率以及代码质量
android gradle job config xml 如下: This XML file does not appear to have any style information assoc ...
- 【Android 修炼手册】Gradle 篇 -- Gradle 源码分析
预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin 使用及开发 了解 android gradle plugin 的使用 看完本文可以达到什么程度 了解 grad ...
- IDEA如何配置 Gradle 及 Gradle 安装过程(详细版)
IDEA如何配置 Gradle(详细版) 一.安装 Gradle 1.下载 Gradle 安装包 官网下载链接:https://gradle.org/releases/ 2.下载后解压 3.文件夹如图 ...
最新文章
- 管理员信息管理之更新管理员数据
- SNAT和DNAT的区别
- 计算机应用基础 专2018秋,广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试.pdf...
- elasticsearch mapping之store
- input type=text 无法使用.html(),input type=”text” (Elements) – HTML 中文开发手册
- 堕落小白的前台sql注入cms代码审计
- python曲线拟合预测_用python做曲线拟合
- odoo10参考系列--ORM API 二(新旧API兼容性、模型参考和方法修饰符)
- 【报告分享】2022年元宇宙全球年度(202页干货):蓄积的力量-北京大学.pdf(附下载链接)...
- HDOJ---3790 最短路径问题[Dijkstra算法||SPFA]
- SQL Server 2008安装和配置图解图(转)
- k8s学习: 部署动态 pvc(nfs-subdir-external-provisioner)
- 大象装企营销:装饰公司如何通过差异化营销传播口碑
- 密码编码学与网络安全讲的是什么
- 最新论文笔记(+9):Achieving Secure Search over Encrypted Data for e-Commerce A Blockchain Approach/ToIT2020
- 超详细讲解OSPF中如何选举DR和BDR
- volatile内存屏障
- 量化、交易、策略、算法精选论文汇总,建议收藏
- 马斯克76岁父亲与继女生子,华强北又出一个芯片IPO,原蚂蚁副总投身AI制药,今日更多大新闻在此...
- c语言小游戏10例,C语言的应用 小游戏为例.doc