一、android工程配置
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
}
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 23 // 还可以写成compileSdkVersion 'android-23', 原来的写法其实就是一个方法
// public void compileSdkVersion(String version) {
// checkWritability();
// this.target = version
// }
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "org.flysnow.app.test" // 配置的包名
minSdkVersion 14
targetSdkVersion 23
versionCode 1 // 应用内部版本号,用于上级app升级
versionName "1.0"
}
buildTypes { // 是一个NamedDomainObjectContainer类型,是一个域对象
// 可以再其中新增任意多个需要构建的类型,比如debug
release {
minifyEnabled false // 是否启动混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// 下面是混淆文件的加载
}
}
}
// android gradle工程都是在android{}中的,唯一入口
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testComplie 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:28.0.0'
compile 'com.android.support:design:23.0.0'
}
- android gradle 工程具体实现是com.android.build,gradle.AppExtension,是Project的一个扩展,原型为
extension = project.extension.create('android, getExtensionClass(), (PojectInternal)project, instantiator, androidBuilder, sdkHandler, buildTypeContainer, productFlavorContainer, signingConfigContainer, extraModelInfo, isLibrary())
二、defaultConfig配置
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "org,flysnow.app.example74" // 这是ProductFlavor的一个属性,用于指定生成App的包名
// 在构建的时候,会从AndroidManifest.xml进行读取,也就是manifest标签的package属性值
minSdkVersion 14
targetSdkVersion 23
verionCode 1 // 用于配置APP的内部版本号,是一个整数值,通常用于版本升级
versionName "1.0" // 用于配置APP的版本名称如V1.0.0,这个是外部使用,一起配合使用
}
/**
* minSdkVersion是ProductFlavor的一个方法,其原型为
*
* public void minSdkVersion(int minSdkVersion) {
* setMinSdkVersion(minSdkVersion);
* }
*
* 还可以表示为
* public void MinSdkVersion(@Nullable String minSdkVersion) {
* setMinSdkVersion(getApiVersion(minSdkVersion));
* }
* // 这里的字符串是有特定的指定对应的如图6.1
*/
}
三、源码