gradle筆記

From一把湯勺

gradle文件常見寫法

apply plugin: 'com.android.application'

repositories {
    jcenter()
}

android {
    compileSdkVersion 19
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.aiscot.gradle.test"
        minSdkVersion 9
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"

        // 修改dex 65536的限制
        multiDexEnabled true
        // AndroidManifest.xml文件中UMENG_CHANNEL的value為${UMENG_CHANNEL_VALUE}
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "channel_name"]
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    // 簽名文件
    signingConfigs {
        debug {
            // debug簽名
            storeFile file("/path/xx-debug.jks")
            storePassword "密碼"
            keyAlias "別名"
            keyPassword "簽名密鑰的密碼"
        }
        release {
            // relase簽名
            storeFile file("/path/xx-release.jks")
            storePassword "密碼"
            keyAlias "別名"
            keyPassword "簽名密鑰的密碼"
        }
    }

    // 構(gòu)建類型
    buildTypes {
        debug {
            // debug模式下,顯示log
            buildConfigField("boolean", "LOG_DEBUG", "true")

            // 版本名前綴
            versionNameSuffix "-debug"
            // 不開啟混淆
            minifyEnabled false
            // 不開啟ZipAlign優(yōu)化
            zipAlignEnabled false
            // 不移除無用的resource文件
            shrinkResources false
            // 使用debug簽名
            signingConfig signingConfigs.debug

        }
        release {
            // release模式下,不顯示log
            buildConfigField("boolean", "LOG_DEBUG", "false")

            // 版本名前綴
            versionNameSuffix "-relase"
            // 開啟混淆
            minifyEnabled true
            // 開啟ZipAlign優(yōu)化
            zipAlignEnabled true
            // 移除無用的resource文件
            shrinkResources true
            // 使用release簽名
            signingConfig signingConfigs.release
            // 混淆文件位置
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    // 渠道Flavors,配置不同的渠道
    productFlavors {
        GooglePaly {}
        xiaomi {}
        umeng {}
        _360 {}
        wandoujia {}
        yingyongbao {}
        whatever {}
    }

    // 批量配置渠道
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

    applicationVariants.all {
        variant ->
            variant.outputs.each {
                output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk")
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
            }
    }
}

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

gradle常用指令
注意都是./gradlew,./代表當(dāng)前目錄,gradlew代表gradle wrapper,意思是gradle的一層包裝,可以理解為在這個項(xiàng)目本地就封裝了gradle蝶缀,即gradle wrapper,只要下載成功即可用grdlew wrapper的命令代替全局的gradle命令薄货。
理解了gradle wrapper的概念翁都,下面一些常用命令:
./gradlew -v 版本號
./gradlew clean 清除....../app目錄下的build文件夾
./gradlew build 檢查依賴并編譯打包,打debug和release所有包
打包相關(guān)
./gradlew build 命令把debug谅猾、release環(huán)境的包都打出來荐吵,如果正式發(fā)布只需要打Release的包,該怎么辦呢赊瞬,下面介紹一個很有用的命令 assemble, 如
./gradlew assembleDebug --編譯并打Debug包
./gradlew assembleRelease --編譯并打Release的包
./gradlew installRelease --Release模式打包并安裝
./gradlew uninstallRelease --卸載Release模式包
gradle assemble 把debug先煎、release環(huán)境的包都打出來
./gradlew assembleXiaomiRelease—— 單獨(dú)打包小米應(yīng)用市場渠道的release版本
./gradlew assembleXiaomi—— 單獨(dú)打包小米應(yīng)用市場渠道的debug和release版

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市巧涧,隨后出現(xiàn)的幾起案子薯蝎,更是在濱河造成了極大的恐慌,老刑警劉巖谤绳,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件占锯,死亡現(xiàn)場離奇詭異,居然都是意外死亡缩筛,警方通過查閱死者的電腦和手機(jī)消略,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞎抛,“玉大人艺演,你說我怎么就攤上這事⊥╇” “怎么了胎撤?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長断凶。 經(jīng)常有香客問我伤提,道長,這世上最難降的妖魔是什么认烁? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任肿男,我火速辦了婚禮介汹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舶沛。我一直安慰自己痴昧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布冠王。 她就那樣靜靜地躺著,像睡著了一般舌镶。 火紅的嫁衣襯著肌膚如雪柱彻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天餐胀,我揣著相機(jī)與錄音哟楷,去河邊找鬼。 笑死否灾,一個胖子當(dāng)著我的面吹牛卖擅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播墨技,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惩阶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了扣汪?” 一聲冷哼從身側(cè)響起断楷,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崭别,沒想到半個月后冬筒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茅主,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年舞痰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诀姚。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡响牛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赫段,到底是詐尸還是另有隱情娃善,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布瑞佩,位于F島的核電站聚磺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏炬丸。R本人自食惡果不足惜瘫寝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一蜒蕾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧焕阿,春花似錦咪啡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至褒纲,卻和暖如春准夷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背莺掠。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工衫嵌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人彻秆。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓楔绞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親唇兑。 傳聞我的和親對象是個殘疾皇子酒朵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

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

  • 轉(zhuǎn)至:http://blog.csdn.net/heqiangflytosky/article/details/5...
    kkgo閱讀 2,877評論 0 1
  • 前言 為什么需要學(xué)Gradle? Gradle 是 Android 現(xiàn)在主流的編譯工具,雖然在Gradle 出現(xiàn)之...
    真笨笨魚閱讀 1,490評論 0 0
  • 前言 為什么需要學(xué)Gradle? Gradle 是 Android 現(xiàn)在主流的編譯工具扎附,雖然在Gradle 出現(xiàn)之...
    Liuuuuuuzi閱讀 1,998評論 0 18
  • 轉(zhuǎn)載(未找到原始鏈接) Gradle是一種構(gòu)建工具耻讽,它拋棄了基于XML的構(gòu)建腳本,取而代之的是采用一種基于Gro...
    GYLEE閱讀 4,050評論 0 2
  • 一個人是有多沒主見 才會把自己的人生交給別人做決定 一個人是有多傻逼 才會無條件的相信一個外人 一個人是有多懦弱 ...
    影子就很白閱讀 93評論 0 0