android studio使用gradle对项目进行构建(编译,运行,打包,签名,发布),gradle的核心是groovy,groovy本质是java。
常用gradle命令:gradlew -v 查看项目各种插件版本信息
------------------------------------------------------------ Gradle 5.1.1 ------------------------------------------------------------ Build time: 2019-01-10 23:05:02 UTC Revision: 3c9abb645fb83932c44e8610642393ad62116807
Kotlin DSL: 1.1.1
Kotlin: 1.3.11
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 10.0.2 ("Oracle Corporation" 10.0.2+13)
OS: Windows 10 10.0 amd64
gradlew -clean 清理项目(删除build文件夹下内容)
graldew -build 构建项目(检查依赖编译打包),打包debug和release
gralew -assembleDebug 打包调试版本
gralew -assembleRelease 打包发布版本
一个android项目有三类gradle脚本文件,project(配置项目对应gradle插件版本),module(包含application和module),settings(配置要编译的模块),如下图所示。
project 配置android项目对象使用的gradle版本,kotlin版本等(// Top-level build file where you can add configuration options common to all sub-projects/modules. 顶级构建文件里可以添加所有子项目和子模块公用的配置项),具体配置如下:
buildscript {
ext.kotlin_version ='1.2.10'
ext.kotlin_version ='1.2.51'
repositories {
google()
jcenter()
}
dependencies {
classpath'com.android.tools.build:gradle:3.2.1'
classpath"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url'https://jitpack.io' }
}
}
task createDir{
mkdir("lily/learning")
}
task clean(type: Delete) {
delete rootProject.buildDir
}
module配置应用模块的android信息,包含编译版本,默认配置,构建类型,依赖和库等信息。默认配置可以配置applicationId(包名),支持的最小版本,目标版本,版本号等默认配置信息,编译版本可以配置默认信息,依赖可以配置依赖的库,主模块必须用applyplugin:'com.android.application' 插件开头,子模块必须用applyplugin:'com.android.library'插件开头,举例配置如下:
applyplugin:'com.android.application'
applyplugin:'kotlin-android'
applyplugin:'kotlin-android-extensions'
android {
compileSdkVersion27
defaultConfig {
applicationId"com.xfhy.deepnight"
minSdkVersion19
targetSdkVersion27
versionCode1
versionName"1.0"
}
buildTypes {
release {
minifyEnabledfalse
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'],dir:'libs')
implementation'com.github.xfhy:BaseRecyclerViewAdapter:v1.2'
implementation project(':deeplibrary')
}
settings(Project settings) 配置项目包含的所有模块include':主模块',':子模块',举例配置如下
include':app',':deeplibrary'。
除了gradle脚本文件还有对应的属性文件,1)gradle.properties可以配置守护进程,并行编译,是否启用新的孵化模式(默认最好关闭)是否使用过期的ndk等信息。2)local.properties 可以配置sdk,ndk的路徑(SDK Location)
3)gradle.properties配置