首页 > 学院 > 开发设计 > 正文

借助gradle的ProductFlavor实现多App间代码库复用

2019-11-09 16:57:43
字体:
来源:转载
供稿:网友

背景是什么?

image

lib A 和 lib A’ 拥有大部分相同的代码,小部分的产品特性差异,但是lib A是用在App 1 中,而lib A’是用在App 2上,如果分开维护两份代码拷贝,工作量将极为巨大。

如何代码复用

借助gradle提供的PRoductFlavor来实现代码和资源的合并。基础知识可以参照之前写的一篇文档Gradle For Android Product flavors章节。

有Product flavors的知识基础,我们可以将source set拆分成如下: image

main: 主要是各个产品特性所共有的资源和代码,当然和productFlavor重复了也不可怕,会被productFlavor的所覆盖。productFlavorA: 包含属于其中一个App的具体产品特性资源及代码。其他的如 productFlavorB,productFlavorC…都是类似的。

gradle脚本配置

android { productFlavors { productFlavorA { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 18 targetSdkVersion 23 versionCode 500 versionName "5.0.0" } } productFlavorB { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0" } } }....}

需要publishNonDefault,defaultPublishConfig配置?

参考之前写的wiki gradle管理发布

如果在不同的productFlavor中需要依赖不同的SDK呢?

productFlavor + compile 再跟上所依赖的库 参考之前写的wikiGradle For Android 的“依赖的概念”


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表