AS中APP所有的配置尽在一个build.gradle文件中,打包的时候也是解析build.gralde文件来打包的,所以搞懂build.gradle文件是至关重要的,结构如下所示

1、apply plugin用来指定用的是哪个插件,取值有:
- com.android.application:Android APP插件(打包得到的是.apk文件)
- com.android.library:Android库插件(打包得到的是.aar文件)
2、android用来指定Android打包插件的相关属性,其包含如下节点
- compileSdkVersion(apiLevel):设置编译时用的Android版本
- buildToolsVersion(buildToolsVersionName):设置编译时使用的构建工具的版本
- defaultConfig:设置一些默认属性,其可用属性是buildTypes和ProductFlavors之和
- sourceSets:配置相关源文件的位置,当你的项目的目录结构跟默认的有区别但又不想改的时候sourceSets就派上用场了
-
- aidl 设置aidi的目录
- assets 设置assets资源目录
- compileConfigurationName The name of the compile configuration for this source set.
- java Java源代码目录
- jni JNI代码目录
- jniLibs 已编译好的JNI库目录
- manifest 指定清单文件
- name The name of this source set.
- packageConfigurationName The name of the runtime configuration for this source set.
- providedConfigurationName The name of the compiled-only configuration for this source set.
- renderscript Renderscript源代码目录
- res 资源目录
- setRoot(path) 根目录
- signingConfigs:配置签名信息
-
- keyAlias 签名的别名
- keyPassword 密码
- storeFile 签名文件的路径
- storePassword 签名密码
- storeType 类型
- keyAlias 签名的别名
- buildTypes:配置构建类型,可打出不同类型的包,默认有debug和release两种,你还可以在增加N种
-
- applicationIdSuffix 修改applicationId,在默认applicationId的基础上加后缀。在buildType中修改applicationId时只能加后缀,不能完全修改
- debuggable 设置是否生成debug版的APK
- jniDebuggable 设置生成的APK是否支持调试本地代码
- minifyEnabled 设置是否执行代码混淆
- multiDexEnabled Whether Multi-Dex is enabled for this variant.
- renderscriptDebuggable 设置生成的APK是否支持调试RenderScript代码
- renderscriptOptimLevel
- applicationIdSuffix 修改applicationId,在默认applicationId的基础上加后缀。在buildType中修改applicationId时只能加后缀,不能完全修改