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)