文章目录
- 一、BuildType 编译类型
- 二、BuildType#applicationIdSuffix 包名后缀配置
Android Plugin DSL Reference 参考文档 :
- 文档主页 : https://google.github.io/android-gradle-dsl/2.3/
- AppExtension ( build.gradle#android 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.AppExtension.html
- build.gradle#android 模块配置文档 : android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html
- ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html
- ProductFlavor#externalNativeBuild 配置 ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) : com.android.build.gradle.internal.dsl.ProductFlavor:externalNativeBuild
- ExternalNativeBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.ExternalNativeBuildOptions.html
- NdkBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild#ndkBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.NdkBuildOptions.html
- CmakeOptions ( build.gradle#android#defaultConfig#externalNativeBuild#cmake 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.CmakeOptions.html
- JackOptions ( build.gradle#android#defaultConfig#jackOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.JackOptions.html
- AnnotationProcessorOptions ( 注解处理器配置 ) ( build.gradle#android#defaultConfig#javaCompileOptions配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AnnotationProcessorOptions.html
- NdkOptions ( build.gradle#android#defaultConfig#ndk 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.NdkOptions.html
- VectorDrawablesOptions ( build.gradle#android#defaultConfig#vectorDrawables 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html
- BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html
- NDK 参考文档 : Add C and C Code to Your Project.
一、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 配置如下 :
代码语言:javascript复制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 包名后缀配置
BuildType
与 DefaultProductFlavor
都继承了 BaseConfigImpl
类 ,
因此
者之间有很多 相同的配置属性 ,
BuildType
与 DefaultProductFlavor
都有 applicationIdSuffix
包名后缀配置 ;
使用如下配置的 Gradle 构建脚本 ,
在 " android # defaultConfig # applicationIdSuffix " 配置 “.tom” 设置 ,
在 " android # buildTypes # debug # applicationIdSuffix " 配置 “.jerry” 设置 ,
初始包名为 " kim.hsl.svg " , 加上后缀最终包名为 " kim.hsl.svg.tom.jerry " ;
代码语言:javascript复制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"
}
}
}