笔记
1.com.android.build.gradle.AppExtension 这个类需要好好看下它的源码。
src目录下的AndroidTest、main、test分别是3个SourceSet.
2.compileSdkVersion
因为gradle基础知识中,方法的括号和分号可以省略
然后设置这个参数有两个重载的方法 一个传int值 一个传string值
所以可以设置为
compileSdkVersion 23
或者 compileSdkVersion “android-23”
应该还有这种方法
android.compileSdkVersion = 23
android.compileSdkVersion = “android-23”
3.buildToolsVersion
安卓构建工具版本
在SDK目录看到,是一个工具包,包括appt,dex等工具
赋值只有传入String类型
buildToolsVersion “23.0.1”
或者
android.buildToolsVersion = “23.0.1”
4.defaultConfig
也是一个productFlavor,如果不单独对某个Flavor做配置的话,那就会使用默认的配置---defaultConfig
applicationId 包名---默认为null
minSDKVersion 本应用支持的最低API Level ----接收的是一个int值 api level,也可以接收字符串赋值 不过参数是code name 比如:‘Nougat’ 'Marshmallow'
targetSdkVersion 针对还是基于哪个API Level 开发的-----如果没有配置,直接从manifest中读取值
versionCode 应用内部版本号,主要用于App升级---int型
versionName 用户可见。------String型
以上,所有配置对应的都是ProductFlavor类里的方法或属性
看来这个类 也得好好看看-----ProductFlavor
5.buildTypes
是一个域对象,里面有release debug,在buildTypes{}里也可以新增多个我们需要构建的类型。
minifyEnabled false //minifyEnabled主要用来控制是否运行混淆的。
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //混淆文件 左边是两个文件
//Files嘛 可以传多个文件
signingConfig signingConfigs.forRelease //签名文件
6.testApplicationId---接收的是String值
testInstrumentationRunner 用于配置单元测试时使用的Runner
SigningConfig --配置默认的签名信息,对生成的App签名。也是ProductFlavor的一个属性
proguardFile -----配置proguard文件
proguardFiles -----配置proguard文件---可以接收多个文件
7.配置签名信息
app debug模式 SDK为debug模式提供了一个默认的签名证书,可以直接使用。
release版本 需要开发者配置签名文件。
一个SigningConfig就是一个签名配置
signingConfigs {//这个变量可在project structure里面配置 jks文件在build->create signed apk forRelease { keyAlias 'release' keyPassword 'release' storeFile file('E:/assvnspace/GradleDemo/configForRelease.jks')) storePassword 'release' //storeType 签名证书的类型 //storeFile file('xxxx.xxxx') 说明xxxx.xxxx跟build.gradle是在同一个目录 }
默认的debug.keystore文件在 C:\Users\DELL\.android 下面
我们还可以在buildTypes里面对release/debug类型,分别配置单独的签名
如:
release{
signingConfig signingConfigs.release
}
然后特别的渠道也可以单独配置单独的签名
8.构建应用类型
applicationIdSuffix:是buildType的一个属性,用于配置基于默认applicationId的后缀。比如defaultConfig中的applicationId为
xxxxx.xxxxx ,然后在buildType中的applicationIdSuffix为.debug。那么构建的debug apk的包名就是xxxxxx.xxxxxx.debug。
8.1.debuggable
也是buildType的一个属性,用于配置是否生成一个可供调试的apk.值为false or true.
8.2.jniDebuggable
也是buildType的一个属性,用于配置是否生成一个可供调试JNI代码的apk。接受boolean类型的值。
8.3.minifyEnabled
也是buildType的一个属性,用于配置是否启用Proguard混淆,接受一个boolean类型的值。
8.4.multiDexEnabled
也是buildType的一个属性,用于配置该buildType是否启用自动拆分多个dex的功能。一般如果应用程序中代码太多,超过65535个方法时,拆分为多个dex的处理。接受一个boolean型参数。
8.5.proguardFile
是buildType的一个方法,用于配置proguard混淆使用的配置文件。
8.6.proguardFiles
是buildType的一个方法,用于配置proguard混淆使用的配置文件。可以同时配置多个文件。
8.7.shrinkResources
是buildType的一个属性,用于配置是否自动清理未使用的资源,默认为false。
8.8.sigingConfig
配置该buildType使用的签名配置