介紹
Gradle是一個(gè)基于Apache Ant和Apache Maven概念的項(xiàng)目自動(dòng)化建構(gòu)工具躺盛。它使用一種基于Groovy的特定領(lǐng)域語(yǔ)言(DSL)來(lái)聲明項(xiàng)目設(shè)置担钮,拋棄了基于XML的各種繁瑣配置捷绑。
Gradle是Android Studio標(biāo)配的構(gòu)建系統(tǒng)淳玩,想要熟練使用Android Studio進(jìn)行Android開(kāi)發(fā)抵拘,必須對(duì)Gradle有一定程度的認(rèn)知陵珍。
多文件共享變量
Gradle開(kāi)發(fā)中經(jīng)常會(huì)涉及到很多相同的配置寝杖,例如不同module中都要配置compileSdkVersion、buildToolsVersion等變量值互纯。一般情況下瑟幕,它們的取值都應(yīng)該保持一致,為了不讓修改都要經(jīng)過(guò)每個(gè)module文件伟姐,我們可以定義一個(gè)名為config.gradle的文件收苏,并放在項(xiàng)目根目錄中,文件內(nèi)容可以如下:
project.ext{
//Java相關(guān)
javaVersion = JavaVersion.VERSION_1_8
//Android
compileSdkVersion = 25
buildToolsVersion = "25.0.1"
minSdkVersion = 14
targetSdkVersion = 25
//混淆
minifyEnabled = false
//其它
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
}
工程中的module的build.gradle文件引入全局配置項(xiàng)如下:
apply plugin: 'com.android.application'
apply from: '../config.gradle'
android {
compileSdkVersion project.ext.compileSdkVersion
buildToolsVersion project.ext.buildToolsVersion
defaultConfig {
applicationId "com.zyao.test"
minSdkVersion project.ext.minSdkVersion
targetSdkVersion project.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled project.ext.minifyEnabled
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
高級(jí)配置
在多個(gè)module項(xiàng)目中愤兵,每次都要引入apply from: '../config.gradle'
顯然非常的繁瑣鹿霸,下面介紹一種常見(jiàn)解決方案在根目錄的build.gradle文件中配置subprojects
,如下:
subprojects {
apply from: '../config.gradle'
}
aar庫(kù)引用配置
aar
是在Android Studio中開(kāi)始引入的一種全新的文件類(lèi)型秆乳,它其實(shí)就是一個(gè)壓縮文件懦鼠,里面包含了jar文件和相關(guān)資源文件。
我們?cè)陧?xiàng)目中引入本地aar文件的配置方式如下:
- 首先屹堰,在根目錄中的build.gradle中配置如下參數(shù):
repositories {
flatDir {
dirs 'libs路徑'
}
}
- 然后肛冶,在module中的build.gradle中就可以配置依賴(lài)文件了,如下:
dependencies {
...
compile(name: '輸入你引入的文件名', ext: 'aar')
...
}
總結(jié)
完美扯键,完美睦袖,是不是很完美...
小伙伴們,加油了H傩獭O隗稀伦乔!
個(gè)人博客:http://zyao89.me