Gradle
- Gradle支持多工程构建和局部构建
- Gradle支持远程或本地依赖管理:
- 从远程maven仓
- nexus私服
- ivy仓库以及本地仓库依赖
- Gradle与Ant、Naven兼容
- Gradle适用灵活
- Gradle可轻松前一:适用任何结构的工程,可以在同一个开发平台平行构建原工程和Gradle工程
- Gradle可以更容易的集成到自动花构建系统
local.properties
该文件位于项目根目录,一般用来配置本地环境属性,如sdk!
sdk.dir=/Users/zhangsan/Library/Android/sdk
settings.gradle
该文件位于项目跟目录,其中包含项目所包含的Module
include ':app'
include ':library'
build.gradle
该文件位于项目根目录,用于定义适用项目所有模块的构建配置
buildscript { //定义项目中所有哦模块公用的Gradle 存储区和依赖区
repositories {//依赖库的路径
google()
jcenter()
}
dependencies {//添加插件
classpath 'com.android.tools.build:gradle:3.2.0'
}
}
allprojects {
repositories { //项目中依赖库的路径
jcenter()
google()
mavenCentral()
}
}
//打包钱执行clean任务
task clean(type:Delete){
delete rootProject.buildDir
}
app Module下的buil.gradle
该文件位于项目的Module目录下,用于配置适用于所在模块的构建配置
//插件
apply plugin: 'com.android.application'//这标表示此module是一个可运行的应用程序,可以直接run的
apply plugin:'com.android.library'//这表示此module是个依赖库的工程,不可直接run
apply plugin:'java'//表示此module是一个java项目,在此module中只能适用java的api
apply from: 'xxx.gradle'//引用gradle
android {
compileSdkVersion 27 //编译sdk版本
buildToolsVersion "27.0.1" //编译时采用的构建工具版本
//defaultConfig闭包参数,可以覆盖Manifest.xml文件,配置应用的版本
defaultConfig {
applicationId 'com.example.demo' //唯一应用ID<至少包含两段,即一个圆点;字母数字下划线;字母开头> 一般情况下和包名相同,但也可以修改报名,和manifest文件保持一致就行
minSdkVersion 19 // 可运行的最小系统版本
targetSdkVersion 26 // 可运行的最高系统版本
versionCode 1 // 版本号
versionName "1.0" // 版本名
multiDexEnabled true //方法数超过64k ,minsdk>=21 只需配置这里,否则还要添加依赖包如下;然后配置文件重命名MultiDexApplication;或者继承MultiDexApplication;或者在自己的application中重写attachBaseContext,然后MultiDex.install(this);
ndk { //ndk过滤so包(以下为只支持v7包);如果error,在gradle.properties文件中添加Android.useDeprecatedNdk=true
abiFilters "armeabi-v7a"
}
//buildTypes闭包参数说明,默认有release和debug两种,默认只显示release方式,一般是正式发布的包
buildTypes{
release{
minifyEnabled false //混淆开关
//指定混淆文件及混淆文件规则配置文件的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}
dependencies{
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])//编译文件树(编译依赖libs目录下所有jar)
implementation project(':Name') //是将另一个module进行编译并打包
implementation (name:'xxx', ext:'jar')
implementation 'androidx.appcompat:appcompat:1.0.2'
}