理解build.gradle文件

什麼是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'  //聲明測試用例庫
}

本文參考了郭霖的《第一行代碼》。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章