1.一个project中包含两个gradle
(1)project层面的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
project中的build.gradle负责全局配置。
其中buildscript中的代码块是用于配置gradle本身的运行脚本,自己app的部署不用写在这里,一般不对其做修改。allprojects代码块中是声明项目自身需要的仓库源(jcenter、maven都是国外的仓库源)。
task clean这里声明了一个task,用于setting.gradle改变时清空项目。
(2)app层的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "com.example.goodix.myapplication"
minSdkVersion 21
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:23.4.0'
testCompile 'junit:junit:4.12'
}
compileSdkVersion 23这一行配置sdk的版本,buildToolViersion:23.0.1配置buildTool的版本。
defaultconfig代码块中,配置了app的一些基本属性,包括applicationId(很重要,和夸app调用有关)、sdkVersion、以及app的version号等。
buildTypes代码块中,可以配置release版或debug版等不同的版本信息,不同的版本又可以单独配置代码混淆(minifyEnabled、proguard),签名信息(signingConfig)等属性。
dependencies代码块中配置了app编译要使用的依赖库。
ps:gradle非常强大,以上只是基本的配置。另外如productFlavors代码块、signingConfigs代码块的用法请可以查阅相关信息学习。
2.settings.gradle
include ':app'
包括了工程中需要编译的module名