Android Studio中的Gradle

Gradle 是以 Groovy 語言為基礎(chǔ),面向Java應(yīng)用為主?;贒SL(領(lǐng)域特定語言)語法的自動(dòng)化構(gòu)建工具。

Android Studio中的Gradle一共在三個(gè)地方出現(xiàn):

  • ./setting.gradle
  • ./app/build.gradle
  • ./build.gradle

1,根目錄下的setting.gradle

這個(gè)文件只有一行:include ':app', ':library',作用是:如果本項(xiàng)目中有多個(gè)Module,那么可以決定哪些Module可以被編譯。

注意:

  • Android Studio的project 相當(dāng)于 Eclipse的workspace
  • Android Studio的module 相當(dāng)于 Eclipse的project

2,根目錄下的build.gradle

下面是我的一個(gè)項(xiàng)目的./build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.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
}

可以看到,有三個(gè)部分組成:

  1. buildscript,是為編譯準(zhǔn)備的
    • repositories的作用是聲明倉庫源,默認(rèn)是jcenter(),舊版本是maven()。jcenter是一個(gè)新的中央遠(yuǎn)程倉庫,兼容maven中心倉庫,而且性能更優(yōu)。
    • dependencies是聲明Android gradle plugin的版本。
  2. allprojects
    • repositories聲明了所有project默認(rèn)的倉庫源。
  3. task clean
    • task clean聲明了一個(gè)名為clean的任務(wù),每當(dāng)點(diǎn)擊同步都會(huì)刪除External Library里面的依賴包,再重新加載。

3,子Module里面的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.neusnow.jianxiao"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:design:23.3.0'
    compile project(':library')
}

可以看到這個(gè)也分為三部分。

  1. apply plugin: 'com.android.application',是一個(gè)apply方法,傳遞一個(gè)plugin參數(shù),參數(shù)的值是com.android.application。代表這是一個(gè)應(yīng)用程序。如果是一個(gè)Library,那么參數(shù)的值是com.android.library。

  2. android,設(shè)定各種參數(shù)。buildTypes是構(gòu)建類型,默認(rèn)是release,也可以是debug。

    • minifyEnabled表示是否混淆
    • proguardFiles 表示混淆配置文件的名稱
    • productFlavors表示多渠道包
  3. dependecies,最重要的依賴。既可以遠(yuǎn)程依賴,也可以本地依賴。

    • compile 'com.android.support:design:23.3.0' ,就是遠(yuǎn)程依賴。引用包的格式:namesapce:package name:version
    • compile project(':library')},即為本地依賴。

參考資料
http://www.cnblogs.com/Kennytian/p/4923993.html
http://www.open-open.com/lib/view/open1456893798750.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容