【轉(zhuǎn)】androidStudio中build.gradle配置文件詳解

原文地址

build.gradle配置參數(shù)詳解

//聲明是Android程序

apply plugin: 'com.android.application'

android {
//程序在編譯的時候會檢查lint态鳖,有任何錯誤提示會停止build浆竭,我們可以關(guān)閉這個開關(guān)
    lintOptions {
        abortOnError false  
        //即使報錯也不會停止打包
        checkReleaseBuilds false  
        //打包release版本的時候進行檢測
    }

    compileSdkVersion 23 
    //編譯sdk的版本,也就是API Level删窒,例如API-19顺囊、API-20、API-21等等特碳。
    buildToolsVersion '23.0.2' 
    //build tools的版本,其中包括了打包工具aapt站宗、dx等等益愈。
    //這個工具的目錄位于你的sdk目錄/build-tools/下

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

    defaultConfig {
        applicationId "com.xiaopao.activity" 
        //應(yīng)用包名
        minSdkVersion 15 
        //最小sdk版本,如果設(shè)備小于這個版本或者大于
        //maxSdkVersion(一般不用)將無法安裝這個應(yīng)用
        targetSdkVersion 22 
        //目標(biāo)sdk版本或辖,如果設(shè)備等于這個版本那么android平臺
        //就不進行兼容性檢查枣接,運行效率會高一點
        versionCode 15 
        //版本更新了幾次缺谴,第一版應(yīng)用是1,以后每更新一次加1
        versionName '1.411'
        //版本信息湿蛔,這個會顯示給用戶,就是用戶看到的版本號
        archivesBaseName = "weshare-$versionName" 
        //指定打包成Jar文件時候的文件名稱
        ndk {
             moduleName "xiaopaowifisafe"                   //設(shè)置庫(so)文件名稱
            ldLibs "log", "z", "m", "jnigraphics", "android"
            //引入庫添谊,比如要用到的__android_log_print
            abiFilters "armeabi", "x86", "armeabi-v7a"      //, "x86"  顯示指定支持的ABIs
            cFlags "-std=c++11 -fexceptions"                // C++11
            stl "gnustl_static"
        }
        multiDexEnabled true  
        //當(dāng)方法數(shù)超過65535(方法的索引使用的是一個short值察迟,
        //而short最大值是65535)的時候允許打包成多個dex文件,動態(tài)加載dex扎瓶。這里面坑很深啊
    }

    //默認的一些文件路徑的配置
    sourceSets {   
        main {
            assets.srcDirs = ['assets']    //資源文件
            jni.srcDirs 'src/main/jni'     //jni文件
            jniLibs.srcDir 'src/main/jniLibs' //jni庫
        }
    }
    //multiDex的一些相關(guān)配置概荷,這樣配置可以讓你的編譯速度更快
    dexOptions {
        preDexLibraries = false  
        //讓它不要對Lib做preDexing
        incremental true         
        //開啟incremental dexing,優(yōu)化編譯效率,這個功能android studio默認是關(guān)閉的。
        javaMaxHeapSize "4g"     //增加java堆內(nèi)存大小
    }
    buildTypes {
        release { //release版本的配置
            zipAlignEnabled true  //是否支持zip
            shrinkResources true  // 移除無用的resource文件
            minifyEnabled true    //是否進行混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
            //release的Proguard默認為Module下的proguard-rules.pro文件.
            debuggable false  //是否支持調(diào)試
            //ndk的一些配置
            ndk {
                // cFlags "-std=c++11 -fexceptions -O3 -D__RELEASE__" // C++11
                // platformVersion  = "19"
                moduleName "xiaopaowifisafe" //設(shè)置庫(so)文件名稱
                ldLibs "log", "z", "m", "jnigraphics", "android"
                //引入庫修壕,比如要用到的__android_log_print
                abiFilters "armeabi", "x86", "armeabi-v7a"http://, "x86"
                cFlags "-std=c++11 -fexceptions" // C++11
                stl "gnustl_static"
            }
            //采用動態(tài)替換字符串的方式生成不同的release.apk
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('release.apk')) {
                        def timeStamp = new Date().format('yyyyMMddHH');
                        def fileName = "WeShare-${defaultConfig.versionName}" + "-" + timeStamp + "-lj-" + ".apk";
                        output.outputFile = file("${outputFile.parent}/${fileName}")
                    }
                }
            }
            jniDebuggable false  //關(guān)閉jni調(diào)試
        }
        debug {//debug版本的配置
            minifyEnabled false
            zipAlignEnabled true          
            shrinkResources true // 移除無用的resource文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            debuggable true
//          jniDebuggable true
            ndk {
                cFlags "-std=c++11 -fexceptions -g -D __DEBUG__" // C++11
            }
            jniDebuggable true
        }
    }
    compileOptions {
    //在這里你可以進行 Java 的版本配置叠殷,
    //以便使用對應(yīng)版本的一些新特性
    }
    productFlavors {
    //在這里你可以設(shè)置你的產(chǎn)品發(fā)布的一些東西林束,
    //比如你現(xiàn)在一共軟件需要發(fā)布到不同渠道稽亏,
    //且不同渠道中的包名不同,那么可以在此進行配置截歉;
    //甚至可以設(shè)置不同的 AndroidManifest.xml 文件。
        xiaopao {
        }
        googlePlay {
        }
        solo {
        }
    }
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
    //所謂ProductFlavors其實就是可定義的產(chǎn)品特性咸作,
    //配合 manifest merger 使用的時候就可以達成在一次編譯
    //過程中產(chǎn)生多個具有自己特性配置的版本宵睦。

    //上面這個配置的作用就是,為每個渠道包產(chǎn)生不同的 UMENG_CHANNEL_VALUE 的值桐智。
}
//一些依賴的框架
dependencies {
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.github.pwittchen:reactivenetwork:0.1.3'
    compile 'de.hdodenhof:circleimageview:2.0.0'
    compile 'com.android.support:design:23.4.0'
    compile 'pl.tajchert:waitingdots:0.2.0'
}
//聲明是要使用谷歌服務(wù)框架
apply plugin: 'com.google.gms.google-services'

