日积月累--Gradle的使用

来源:互联网 发布:cnc编程用什么软件 编辑:程序博客网 时间:2024/05/22 02:00

前言

本文用于记录对gradle使用的一些新知识。以前记录的都写在了不同的学习笔记了,阅读起来十分的不方便。在此汇总,不断添加。

我对Gradle的理解

Gradle是基于Groovy脚本语言的一个应用构建工具。AndroidStudio中应用的构建用到了Google开发的Gradle plugin,共三个分别为:

Type Description AppExtension android extension for com.android.application projects. LibraryExtension android extension for com.android.library projects. TestExtension android extension for com.android.test projects.

对于gradle的学习,可以分成三个层次:

  1. 入门(能看懂)
  2. 会用,能写
  3. 插件的开发

作为一个普通的android开发者,能看懂足以,也就是第一阶段,这个很容易满足。达到第二个层级,就有些难度了,这需要你对Groovy有一个深入的了解,对Google官方的插件会用。对于第三个层次,需要你对Gradle构建框架有一个清晰的认识。以上仅仅是个人理解,不当之处,还请指正。

Gradle的基本结构解析

以下部分内容知识译自官方文档Configuring Gradle Builds 链接被墙,大家可以查看离线的文档。本地文档位置为:~/sdk/docs/tools/building/configuring-gradle.html
除了官方文档外,再推荐几篇写的不错的关于gradle的文章:

  1. Android Studio系列教程四–Gradle基础
  2. 拥抱Android Studio:从ADT到Android Studio
  3. 拥抱Android Studio(二):Android Studio与Gradle深入

项目的build.gradle的基本结构解析

buildscript {    repositories {        jcenter()     //这是构建插件所使用的远程库    }    dependencies {        classpath 'com.android.tools.build:gradle:2.0.0-alpha3'  //这是项目所使用的 Android gradle 版本    }}allprojects {    repositories {        jcenter()  //这是使用远程库依赖的时候,远程库    }}task clean(type: Delete) {    delete rootProject.buildDir}

moudle的build.gradle解析

apply plugin: ‘com.android.application’–这是android官方插件,可以参考官方文档(这个文档很重要):Android Plugin DSL Reference,build.gradle出现的那些方法,字段等都来源于这个插件。我们可以将这个插件理解为Gradle构建工具框架。

apply plugin: 'com.android.application' //构建工具插件,这个插件是android官方写的。此外还有com.android.libilary插件。/*这个配置需要放在顶部,并且不同的plugin对应不同的android{..}*/android {//configures all the Android-specific build options://用于配置Android指定的必须的构建选项    compileSdkVersion 19  //用于编译的sdk版本;    buildToolsVersion "19.0.0"  //构建工具版本    defaultConfig {   /* defaultConfig是核心配置,实质是重写了ant中AndroidManifest.xml中的一些配置。.*/        minSdkVersion 8   //最小支持的sdk版本        targetSdkVersion 19  //目标支持sdk版本        versionCode 1      //版本代号        versionName "1.0"    //版本名称    }    buildTypes {    /*buildTypes元素控制着怎样去构建你的app。默认的,构建系统定义两种类型:debug和release版。debug版的构建类型包含了调试符号和debug.key的签名。release构建版默认的不会被签名。下面的得这个例子使用了构建文件ProGuard来配置release版。*/        release {        minifyEnabled true  //是否需要混淆代码            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  //用于混淆的配置文件        }    }}dependencies {/*The dependencies element is outside and after the android element. This element declares the dependencies for this module. Dependencies are covered in the following sections.dependencies元素,不在android元素中。这个元素声明了独立于项目的内容。*/    compile project(":lib")   //引用项目的包    compile 'com.android.support:appcompat-v7:19.0.1'  //引用远程包    compile fileTree(dir: 'libs', include: ['*.jar'])//引用moudle的本地包}

Gradle新知识

通过配置build.gradle来访问一些参数。具体可通过BuildConfig来进行访问

例如:

defaultConfig { 
buildConfigField "String","TWITTER_TOKEN",'"SDASJHDKAJSK"'
}
buildTypes {
debug {
buildConfigField "String","API_URL",'"http://api.dev.com/"'
buildConfigField "boolean", "REPORT_CRASHES", "true"
}
release {
buildConfigField "String","API_URL",'"http://api.prod.com/"'
buildConfigField "boolean", "REPORT_CRASHES", "false"
}
}

可以从BuildConfig的final BuildConfig.TWITTER_TOKEN,BuildConfig.REPORT_CRASHES与BuildConfig.API_URL进行访问,后两个根据所在的build类不同也会有差异。
以上知识来源于: 受用不尽的Gradle使用方法与技巧

Gradle官方的一些文档

  1. Google官方关于android的gradle插件文档Android Plugin DSL Reference
  2. Gradle官方文档主页:Gradle Documentation包含三部分的内容:
    1. 用户手册: User Guide 提供一些关于Gradle的基础知识和特性的讲解,适合入门者。
    2. 索引: DSL Reference 针对经常用到gradle构建工具的用户,提供的索引指南.
    3. API文档API Reference 提供给插件开发者和高级用户使用的api文档。
1 0