1. Gradle
Gradle是一个依赖管理工具,也是一个编程框架。基于Groovy语言,面向Java应用为主,摒弃了基于XML的繁琐配置,采用的是一种基于Groovy的内部领域特定(DSL)语言,该工具可以完成app的编译打包等工作。
默认下载目录
Windows下会默认下载到如下路径:
C:\Users\用户名\.gradle\wrapper\dists
下载完成后,可以看到该目录下会有gradle-x.xx-all的文件夹,例如我现在就有如下几个版本的gradle文件。
(这里的gradle-4.1,指的是版本,它会根据你的AS版本自动生成,此时我们可以去网上下载一个gradle-4.1-all.zip压缩包,然后放到该路径下并且进行解压,注意一定要放到这个随机生成的一长串字符的文件夹下面,如下图
)
项目中Gradle文件
一个完整的项目一般都包含如下几个与Gradle相关的文件:
app下的build.gradle
该gradle文件是Module的gradle配置文件,也是整个项目中最重要的gradle配置文件。
gradle下的gradle-wrapper.properties
在项目的gradle目录下主要有两个文件,主要看gradle-wrapper.properties这个文件下的内容:
#Tue Nov 28 15:51:05 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-3.3-all.zip
这里声明了gradle的目录和下载路径以及项目使用的gradle版本,这些默认值一般都不会改。如果想修改gradle版本,可以直接在这里修改,并点击Sync Now。
也可以到Project Structure(可以通过快捷键Ctrl+Alt+Shift+s进入)去查看和修改:
项目下的build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
这些代码都是自动生成的,通常情况下不需要修改这个文件中的内容。两处repositories闭包中都声明了jcenter(),jcenter是一个代码托管仓库,从而使得我们在项目中可以引用任何jcenter上的开源项目。dependencies闭包中使用classpath声明了一个Gradle插件,因为Gradle并不是专门为构建Android项目而开发的,Java、C++等很多种项目都可以使用Gradle来构建。如果想要使用Gradle来构建Android项目,则需要声明com.android.tools.build:gradle:2.3.3这个插件,其中,后面是插件的版本号。
项目下的settings.gradle
include ':app'
整个项目中的module工程,如果还有其他的module则按照’:module名称’的格式添加即可。
2. compileSdkVersion
下载路径:
compileSdkVersion的路径在你所安装SDK目录下的platforms下。
根据项目工程的需要,可以到app下的build.gradle去修改SDK版本。还可以进入如下界面去修改SDK的指定路径。
3. buildToolsVersion
下载路径:
builtToolsVersion的路径在你所安装SDK目录下的build-tools下。
根据项目工程的需要,可以到app下的build.gradle去修改buildTools版本。
看别人的开源项目时,要确保gradle版本,buildTools版本以及 compile sdk 版本跟你本地一致,这样你就可以进行编译、打包、安装了。
4.
buildToolsVersion的版本需要>=CompileSdkVersion,可以用高版本的build-tool去构建一个低版本的sdk工具,例如:
/**
* android 编译基本环境配置
*/
compileSdkVersion = 23
buildToolsVersion = "26.0.0"