日积月累--Gradle的使用

前言

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

我对Gradle的理解

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

TypeDescription
AppExtensionandroid extension for com.android.application projects.
LibraryExtensionandroid extension for com.android.library projects.
TestExtensionandroid 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值