Android Studio 构建脚本-gradle详解
**Android Studio 构建系统Gadle详解
- Gradle基本概念
- Android Studio中gradle与工程结构
- 模块中build.gradle标签介绍与详细写法
首先贴一下Android Studio Gradle plugin的官方链接 喜欢看官方文档的可以进去看看
https://developer.android.google.cn/studio/releases/gradle-plugin.html#updating-gradle
1:Gradle基本概念
——Android Studio中的gradle分为两部分
- 1.Gradle构建工具
2.Android Studio中的构建插件—gradle
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。
官网Gradle构建工具官网- Android Studio的构建系统正是基于gradle,并且谷歌在gradle插件中添加了一些适用于Android的特性,虽然Android插件通常是跟AndroidStudio同步更新的,但同时它也可以独立运行和进行升级
在AndroidStudio中 gradle插件与gradle构建工具的版本必须一一对应,如果不对应编译时会报错,无法成功通过编译
gradle插件与gradle构建版本对应版本如下图(最新插件版本3.0.1,对应最新gradle版本4.1 写于2017-12-22)
最新版本可从这里进入查看(需要*)
——查看已安装的gradle插件与Gradle工具版本
File -> Project Structure (快捷键 Ctrl+Shift+Alt+s ) 打开Project Structure
左侧选中Project即可看到自己工具的gradle版本与gradle插件版本
- 如图 我的gradle版本为4.1 插件版本为3.0.1
2.Android Studio中gradle与工程结构
——工程结构
1.谷歌官方文档中关于工程结构的结构图
2 创建的新工程的结构图
可能很多人刚开始接触studio时,对于BuildScript下面的两个build.gradle文件不太明白,一模一样的文件名放在同一个目录下给人一种混乱的感觉(至少我当时是这么头疼的)
1、 在一个工程中可以有多个build.gradle配置文件
2、 工程根目录存在一个build.gradle配置,用于对整个工程的配置(仓库,插件)
3、每个模块(module)内有一个build.gradle文件,对应该模块纬度的相关编译配置(模块类型、构建方式、用于编译的SDK版本、该模块所依赖的库等等)
所以: 一个工程中 build.gradle文件个数 = module个数 + 1
3: 模块中build.gradle属性介绍与详细写法
创建新项目时Android Studio会自动给工程添加所必须的配置
- 根目录下的build.gradle
- 模块内的build.gradle
此处主要讲的是模块内gradle脚本一些常用的属性配置
创建新工程时,我们看到工程内会自动生成一个build.gradle文件如下
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.lee.gradledemo"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets{
main{
jniLibs.srcDirs = ["libs","armeabi"]
jniLibs.srcDir("libs")
}
}
}
allprojects {
repositories {
google()
jcenter()
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
其中包括了构建一个Android工程所需的几个配置
- 写在根部的属性
- apply plugin: 使用的插件
- android{} Android相关属性配置
- dependencies{} 依赖库声明
- android{}
- compileSdkVersion 编译的SDK版本 buildToolsVersion 构建工具版本
- defaultConfig{},buildTyps{},productFlavors{},flavorDimensions(),sourceSets{},signingConfigs{}
- 2.3
- dependencies
- 3.1
- 3.2
- 3.3
下一篇: 【力扣】142. 环形链表 II
推荐阅读
-
Android studio gradle 配置阿里镜像
-
Android Studio 构建脚本-gradle详解
-
android studio gradle/gradle plugin 配置详解,解决"Gradle sync failed: Unknown host 'services.gradle.org'."
-
Android Studio Gradle编译 参数配置
-
Android Studio中修改gradle插件版本和Gradle版本
-
Gradle,Groovy与Android Studio中的Gradle详解
-
Android 使用Gradle进行多渠道打包详解
-
Gradle在Android Studio中的简单使用
-
Gradle在Android Studio中的应用技巧
-
android studio gradle 版本更新