Gradle 相關(guān)配置

1、build.gradle 工程構(gòu)建文件捺檬。

***頂級構(gòu)建文件叼架,為整個項目添加配置***********

// 聲明gradle腳本自身需要使用的資源柠逞,包括依賴項青瀑、第三方插件璧亮、maven倉庫地址等。
buildscript {
    // 聲明倉庫的源斥难。之前這里用mavenCentral()
    repositories {
        jcenter()     // jCenter可以理解成是一個新的中央遠程倉庫枝嘶,兼容maven中心倉庫,而且性能更優(yōu)
    }

   // 配置使用gradle所需要依賴的版本庫
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
    }}

// 為所有的工程的repositories配置為jcenters
allprojects {
    repositories {
        jcenter()     // 支持Java 依賴庫管理(maven/ivy)
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

2蘸炸、app/build.gradle module構(gòu)建文件

apply plugin: 'com.android.application'     // 說明該module的構(gòu)建類型躬络。如果該moudle是個庫,就寫com.android.library
apply plugin: 'com.jakewharton.butterknife'     // 注解插件
apply plugin: 'com.google.gms.google-services'   // 谷歌服務(wù)插件


// 設(shè)置編譯android項目的參數(shù)
android {
    // SDK的一些聲明
    compileSdkVersion 25     // 編譯使用的SDK版本(本地要有)
    buildToolsVersion "24.0.2"     // 編譯使用的tools版本(在sdk目錄/build-tools/下)

    // 默認配置
    defaultConfig {
        applicationId "com.neiliner.mymovie.xiaomi"     // 安裝時依據(jù)該ID區(qū)分是否為同一個應(yīng)用
        minSdkVersion 14     //支持的最低版本
        targetSdkVersion 25     //支持的目標版本
        versionCode 1     // 版本號搭儒,用戶能看到的版本號
        versionName "1.0"     // 版本名穷当,內(nèi)部定義的版本名

        // 單元測試相關(guān)的配置。擴展見<補充1>
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    //關(guān)閉Android Studio的PNG合法性檢查的
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false

    // 指定資源的路徑淹禾。比如從Eclipse遷過來的代碼馁菜,和AS的文件位置不同,就需要手動設(shè)置
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'     //指定AndroidManifest文件
            java.srcDirs = ['src']     //指定source目錄
            resources.srcDirs = ['src']     //指定source目錄
            aidl.srcDirs = ['src']     //指定source目錄
            renderscript.srcDirs = ['src']     //指定source目錄
            res.srcDirs = ['res']     //指定資源目錄
            assets.srcDirs = ['assets']     //指定assets目錄
            jniLibs.srcDirs = ['libs']     //指定lib庫目錄
        }
        debug.setRoot('build-types/debug')     //指定debug模式的路徑
        release.setRoot('build-types/release')     //指定release模式的路徑
    }

    //簽名配置铃岔。需要與下面buildTypes配合使用
    signingConfigs {
        //發(fā)布版簽名配置
        release {
            storeFile file("fk.keystore")     // 密鑰文件路徑
            storePassword "123"     // 密鑰文件密碼
            keyAlias "fk"     // key別名
            keyPassword "123"     // key密碼
        }

        //debug版簽名配置
        debug { 
            storeFile file("fk.keystore")     // 密鑰文件路徑
            storePassword "123"     // 密鑰文件密碼
            keyAlias "fk"     // key別名
            keyPassword "123"     // key密碼
        }
    }

    // build類型
    buildTypes {
        debug {
            applicationIdSuffix ".debug"     //將包名設(shè)置為.debug汪疮,以便同時安裝debug和release版本。
            signingConfig signingConfigs.release     //設(shè)置上面signingConfigs的簽名配置
        }
        release {
            minifyEnabled false     // 是否進行混淆
            zipAlignEnabled true     //是否支持zip
            shrinkResources true     // 移除無用的resource文件
            debuggable false     //是否支持調(diào)試
            signingConfig signingConfigs.debug     //設(shè)置簽名信息
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'     // 設(shè)置混淆文件的位置毁习。擴展見<補充2>
        }
    }

    // 打包時的相關(guān)配置智嚷。當項目中依賴的第三方庫越來越多時,有可能會出現(xiàn)兩個依賴庫中存在同一個(名稱)文件纺且。如果這樣盏道,Gradle在打包時就會提示錯誤(警告)。那么就可以根據(jù)提示载碌,然后使用以下方法將重復(fù)的文件剔除猜嘱。
    packagingOptions {
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/MANIFEST.MF'
    }

    // 程序在編譯的時候會檢查lint,有任何錯誤提示會停止build嫁艇,我們可以關(guān)閉這個開關(guān)
    lintOptions {
        abortOnError false     // 有錯誤是否停止build
        checkReleaseBuilds false     //打包release版本的時候是否進行檢測
    }

    // multiDex的一些相關(guān)配置朗伶,這樣配置可以讓你的編譯速度更快
    dexOptions {
        preDexLibraries = false
        incremental true     // 讓它不要對Lib做preDexing
        // 開啟incremental dexing,優(yōu)化編譯效率,這個功能android studio默認是關(guān)閉的步咪。
        javaMaxHeapSize "4g"     // 設(shè)置java堆內(nèi)存大小
    }

    // 設(shè)置產(chǎn)品特性论皆,即多渠道打包的東西,比如不同的應(yīng)用名猾漫,圖標纯丸、AndroidManifest.xml
    // 配合manifest merger使用的時候就可以達成在一次編譯過程中產(chǎn)生多個具有自己特性配置的版本。
    productFlavors {
        xiaomi {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]     // 渠道包配置
            manifest.srcFile 'exampleapk/AndroidManifest1.xml'
            applicationId "com.abc.def.xiaomi"
        }
        googlePlay {
            applicationId "com.abc.def.googleplay"
        }
    }

    // productFlavors的批量方法静袖,類似一個循序遍歷作用觉鼻。
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

    // java版本
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}


