android sdk版本配置文件,1. 统一SDK版本管理配置

为了提高项目开发效率,在实际项目开发过程中往往会引入一些开源框架,还有项目中使用的各种Module,当引入Module过多时最好提供一种统一的方式去管理版本号,如:compileSdkVersion、buildToolsVersion、minSdkVersion等。

我在网上找了很多资料,网上提供了好几种方案,写法也有好几种,不过最终原理其实都是差不多的,主要原理分为以下几步:

一. 创建配置文件config.gradle

配置信息就放在这个文件里, 文件名字随便取,后缀是.gradle即可。

情况一:文件放在项目的 app目录下,如下图:appConfig.png

5d1a84bc5210

appConfig.png

情况二:文件放在项目的 项目根目录下,如下图:config.png

5d1a84bc5210

config.png

二. 找到配置文件config.gradle

情况一:文件放在项目的 app目录下

一般来说,放在 app目录下config.gradle配置信息,只能在主项目中引用,引用方式:

在app目录下的build.gradle文件开头,加上apply from: 'config.gradle'。如下图

5d1a84bc5210

a.png

情况二:文件放在项目的 app目录下

这种情况,config.gradle配置信息可以全局使用,在主工程和Module下都可以使用,统一SDK版本配置需要使用这种方式,引用方式:

在项目根目录下的build.gradle文件加上apply from: 'config.gradle'。如下图

5d1a84bc5210

b.png

三. 引用配置信息里面的内容

1. config.gradle应该怎么写

网上有好几种写法,下面是我个人认为比较方便的方案

ext {

//sdk版本管理

CompileSdkVersion = 26 // 用于编译的SDK版本

BuildToolsVersion = "28.0.3" // 用于Gradle编译项目的工具版本

ApplicationId = "com.wanji.shop" //包名

MinSdkVersion = 19 // 最低支持Android版本

TargetSdkVersion = 26 // 目标版本

VersionCode = 1 //版本号

VersionName = "1.0"

MinifyEnabled = false //是否混淆

// App dependencies

appcompatVersion = "26.1.0"

constraintVersion = "1.1.3"

junitVersion = "4.12"

runnerVersion = "1.0.2"

espressoVersion = "3.0.2"

supportV4Version = "26.1.0"

designVersion = "26.1.0"

//公共的(系统的)

roots = [

//项目基本的(每个项目需要的)

"appcompatV7" : "com.android.support:appcompat-v7:${appcompatVersion}",

"constraint" : "com.android.support.constraint:constraint-layout:${constraintVersion}",

"junit" : "junit:junit:${junitVersion}",

"runner" : "com.android.support.test:runner:${runnerVersion}",

"espresso" : "com.android.support.test.espresso:espresso-core:${espressoVersion}",

]

2. build.gradle怎么引用

①: 对于ext下的变量,网上的写法:rootProject.ext.CompileSdkVersion或者ext.CompileSdkVersion,其实直接引用变量名CompileSdkVersion就可以了。

②:对于:roots数组,直接roots.appcompatV7这样引用就可以了。总体写法如下:

apply plugin: 'com.android.application'

android {

compileSdkVersion CompileSdkVersion

defaultConfig {

applicationId ApplicationId

minSdkVersion MinSdkVersion

targetSdkVersion TargetSdkVersion

versionCode VersionCode

versionName VersionName

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled MinifyEnabled

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation roots.appcompatV7

implementation roots.constraint

testImplementation roots.junit

androidTestImplementation roots.runner

androidTestImplementation roots.espresso

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值