Android開發(fā)項(xiàng)目中的build.gradle文件介紹

Android開發(fā)項(xiàng)目中的build.gradle文件介紹

在開發(fā)android項(xiàng)目中,我們通常會(huì)遇到兩個(gè)build.gradle文件。如下圖所示:


DE125352-71D5-4425-A643-F6F0F19B676F.png

一個(gè)用于整個(gè)項(xiàng)目,一個(gè)用于app應(yīng)用模塊,對應(yīng)于整個(gè)項(xiàng)目的內(nèi)容很少,其內(nèi)容如下:

B98C97F7-3362-4079-90B6-6A68EC8DA195.png

下面是具體的解釋:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
// Gradle中可以使用“//”或“/**/”來添加注釋,與Java類似。
// 根目錄下的build.gradle用于添加子工程或模塊共用的配置項(xiàng)。

// "buildscript"的類型為script block,而且是最上層的script block,用于配置Gradle的Project實(shí)例。其API文檔為https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:buildscript(groovy.lang.Closure)
// 其余的根script block有"allprojects", "dependencies", "configurations"等,更多的可見https://docs.gradle.org/current/dsl/的“Build script structure”一節(jié)。
// Script Block是一種method的調(diào)用,傳入的參數(shù)為configuration closure。執(zhí)行后會(huì)對Project的屬性進(jìn)行配置。
// 此處的"buildscript"用于配置Project的build script的classpath。
buildscript {
    // 如果需要的話,從https://jcenter.bintray.com/下載code reposities。
    repositories {
        jcenter()
    }
    // 定義classpath,gradle會(huì)從“repositories”中下載對應(yīng)版本的Gradle。如果使用gradle wrapper的話,感覺這個(gè)配置會(huì)被忽略。Wrapper會(huì)自己去下載所使用的gradle版本。
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

// 該配置會(huì)被應(yīng)用到所有的子工程。
allprojects {
    repositories {
        jcenter()
    }
}

// 運(yùn)行g(shù)radle clean時(shí),執(zhí)行此處定義的task。
// 該任務(wù)繼承自Delete,刪除根目錄中的build目錄。
// 相當(dāng)于執(zhí)行Delete.delete(rootProject.buildDir)。
// gradle使用groovy語言,調(diào)用method時(shí)可以不用加()。
task clean(type: Delete) {
    delete rootProject.buildDir
}

其次,我們要了解和經(jīng)常編輯的是app/build.gradle文件。其內(nèi)容如下:

73F07CF6-5961-41F3-8D9F-3F0A66F1A645.png

下面是具體的解釋:

// 聲明是Android程序,
//com.android.application 表示這是一個(gè)應(yīng)用程序模塊
//com.android.library 標(biāo)識這是一個(gè)庫模塊
//而這區(qū)別:前者可以直接運(yùn)行,后著是依附別的應(yīng)用程序運(yùn)行
apply plugin: 'com.android.application'

android {
   
    compileSdkVersion 26             // 編譯SDK的版本   
    buildToolsVersion "26.0.2"      // 編譯build tools的版本
    defaultConfig {                         //默認(rèn)配置
        applicationId "com.example.zhangqi.myapplication"      //應(yīng)用的包名
        minSdkVersion 15            //支持的最低版本
        targetSdkVersion 26       //支持的目標(biāo)版本
        versionCode 1                  //版本號
        versionName "1.0"          //版本名
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {                            //build類型
        release {                              //發(fā)布
            minifyEnabled false       //混淆開啟
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    //指定混淆規(guī)則文件
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])。 //編譯lib目錄下的.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:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'

    compile 'com.squareup.retrofit2:retrofit:2.1.0'//retrofit
    compile 'com.google.code.gson:gson:2.6.2'//Gson 庫
    //下面兩個(gè)是RxJava 和RxAndroid
    compile 'io.reactivex:rxjava:1.1.0'
    compile 'io.reactivex:rxandroid:1.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'//轉(zhuǎn)換器,請求結(jié)果轉(zhuǎn)換成Model
    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'//配合Rxjava 使用
    testCompile 'junit:junit:4.12'
}

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,675評論 25 709
  • 太長了,還是轉(zhuǎn)載吧...今天在看博客的時(shí)候,無意中發(fā)現(xiàn)了@Trinea在GitHub上的一個(gè)項(xiàng)目Android開源...
    龐哈哈哈12138閱讀 20,383評論 3 283
  • 一直有這樣一個(gè)習(xí)慣,新建一個(gè)文件時(shí),給這個(gè)文件命名時(shí),總會(huì)寫上日期,比如”還沒想好標(biāo)題_20160912”這樣的格...
    minzishuo閱讀 552評論 0 0
  • 隨著iOS11和Xcode9的發(fā)布,發(fā)現(xiàn)了各種BUG,最嚴(yán)重的莫過于部分彈窗無法彈出,發(fā)現(xiàn)是使用了View加載到U...
    Ly夢k閱讀 1,579評論 0 1
  • 我已經(jīng)在好幾個(gè)路口看到他了,背著一個(gè)很簡單的雙肩包,面目清秀,穿著很簡單,鞋子也很干凈,他的雙眼來回掃視,好像在找...
    猜名_閱讀 468評論 0 9

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