什麼是Gradle
Gradle是一個非常先進的項目構建工具,它使用了一種基於Groovy的領域特定語言(DSL)來聲明項目設置,摒棄是傳統基於XML(如Ant和Maven)的各種煩瑣配置。在Android Studio中採用的正是Gradle。
在AS中項目中有兩個build.gradle文件對構建項目起着至關重要的使用。
一、外目錄下的build.gradle文件
buildscript {
repositories {
jcenter() //配置聲明後,可以直接在項目中引用任何jcenter代碼託管倉庫上的開源項目
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3' //聲明Gradle插件版本
}
}
allprojects {
repositories {
jcenter()//配置聲明後,可以直接在項目中引用任何jcenter代碼託管倉庫上的開源項目
}
}
二、app目錄下的buidle.grable文件
/*
*一般有兩種值可以選:
*com.android.application 表示這是一個應用程序模塊,它是可以直接運行的
*com.android.library 表示這是一個庫模塊,它是不能直接運行的,只能依附於別的應用程序模塊來運行
*/
apply plugin: 'com.android.application' //應用插件,表示這是一個應用程序模塊
android {
compileSdkVersion 25 //指定項目的編譯版本。當指定爲25是表示使用Android7.0系統的SDK和進行編譯。
buildToolsVersion "25.0.3" //指定項目的構建工具的版本
defaultConfig { //用於對項目的細節進行配置
applicationId "com.example.jpushtest" //指定項目包名
minSdkVersion 15 //指定項目最低兼容的Android系統版本,當指定15時表示最低兼容到Android 4.0系統
targetSdkVersion 25 //指定的值表示你在該項目版本上已進行過充分的測試,系統會爲你的應用程序啓用一些最新的功能和特性。比如說Android6.0系統中引入了運行時權限的新功能。如果將targetSdkVersion指定爲23或更高時,那麼系統就會爲你的程序啓用運行時權限功能,但如果你的targetSdkVersion指定爲22時,那麼就說明你的程序最高只在Android 5.1系統上做過充分的測試,Android 6.0系統中引入的新功能自然就不會啓用。
versionCode 1 //指定項目的版本號
versionName "1.0" //指定項目版本名
}
buildTypes { //用於指定生成安裝文件的相關配置
release { //指定生成正式安裝文件的配置
minifyEnabled false //指定是否對項目的代碼進行混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //指定混淆時使用的規則文件。proguard-android.txt是Android SDK目錄下的,裏面的所有項目通用的混淆規則;proguard-rules.pro 是在當前目錄下的根目錄下的可以由自己編寫的特定的混淆規則。
}
}
}
dependencies { //用於指定當前項目的所有的依賴關係
compile fileTree(dir: 'libs', include: ['*.jar']) //本地依賴,用於對本地的jar包和目錄添加依賴關係
compile 'com.android.support:appcompat-v7:25.3.1' //遠程依賴,對jcenter庫上的開源項目添加依賴關係
testCompile 'junit:junit:4.12' //聲明測試用例庫
}
本文參考了郭霖的《第一行代碼》。