// 依賴。遠程本地都在這兒配置
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')     // 編譯libs目錄下的所有jar包
    testCompile 'junit:junit:4.12'     // 編譯單元測試框架
    compile project(':library')     // 依賴本項目中名為library的庫
    compile 'com.github.bumptech.glide:glide:3.7.0'     // 編譯第三方庫
    compile 'com.jakewharton:butterknife:8.4.0'     // 編譯第三方庫
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'     // 指定處理Annotation的庫队橙。AS2.2以前版本這里用 apt坠陈。
}

3、setting.gradle 工程配置

// 聲明需要加入gradle的module捐康,即告訴gradle項目中有哪些module需要處理
include ':app', ':extras:ShimmerAndroid'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仇矾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子解总,更是在濱河造成了極大的恐慌贮匕,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件花枫,死亡現(xiàn)場離奇詭異刻盐,居然都是意外死亡掏膏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門敦锌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馒疹,“玉大人,你說我怎么就攤上這事乙墙∮北洌” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵听想,是天一觀的道長腥刹。 經(jīng)常有香客問我,道長汉买,這世上最難降的妖魔是什么衔峰? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮录别,結(jié)果婚禮上朽色,老公的妹妹穿的比我還像新娘。我一直安慰自己组题,他們只是感情好葫男,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著崔列,像睡著了一般梢褐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赵讯,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天盈咳,我揣著相機與錄音,去河邊找鬼边翼。 笑死鱼响,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的组底。 我是一名探鬼主播丈积,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼债鸡!你這毒婦竟也來了江滨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤厌均,失蹤者是張志新(化名)和其女友劉穎唬滑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡晶密,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年擒悬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惹挟。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡茄螃,死狀恐怖缝驳,靈堂內(nèi)的尸體忽然破棺而出连锯,到底是詐尸還是另有隱情,我是刑警寧澤用狱,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布运怖,位于F島的核電站,受9級特大地震影響夏伊,放射性物質(zhì)發(fā)生泄漏摇展。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一溺忧、第九天 我趴在偏房一處隱蔽的房頂上張望咏连。 院中可真熱鬧,春花似錦鲁森、人聲如沸祟滴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垄懂。三九已至,卻和暖如春痛垛,著一層夾襖步出監(jiān)牢的瞬間草慧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工匙头, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留漫谷,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓蹂析,卻偏偏與公主長得像舔示,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子识窿,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容