Android使用Gradle配置构建变体

时间:2024-03-30 20:05:25

使用Gradle配置构建变体

在一些特殊的情况下,我们可能需要一个应用提供不同的版本配置,但如果为每一个版本都新建一个新的项目管理就显得十分没有必要,这里我们就可以使用Gradle来配置不同的版本。
这里参考的是Android官网上配置构建变体内容;
这里我们先新建一个Android项目,观察项目中的build.gradle文件。

Android使用Gradle配置构建变体

主要是在android {} 代码块内部创建和配置构建类型,其中defaultConfig是一些基本配置,buildTypes就是构建类型,其中默认情况下已经有了一个release版本,就是所谓的发布版本,release{}代码块里面就是属于release版本的一些配置,其实默认情况下应该还有一个debug版本,就是平常的调试版本,只是这里没有显示出来。

一、配置构建类型buildTypes
通过配置不同的构建类型,编译时就可以进行切换从而生成不同的编译包。

Android使用Gradle配置构建变体

这里我们来看一下buildTypes的基本构建,
applicationIdSuffix: 是在当前applicationId的基础上拼接剩下的字段形成一个新的applicationId,因为同一个applicationId是无法同时运行在同一个手机上的,这里也可以直接使用applicationId属性来命名新的一个包名。
initWith:复制其他buildTypes的内容,这里的jnidebug变体就复制了debug变体的内容。一般写法是可以命名一个默认的变体,将一些公共的变量在里面赋值从而给其他变体使用。
查看buildType的一些属性可以参考官网
配置完buildTypes后我们同步项目就可以发现在Build Variants中可以切换这些buildTypes,选择想要编译的版本。

二、配置产品风味即ProductFlavor
创建产品风味与创建构建类型类似:只需将它们添加到 productFlavors {} 代码块并配置您想要的设置。产品风味支持与 defaultConfig 相同的属性,这是因为 defaultConfig 实际上属于 ProductFlavor 类。这意味着,您可以在 defaultConfig {} 代码块中提供所有风味的基本配置,每种风味均可更改任何这些默认值,例如 applicationId。

Android使用Gradle配置构建变体

这里可以看到使用和buildTypes类似,具体需要哪些属性可以查看官网地址。这里有个地方应该注意的是,编译类型其实是buildTyps和productFlavor的组合,这里有三种buildTypes和两种productFlavor所以最终有6种编译类型。

三、组合多个商品风味
关键在于使用 flavorDimensions 属性

Android使用Gradle配置构建变体

flavorDimensions:设置组合的类型
dimension:设置具体的种类
最后会将两者和buildType进行组合生成最终的编译模式

四、过滤变体
Gradle 会为您配置的产品风味与构建类型的每个可能的组合创建构建变体。不过,某些特定的构建变体在您的项目环境中并不必要,也可能没有意义。您可以在模块级 build.gradle 文件中创建一个变体过滤器,以移除某些构建变体配置。

Android使用Gradle配置构建变体

这里过滤了minApi和demo的组合

五、创建源集
默认情况下,Android Studio 会创建 main/ 源集和目录,用于存储在所有构建变体之间共享的一切资源。然而,当然也可以创建新的源集来控制 Gradle 要为特定的构建类型、产品风味(以及使用风味维度时的产品风味组合)和构建变体编译和打包的确切文件。例如,可以在 main/ 源集中定义基本的功能,使用产品风味源集针对不同的客户更改应用的品牌,或者仅针对使用调试构建类型的构建变体包含特殊的权限和日志记录功能。
使用步骤如下:
(1)打开 Project 窗格并从窗格顶端的下拉菜单中选择 Project 视图。
(2)导航至 /app/src/。
(3)右键点击 src 目录并选择 New > Folder > Java Folder。
(4)从 Target Source Set 旁边的下拉菜单中,选择编译的版本。
(5)点击 Finish。

同样可以用来创建XML 值文件:
(1)在相同的 Project 窗格中,右键点击 src 目录并选择 New > XML > Values XML File。
(2)为 XML 文件输入名称或保留默认名称。
(3)从 Target Source Set 旁边的下拉菜单中,选择 编译的版本。
(4)点击 Finish。

Android使用Gradle配置构建变体

Android使用Gradle配置构建变体

Android使用Gradle配置构建变体

如果觉得上述的配置不好记的话,AndroidStudio也提供了可视化界面用于操作这些配置
(1)右键项目选择open Module Setting
(2)选择modules一般如果没有依赖其他库的话只会有一个app的modules
(3)选择不同的tab用于操作,包括签名,产品风味,构建类型和依赖库的使用
在这里配置的效果其实和gradle中配置的效果一样,而且更加方便。

Android使用Gradle配置构建变体

Android使用Gradle配置构建变体

Android使用Gradle配置构建变体

如果想要真正的学习gradle,应该把gralde当成一门语言去学习,而不是只记其中的一些配置,上面只是最基本的一些使用,想要更深入的学习可以参考这篇文章