android studio gradle

时间:2015-12-28 15:40:07   收藏:0   阅读:426
apply plugin: ‘com.android.application‘

/*
定义一个方法,仅def声明时,返回类型任意(自动判断)
   可以将返回值直接写成String 或def String
gradle支持groovy语言,groovy默认引入的包有:
  java.io.* java.lang.* java.math.BigDecimal java.math.BigInteger
  java.net.* java.util.* groovy.lang.* groovy.util.*
 */
def String computeVersionName() {
    return "8.8.8"
}


android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"


    defaultConfig {
        applicationId "com.stone.myapplication"
        minSdkVersion 8
        targetSdkVersion 22
        versionCode 1
        versionName computeVersionName() //使用外部定义的方法
        /*
        manifestPlaceholders 
            manifest中使用占位符,如:<... android:name="${YOUR_APP_KEY}" >
            以[key-value]形式替换:[YOUR_APP_KEY:"value"]
        */
        manifestPlaceholders = [YOUR_APP_KEY: "友盟后台的appkey"]
    }

    signingConfigs { //gradle assembleRelease
        /*
           可以定义多个签名配置项,如下面的myConfig
         */
        myConfig {
            storeFile file("stone.keystore")
            storePassword "mypasswd"
//            storePassword System.console().readLine("\nKeystore password: ")
            keyAlias "stone"
            keyPassword "mypasswd"
//            keyPassword System.console().readLine("\nKey password: ")
        }
    }

    buildTypes {
        /*
            可以配置多个buildType项,如下面的release,debug,aabbcc
         */
        release {
            minifyEnabled true  //译:使变小enabled。   即启用混淆器
            //混淆文件:sdk/tools/proguard/proguard-android.txt 和 当前module下的proguard-rules.pro
//            proguardFiles  getDefaultProguardFile(‘proguard-android-optimize.txt‘),‘proguard-rules.pro‘
            //getDefaultProguardFile(‘proguard-android.txt‘),
            //getDefaultProguardFile(‘proguard-android-optimize.txt‘),
            signingConfig signingConfigs.myConfig
            zipAlignEnabled true    //混淆后的zip优化,默认为true,可不写。当不显示配置为true时,不会生成unaligned.apk
        }
        debug {
            debuggable true  //启用debug的buildType配置
        }

        aabbcc {//自定义配置,未配置签名项,所以会生成未签名apk
            multiDexEnabled true
        }
    }

    productFlavors {
        /*
          productFlavors-产品风格:
                  即不同产品的配置,它会基于上面的公共配置项defaultConfig
                  下面的配置项与buildTypes{}中的配置项,成类似sql中的全联(full join)关系
                   当执行 $gradle build   命令后,会生成:
                       module-flavor1-release-unaligned.apk
                       module-flavor1-release.apk
                       module-flavor1-debug-unaligned.apk
                       module-flavor1-debug.apk
                       module-flavor1-aabbcc.apk
                       ...flavor2...apk

          applicationId 用于标识 在谷歌Play商店上的唯一标识 默认不配置,则与app的AndroidManifest.xml中的package一致
                  仅替换<manifest>中的package属性值,其它不受影响

         */

        flavor1 {
            proguardFiles ‘proguard-rules.pro‘
            applicationId "com.stone.myapplication.pro" //比如 专业版
            manifestPlaceholders = [channelID: "百度应用平台"]
        }

        flavor2 {
            proguardFile ‘proguard-rules.pro‘
            applicationId "com.stone.myapplication.free" //比如 免费版
            manifestPlaceholders = [channelID: "豌豆夹"]
        }
    }

}

dependencies {
    //    Local binary dependency  本地jar包
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    // Module dependency 引用android-library项目
    compile project(‘:eventbuslib‘)
    /*
      Remote binary dependency  download to local   group:name:version 
      配置远程仓库中的jar包,打包时,检查本地有没有,若没有则下载到本地。
     */
    compile ‘com.android.support:appcompat-v7:22.0.0‘
    compile ‘com.android.support:support-v4:22.0.0‘
    compile ‘com.android.support:cardview-v7:22.0.0‘
    compile ‘com.android.support:recyclerview-v7:22.0.0‘
}

 

gradle 命令区别学习:(http://www.androidchina.net/2155.html)

gradle中有一个核心概念叫任务,跟maven中的插件目标类似。
gradle的android插件提供了四个顶级任务
assemble 构建项目输出
check 运行检测和测试任务
build 运行assemble和check
clean 清理输出任务

执行任务可以通过gradle/gradlew+任务名称的方式执,执行一个顶级任务会同时执行与其依赖的任务,比如你执行

gradlew assemble

它通常会执行:

gradlew assembleDebug
gradlew assembleRelease

 

原文:http://www.cnblogs.com/yujian-bcq/p/5082658.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!