Android Gradle 插件BuildType 编译类型配置 ① ( BuildType 编译类型简介 | BuildType#applicationIdSuffix 包名后缀配置 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle 插件BuildType 编译类型配置 ① ( BuildType 编译类型简介 | BuildType#applicationIdSuffix 包名后缀配置 )相关的知识,希望对你有一定的参考价值。

文章目录

Android Plugin DSL Reference 参考文档 :





一、BuildType 编译类型



android Gradle 插件 , 在编译时 , 会自动创建 debug 和 release 两种 构建类型 的 APK 安装包 ;

BuildType 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html


BuildType 配置时 , 主要是调用了 buildTypes 方法 , 传入一个闭包 , 在闭包中配置相关属性 ;

buildTypes  

buildTypes 方法定义在了 com.android.build.gradle.AppExtension 中 , 也就是在 build.gradle 中的 android 配置块下使用 ;

BuildType 原型如下 : BuildType 是靠 NamedDomainObjectContainer 容器代理的 , 该容器存放 BuildType 类型的元素 ;

NamedDomainObjectContainer<BuildType> buildTypes
Build types used by this project.

参考文档 : android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html#com.android.build.gradle.AppExtension:buildTypes


在 build.gradle 中默认的 buildTypes 配置如下 :

android 
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig 
        applicationId "kim.hsl.svg"
        minSdkVersion 18
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
    

    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        
    





二、BuildType#applicationIdSuffix 包名后缀配置



BuildTypeDefaultProductFlavor 都继承了 BaseConfigImpl 类 ,

因此 2 2 2 者之间有很多 相同的配置属性 ,

BuildTypeDefaultProductFlavor 都有 applicationIdSuffix 包名后缀配置 ;


使用如下配置的 Gradle 构建脚本 ,

在 " android # defaultConfig # applicationIdSuffix " 配置 “.tom” 设置 ,

在 " android # buildTypes # debug # applicationIdSuffix " 配置 “.jerry” 设置 ,

初始包名为 " kim.hsl.svg " , 加上后缀最终包名为 " kim.hsl.svg.tom.jerry " ;

android 

    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig 
        applicationId "kim.hsl.svg"
        minSdkVersion 18
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

		applicationIdSuffix ".tom"
    

    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        
        debug 
            applicationIdSuffix ".jerry"
        
    

以上是关于Android Gradle 插件BuildType 编译类型配置 ① ( BuildType 编译类型简介 | BuildType#applicationIdSuffix 包名后缀配置 )的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ② ( buildSrc 目录中实现 Gradle 插件 | 实现 Gradle 插件代码 | 模块引入插件并编译 )

Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )

Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )