您的位置:首页 > 移动开发 > Android开发

日积月累--Gradle的使用

2016-01-04 11:05 671 查看

前言

本文用于记录对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的学习,可以分成三个层次:

入门(能看懂)

会用,能写

插件的开发

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

Gradle的基本结构解析

以下部分内容知识译自官方文档Configuring Gradle Builds 链接被墙,大家可以查看离线的文档。本地文档位置为:~/sdk/docs/tools/building/configuring-gradle.html

除了官方文档外,再推荐几篇写的不错的关于gradle的文章:

Android Studio系列教程四–Gradle基础

拥抱Android Studio:从ADT到Android Studio

拥抱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官方的一些文档

Google官方关于android的gradle插件文档Android Plugin DSL Reference

Gradle官方文档主页:Gradle Documentation包含三部分的内容:

用户手册: User Guide 提供一些关于Gradle的基础知识和特性的讲解,适合入门者。

索引: DSL Reference 针对经常用到gradle构建工具的用户,提供的索引指南.

API文档API Reference 提供给插件开发者和高级用户使用的api文档。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gradle Android