Android组件化Gradle基础配置

1、编译顺序:settings.gradle--->根目录:build.gradle-->module:build.gradle

2、统一SDK版本管理

  • 项目根目录:新建xxx.gradle 文件 
  • gradle 语法(Groovy 糖果语法 弱类型语言)

           使用ext自定义变量 

          ext{

               variable=xx

               //定义map

               android=[

                    variable1:xx,

                    variable2:xx

               ] 

          }

        //遍历map

        map.each{k,v->v}

  • 引入文件:apply from:"xxx.gradle"
  • 在module的build.gradle使用变量

              方法1:定义变量 使用关键字def

                       def member=this.rootProject.ext.variable

             方法2:直接使用变量 使用${}

                        ${this.rootProject.ext.variable}

  •   示例:

自定义app_config.gradle

//gradle统一参数配置
ext{
    android_config=[
            compileSdkVersion: 28,
            minSdkVersion: 21,
            targetSdkVersion: 28,
            versionCode: 1,
            versionName: "1.0",
            testInstrumentationRunner: "androidx.test.runner.AndroidJUnitRunner",
            consumerProguardFiles: 'consumer-rules.pro'
    ]
}

根目录下的build.gradle

apply from: "app_config.gradle"

module的build.gradle 

android {
    compileSdkVersion android_config.compileSdkVersion


    defaultConfig {
        minSdkVersion android_config.minSdkVersion
        targetSdkVersion android_config.targetSdkVersion
        versionCode android_config.versionCode
        versionName android_config.versionName

        testInstrumentationRunner android_config.testInstrumentationRunner
        consumerProguardFiles android_config.consumerProguardFiles
    }

3、BuildConfig常量配置(以配置baseurl为例)

  • 在自定义build.gradle文件中添加不同环境下的url变量
  • 在module的build.gradle文件中,使用buildConfigField命令创建变量
  • Rebuild Project,自动在BuildConfig.java生成新变量
  • 示例:

         自定义app_config.gradle

 baseUrl=[
            debug:"http:/192.168.1.221/",
            release:"https://xxx/xxx/"
    ]

        module的build.gradle 

 buildTypes {
        debug{
            buildConfigField("String","BASE_URL","\"${baseUrl.debug}\"")
        }
        release {
            buildConfigField("String","BASE_URL","\"${baseUrl.realease}\"")
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

 

你可能感兴趣的:(Gradle,Android组件化)