Android Studio 构建脚本-gradle详解

**Android Studio 构建系统Gadle详解

  1. Gradle基本概念
  2. Android Studio中gradle与工程结构
  3. 模块中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)
最新版本可从这里进入查看(需要)
Android Studio 构建脚本-gradle详解_第1张图片


——查看已安装的gradle插件与Gradle工具版本

File -> Project Structure (快捷键 Ctrl+Shift+Alt+s ) 打开Project Structure
左侧选中Project即可看到自己工具的gradle版本与gradle插件版本
- 如图 我的gradle版本为4.1 插件版本为3.0.1
Android Studio 构建脚本-gradle详解_第2张图片



2.Android Studio中gradle与工程结构

——工程结构

1.谷歌官方文档中关于工程结构的结构图

Android Studio 构建脚本-gradle详解_第3张图片

2 创建的新工程的结构图

Android Studio 构建脚本-gradle详解_第4张图片

可能很多人刚开始接触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工程所需的几个配置

  1. 写在根部的属性
    • apply plugin: 使用的插件
    • android{} Android相关属性配置
    • dependencies{} 依赖库声明
  2. android{}
    • compileSdkVersion 编译的SDK版本 buildToolsVersion 构建工具版本
    • defaultConfig{},buildTyps{},productFlavors{},flavorDimensions(),sourceSets{},signingConfigs{}
    • 2.3
  3. dependencies
    • 3.1
    • 3.2
    • 3.3

你可能感兴趣的:(Android Studio 构建脚本-gradle详解)