//第三方依賴庫的本地緩存路徑
task showMeCache << {
    configurations.compile.each { println it }
}
//使用maven倉庫烟馅。android有兩個標(biāo)準(zhǔn)的library文件服務(wù)器,一個jcenter一個maven郑趁。兩者毫無關(guān)系。
//jcenter有的maven可能沒有捆憎,反之亦然悦穿。
//如果要使用jcenter的話就把mavenCentral()替換成jcenter()
repositories {
    mavenCentral()
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市礁扮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌太伊,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锰提,死亡現(xiàn)場離奇詭異,居然都是意外死亡立肘,警方通過查閱死者的電腦和手機名扛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來融蹂,“玉大人弄企,你說我怎么就攤上這事【辛欤” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵洽瞬,是天一觀的道長业汰。 經(jīng)常有香客問我菩颖,道長,這世上最難降的妖魔是什么晦闰? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮跪妥,結(jié)果婚禮上声滥,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好罐韩,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布污朽。 她就那樣靜靜地躺著,像睡著了一般矾睦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上顷锰,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天亡问,我揣著相機與錄音,去河邊找鬼州藕。 笑死,一個胖子當(dāng)著我的面吹牛毁涉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贫堰,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼待牵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了偎行?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤蛤袒,失蹤者是張志新(化名)和其女友劉穎膨更,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體珍德,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年菱阵,在試婚紗的時候發(fā)現(xiàn)自己被綠了踢俄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片都办。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡虑稼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛛倦,到底是詐尸還是另有隱情,我是刑警寧澤溯壶,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站验烧,受9級特大地震影響又跛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜慨蓝,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弧满。 院中可真熱鬧,春花似錦谱秽、人聲如沸洽蛀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鲫寄,卻和暖如春吉执,著一層夾襖步出監(jiān)牢的瞬間戳玫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工咕宿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蜡秽,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓试浙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親田巴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

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