android studio中的build.gradle文件

本人小白,大學期間,打算開始自學Android,準備用博客寫下所學所得,希望有所收穫,望大家互相幫助


Gradle是一個非常先進的項目構建工具,它使用了一種基於Groovy的領域特定語言(DSL)來聲明項目設置,摒棄了傳統基於XML(如Ant和Maven)的各種繁瑣配置。


在最基礎的HelloWorld項目中有兩個bulid.gradle文件,一個是在最外層目錄下的,一個是在app目錄下的。這兩個文件對構建Android Studio 項目都起到了至關重要的作用。

下面是最外層目錄下的build.gradle文件:

buildscript {
    repositories {
        jcenter()//這是一個代碼託管倉庫,很多android開源項目都會選擇將代碼託管到jcenter上
                 //聲明瞭這行配置之後,我們就可以在項目中輕鬆引用任何jcenter山的開源項目了。
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
//在這dependencies閉包中使用classpath聲明瞭一個Gradle插件。
       
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

通常情況下我們並不需要修改這個文件中的內容,除非你想添加一些全局的項目構建配置。


下面是app目錄下的build.gradle文件:

apply plugin: 'com.android.application'           //應用了一個插件,一般有兩種值可選:
1.com.android.application 表示這是一個應用程序模塊
2.com.android.library 表示這是一顆庫模塊
兩個最大的區別是:一個可以之間運行,一個只能作爲代碼庫依附於別的應用程序模塊來運行。

android {//在這個android閉包中我們可以配置項目構建的各種屬性。
    compileSdkVersion 25  //用於指定項目的編譯版本
    buildToolsVersion "24.0.3"  //用於指定項目構建工具的版本
    defaultConfig {//在這個defaultConfig閉包中可以對項目的更多細節進行配置。
        applicationId "com.example.simple.myapplication"  //用於指定項目的包名,在後面修改時在這裏修改
        minSdkVersion 21   //用於指定項目最低兼容的android系統版本
        targetSdkVersion 25  //指定的值表示你在該目標版本上已經做過了充分的測試,系統將會爲你的應用程序啓用一些最新的功能和特性
eg.指定成22,則表示在android 5.1系統上做過充分的測試,android 6.0的功能則不會啓用
        versionCode 1  //用於指定項目的版本號
        versionName "1.0" //用於指定項目的版本名
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {//在這buildTypes閉包中用於指定生成安裝文件的相關配置,通常只會有兩個子閉包,一個debug,一個是release
1.debug閉包用於指定生成測試版安裝文件的配置(這個閉包可以忽略不寫)
2.release閉包用於指定生成正式版安裝文件的配置
        release {
            minifyEnabled false   //用於制定是否對項目的代碼進行混餚,true表示混餚
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//用於指定混餚時使用的規則文件,這裏指定了兩個文件,1.proguard—android.txt 這是在android SDK目錄下的,裏面是所有項目通用的混餚規則
2.proguard-rules.pro 是在當前目錄的根目錄下的,裏面可以編寫當前項目特有的混餚規則。
(通過android Studio 直接運行項目生產的都是測試版安裝文件)
        }
    }
}

dependencies {//這個dependencies閉包可以指定當前項目所有的依賴關係。
通常android studio 項目共有3種依賴方式1.本地依賴 2.庫依賴 3.遠程依賴
1.本地依賴可以對本地的jar包或目錄添加依賴關係
2.庫依賴可以對項目中的庫模塊添加依賴關係
3.遠程依賴則可以對jcenter庫上的開源項目添加依賴關係
    compile fileTree(dir: 'libs', include: ['*.jar'])  //這是一個本地依賴聲明,它表示將libs目錄下所有.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:25.1.0'  //這是一個遠程依賴庫格式,其中com.android.support是域名部分;25.1.0是版本號,用於和同一個庫不同的版本做區分。
加上這句聲明後,Gradle在構建項目時會首先檢查一下本地是否已經有這個庫的緩存,如果沒有則會自動聯網下載,然後再添加到項目的構建路徑當中。
庫依賴聲明是:comple project (':庫名稱')後面加上要依賴的庫名稱
    testCompile 'junit:junit:4.12'  //用於聲明測試用例庫
}


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