settings.gradle
和
build.gradle
位于项目的根目录。另一个
build.gradle
文件则在Android的app模块内被建立。
对于一个只包含一个Android应用的新项目来讲,settings.gradle
的内容以下,表示app模块应该包含在构建内:android
include':app'
bash
settings.gradle
文件在初始化阶段被执行,而且定义了哪些模块应该包含在构建内。app
注意:单模块项目并不必定须要setting文件,可是多模块项目必需要有setting文件,不然,Gradle不知道哪一个模块应包含在构建内。测试
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
复制代码
Gradle
的Android
插件。每一个Android
模块都须要有Android
插件,由于该插件中定义了执行Android
的相关任务。build.gradle
的设置与根目录下的build.gradle
文件中的allprojects
设置冲突,则模块中的设置覆盖根目录下的设置。下面是app模块下的build.gradle
的代码:gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.example.myapplication"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
复制代码
第一行apply plugin: 'com.android.application'
表示应用Android
插件,该插件在顶层构建文件中被配置成了依赖ui
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
}
复制代码
android
代码块包含了所有的Android
特有配置,这些特有配置之因此可被使用,是由于以前咱们使用了Android
插件。配置以下:google
compileSdkVersion
是要用来声明编译应用的Android API版本。spa
defaultConfig
代码块用于配置应用的核心属性。此代码块中的属性可覆盖Android.Manifest.xml
文件中对应的条目操作系统
packagename
applicationId
和packagename
的区别:在应用构建以前,AndroidManifest.xml
中的package name
有两个用途:1.做为一个应用的惟标符,2.在R 资源类中被用做包名。在构建后定义在manifest
文件中的package
,继续用在你的源代码和 R 类中,而以前被用做设备惟一标识的package name
, 如今则被称之为applicationId
。插件
若是你在 build.gradle 中定义了它们, 就没有必要在 manifest 文件中再去定义。 若是构建 文件不包含某个属性, 那么 manifest 中的该属性就会被用做后备。
buildTypes
代码块可用来定义如何构建和打包不一样构建类型的应用
依赖代码块是标准 Gradle 配置的部分(这就是其放在 android 代码块以外的缘由), 其定义了个应用或依赖项目的全部依赖包。