Android Studio build.gradle详解
Posted 巷子里的旧少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio build.gradle详解相关的知识,希望对你有一定的参考价值。
apply plugin用来指定用的是哪个插件,取值有:
com.android.application:Android APP插件(打包得到的是.apk文件)
com.android.library:Android库插件(打包得到的是.aar文件)
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 类型 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 设置RenderScript优化级别
signingConfig 设置签名信息 versionNameSuffix
修改版本名称,在默认版本名称的基础上加后缀。在buildType中修改版本名称时只能加后缀,不能完全修改 zipAlignEnabled
设置是否对APK包执行ZIP对齐优化 proguardFile(proguardFile) 添加一个混淆文件
proguardFiles(proguardFileArray) 添加多个混淆文件
setProguardFiles(proguardFileIterable) 设置多个混淆文件
productFlavors:配置不同风格的APP,在buildTypes的基础上还可以让每一个类型的APP拥有不同的风格,所以最终打出的APK的数量就是buildTypes乘以productFlavors
applicationId 设置应用ID multiDexEnabled Whether Multi-Dex is enabled for
this variant.signingConfig Signing config used by this product flavor.
testApplicationId 设置测试时的应用ID testFunctionalTest See instrumentation.
testHandleProfiling See instrumentation. testInstrumentationRunner
Test instrumentation runner class name. versionCode 设置版本号 versionName
设置版本名称 minSdkVersion(int minSdkVersion) 设置兼容的最小SDK版本
minSdkVersion(String minSdkVersion) 设置兼容的最小版本
proguardFile(proguardFile) 添加一个混淆文件 proguardFiles(proguardFileArray)
添加多个混淆文件 setProguardFiles(proguardFileIterable) 设置多个混淆文件
targetSdkVersion(int targetSdkVersion) 设置目标SDK版本
targetSdkVersion(String targetSdkVersion) 设置目标SDK版本
testOptions:设置测试相关属性
reportDir 设置测试报告的目录
resultsDir 设置测试结果的目录
aaptOptions:设置AAPT的属性
compileOptions:设置编译的相关属性
sourceCompatibility Language level of the source code.
targetCompatibility Version of the generated Java bytecode.
packagingOptions:设置APK包的相关属性
excludes The list of excluded paths. pickFirsts The list of paths
where the first occurrence is packaged in the APK. exclude(path) Adds
an excluded paths. pickFirst(path) Adds a firstPick path. First pick
paths do get packaged in the APK, but only the first occurrence gets
packaged. jacoco:设置JaCoCo的相关属性
version 设置JaCoCo的版本
splits:设置如何拆分APK(比如你想拆分成arm版和x86版)
abi ABI settings. abiFilters The list of ABI filters used for
multi-apk. density Density settings. densityFilters The list of
Density filters used for multi-apk. dependencies:配置依赖
参考文档:
最权威的官方打包指南(需要翻墙)http://tools.android.com/tech-docs/new-build-system
Android打包插件API(在线版)http://apdr.qiniudn.com/index.html
文/浮游大虾(简书作者)
原文链接:http://www.jianshu.com/p/7e3a69dbd20e
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
以上是关于Android Studio build.gradle详解的主要内容,如果未能解决你的问题,请参考以下文章
Android 因 minifyEnabled 和 AWS 调用而崩溃
无法在 android 上使用改造显示 MySQL JSON 数据
AndroidStudio 打包 Android项目 成 aar