您当前的位置: 首页 >  ui

韩曙亮

暂无认证

  • 0浏览

    0关注

    1068博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

韩曙亮 发布时间:2022-05-02 19:40:55 ,浏览量:0

文章目录
  • 一、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 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"
        }
    }
}
关注
打赏
1663594092
查看更多评论
立即登录/注册

微信扫码登录

0.0419s