先来看看build.gradle文件代码
plugins {
id 'com.android.application'
}
android {
compileSdk 31
defaultConfig {
applicationId "com.example.test"
minSdk 21
targetSdk 31
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
plugins {
id 'com.android.application'
}
首先是第一行,应用了一个插件,一般有两种值选择:
com.android.application表示这是一个应用程序模块
com.android.library表示这是个库模块
区别:应用程序模块是可以直接运行的,库模块只能作为代码库依附于别的应用程序模块来运行
android {
compileSdk 31
defaultConfig {
applicationId "com.example.test"
minSdk 21
targetSdk 31
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
接着是android的闭包,在里面我们可以配置项目构建的各种属性
compileSdk 31用于指定项目的编译版本
defaultConfig可以对项目的更多细节进行配置
applicationId:是每一个应用的唯一标识符,绝对不能重复,默认会使用我们在创建项目时指定的包名
minSdk 21 表示最低兼容到Android5.0版本
targetSdk 31表示你在该目标版本上已经做过了充分的测试,系统会为你提供最新的功能
versionCode表示指定项目的版本号
versionName表示指定项目的版本名
testInstrumentationRunner用于在当前项目中启用JUnit测试
buildTypes用于生成安装文件的相关配置,通常只会有两个子闭包一个是debug,一个是relase
debug闭包用于生成测试版安装文件的配置,可以忽略不写
release闭包用于指定生成正式版安装文件的配置,minifyEnabled用于是否指定混淆时使用的规则文件 proguardFiles:混淆时的规则文件
sourceCompatibility:指定编译编译.java文件的jdk版本
targetCompatibility:确保class文件与targetCompatibility指定版本,或者更新的java虚拟机兼容
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
可以指定当前项目所有的依赖关系,一般来说一共有三种依赖关系:本地依赖,库依赖,远程依赖
本地依赖:可以对本地的Jar包或目录添加依赖关系
库依赖:可以对项目中的库模块添加依赖关系
远程依赖:可以对Jcenter仓库上的开源项目添加依赖关系