背景是什么?

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间代码库复用相关推荐

  1. 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 ...

  2. 【Android 修炼手册】Gradle 篇 -- Gradle 的基本使用

    预备知识 基本的 android 开发知识 了解 Android Studio 基本使用 看完本文可以达到什么程度 掌握 gradle 的基本使用 了解 gradle 及 android gradle ...

  3. [Gradle系列]Gradle打包apk多版本,多渠道,多环境,多功能,多模块随心所欲

    Tamic: http://blog.csdn.net/sk719887916/article/details/53411771 开始 上篇Gradle发布Module(Maven)到jcenter, ...

  4. 【AOP 面向切面编程】Android Studio 中配置 AspectJ ( 下载并配置AS中 jar 包 | 配置 Gradle 和 Gradle 插件版本 | 配置 Gradle 构建脚本 )

    文章目录 一.AspectJ 下载 二.拷贝 aspectjrt.jar 到 Android Studio 三.配置 Gradle 和 Gradle 插件版本 四.配置 Gradle 构建脚本 一.A ...

  5. 【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )

    文章目录 一.Gradle 及 Gradle 插件版本 二.支持 AndroidX 配置 三.设置 Android 编译目标版本 四.相关依赖库修改 Flutter 插件 " image_p ...

  6. 命令构建gradle项目_【Android 修炼手册】Gradle 篇 -- Gradle 源码分析

    预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin 使用及开发 了解 android gradle plugin 的使用 看完本文可以达到什么程度 了解 grad ...

  7. android gradle + junit +jacoco +sonarscaner(sonarrunner) 获取单元测试覆盖率以及代码质量

    android gradle  job config xml 如下: This XML file does not appear to have any style information assoc ...

  8. 【Android 修炼手册】Gradle 篇 -- Gradle 源码分析

    预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin 使用及开发 了解 android gradle plugin 的使用 看完本文可以达到什么程度 了解 grad ...

  9. IDEA如何配置 Gradle 及 Gradle 安装过程(详细版)

    IDEA如何配置 Gradle(详细版) 一.安装 Gradle 1.下载 Gradle 安装包 官网下载链接:https://gradle.org/releases/ 2.下载后解压 3.文件夹如图 ...

最新文章

  1. 管理员信息管理之更新管理员数据
  2. SNAT和DNAT的区别
  3. 计算机应用基础 专2018秋,广东开放大学远程教育专科2018年秋计算机应用基础Word模块测试.pdf...
  4. elasticsearch mapping之store
  5. input type=text 无法使用.html(),input type=”text” (Elements) – HTML 中文开发手册
  6. 堕落小白的前台sql注入cms代码审计
  7. python曲线拟合预测_用python做曲线拟合
  8. odoo10参考系列--ORM API 二(新旧API兼容性、模型参考和方法修饰符)
  9. 【报告分享】2022年元宇宙全球年度(202页干货):蓄积的力量-北京大学.pdf(附下载链接)...
  10. HDOJ---3790 最短路径问题[Dijkstra算法||SPFA]
  11. SQL Server 2008安装和配置图解图(转)
  12. k8s学习: 部署动态 pvc(nfs-subdir-external-provisioner)
  13. 大象装企营销:装饰公司如何通过差异化营销传播口碑
  14. 密码编码学与网络安全讲的是什么
  15. 最新论文笔记(+9):Achieving Secure Search over Encrypted Data for e-Commerce A Blockchain Approach/ToIT2020
  16. 超详细讲解OSPF中如何选举DR和BDR
  17. volatile内存屏障
  18. 量化、交易、策略、算法精选论文汇总,建议收藏
  19. 马斯克76岁父亲与继女生子,华强北又出一个芯片IPO,原蚂蚁副总投身AI制药,今日更多大新闻在此...
  20. c语言小游戏10例,C语言的应用 小游戏为例.doc

热门文章

  1. 书籍:Python机器学习蓝图第2版 Python Machine Learning Blueprints 2nd - 2019.pdf
  2. 第三次毕业设计任务书
  3. Thrift的java和php数据交互
  4. 蓝桥杯 基础练习 十进制转十六进制(水题,进制转换)
  5. ip classless作用
  6. Spring3基于注释驱动的AOP
  7. webpack配置alias别名设置
  8. 建立一个Web项目及一些错误解决办法
  9. Python进阶-----类、对象的相关知识
  10. 【python】命令行解析工具getopt用法