标签:
buildscript { |
下面是构建Application的build.gradle的例子
apply plugin: ‘com.android.application‘ |
android{} 中定义android相关的构建选项
compileSdkVersion 表示要使用的Android sdk的版本
buildToolsVersion 表示编译工具的版本,编译工具使用SDK Manager管理(Android studio->Tools->Android->SDK Manager)
defaultConfig 用来配置基本的构建属性和manifest(AndroidManifest.xml)属性。可以配置的属性如下表所示,如果属性在defaultConfig配置,相应的AndroidManifest.xml中的设置项会被覆盖。
applicationId "com.han.myexampleapp2" applicationId属性用来标识Android application的唯一标识。
关于build.gradle中的applicationId与AndroidManifest.xml的packageName的不同,可以参考这篇文章
https://chaosleong.gitbooks.io/gradle-for-android/content/appendix/applicationid_versus_packagename.html
下表是defaultConfig可以配置的属性:
Property Name | Default value in DSL object | Default value |
versionCode | -1 | value from manifest if present |
versionName | null | value from manifest if present |
minSdkVersion | -1 | value from manifest if present |
targetSdkVersion | -1 | value from manifest if present |
applicationId | null | value from manifest if present |
testApplicationId | null | applicationId + “.test” |
testInstrumentationRunner | null | android.test.InstrumentationTestRunner |
signingConfig | null | null |
proguardFile | N/A (set only) | N/A (set only) |
proguardFiles | N/A (set only) | N/A (set only) |
buildTypes配置怎样构建和打包组件,默认情况下,gradle会构建两种类型: release和debug
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
proguardFiles 声明使用的Proguard文件,
getDefaultProguardFile(‘proguard-android.txt‘)包含了默认的Proguard配置。
在‘proguard-rules.pro‘文件中,我们可以添加自定义的proguard配置,
‘proguard-rules.pro‘文件在组件根目录下。
minifyEnabled 控制gradle在构建时是否进行代码混淆,true为构建时执行代码混淆
下表是buildTypes可以配置的属性
Property name | Default values for debug | Default values for release / other |
debuggable | true | false |
jniDebuggable | false | false |
renderscriptDebuggable | false | false |
renderscriptOptimLevel | 3 | 3 |
applicationIdSuffix | null | null |
versionNameSuffix | null | null |
signingConfig | android.signingConfigs.debug | null |
zipAlignEnabled | false | true |
minifyEnabled | false | false |
proguardFile | N/A (set only) | N/A (set only) |
proguardFiles | N/A (set only) | N/A (set only) |
dependencies元素声明了要构建的组件依赖关系。
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) 表示依赖libs目录下的所有.jar文件
compile ‘com.android.support:appcompat-v7:23.0.1‘ 标识依赖版本是23.0.1的android support库
dependencies { |
compile ‘com.android.support:support-v4:23.0.1‘ |
compile project(":lib") |
android { buildTypes { } |
android { ... defaultConfig { ... } signingConfigs { ... } buildTypes { ... } productFlavors { demo { applicationId "com.buildsystemexample.app.demo" versionName "1.0-demo" } full { applicationId "com.buildsystemexample.app.full" versionName "1.0-full" } } } |
标签:
原文地址:http://www.cnblogs.com/tonyhan/p/4819767.html