原文发于微信公众号 jzman-blog,欢迎关注交流。java
经过前面几篇文章学习了 Gradle 基础知识以及 Gradle 插件相关的知识,关于 Gradle 及其插件相关知识请先阅读下面几篇文章:android
学习 Gradle 的目的主要是为了更好的在 Android 开发中使用 Gradle,这篇文章的主要内容是 Android Gradle 插件的相关知识,主要内容以下:微信
顾名思义,Android Gradle 插件就是一个用于 Android 构建项目的一个 Gradle 插件,该插件有 Google Android 开发团队开发,并且 Android 开发 IDE Android Studio 就采用 Gradle 构建项目,下面是 Android Gradle 插件的优点:app
Android 插件的分类是根据 Android 工程的属性进行分类的,Android 工程分为三类,具体以下:工具
对应的就有三种不一样的 Android Gradle 插件,三类插件分别是 App 插件、Library 插件和 Test 插件,其插件 id 以下:post
//App插件id
com.android.application
//Library插件id
com.android.library
//Test插件
com.android.test
复制代码
使用最多的确定就是 App 插件和 Library 插件,使用这几个插件在 Android Studio 中就能够构建 Android 工程了。学习
Gradle 插件使用时以插件的 id 做为惟一标识,若是是第三方的插件,还必须在 buildscript{} 中指定其 classpath,Android Gradle 插件就属于第三方插件,使用时要指定其 classpath,Android Gradle 插件托管到 jcenter 上,因此使用时要指定对应仓库,具体参考以下:测试
buildscript {
//配置插件仓库
repositories {
google()
jcenter()
}
//配置依赖
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
}
复制代码
配置好第三方插件的仓库和依赖,而后使用 apply 使用该插件,具体以下:gradle
//使用App插件
apply plugin: 'com.android.application'
android {
//编译所依赖的Android SDK的版本
compileSdkVersion 26
//构建工具的版本
buildToolsVersion '26.0.2'
//...
}
dependencies {
//...
}
复制代码
在 Android 开发中通常将插件的仓库和依赖配置到根项目下的 build.gradle 文件中,其子 Module 项目将不须要在配置了,可直接使用,这里仅仅是 App 插件的使用,固然 Libray 插件的使用和 Test 插件的使用也是同样,使用时指定对应的 plugin id 便可。ui
下面是 Android Studio 建立 Android 工程的 Module 的目录,这也是 Android 工程的基本目录结构,参考以下:
app
├─libs
├─proguard-rules.pro
├─build.gradle
└─src
├─androidTest
│ └─java
│
├─main
│ ├─AndroidManifest.xml
│ ├─java
│ └─res
│
└─test
└─java
复制代码
上述目录中 src 下面的 main、androidTest、test 是三个 SourceSet,main 表示 App 的源代码及资源目录,android 和 test 表示 Android 相关测试代码目录,此外 proguard-rules.pro 是当前项目的混淆文件,libs 用于存放 jar、aar 等库文件,build。gradle 文件用于当前配置文件。
为了介绍 Android Gradle 插件基本配置,使用 Android Studio 建立一个 Android 项目,下面的 app 的一个配置文件,具体以下:
//使用Android Gradle插件
apply plugin: 'com.android.application'
//android{}是Android工程配置的入口
android {
/** * 指定编译依赖的Android SDK的版本,同 * compileSdkVersion android-26 * android.compileSdkVersion = 26 * android.compileSdkVersion = 'android-26' */
compileSdkVersion 26
//指定构建工具的版本,也可使用属性值buildToolsVersion设置其版本
buildToolsVersion '26.0.2'
/** * 默认配置,defaultConfig是一个ProductFlavor,可根据不一样需求生成不一样的Apk * 若是不自定义ProductFlavor进行单独配置,则该productFlavor会采用默认配置生成Apk * 这些具体配置,如applicationID都是ProductFlavor的属性 */
defaultConfig {
//配置惟一包名
applicationId "com.manu.androidgradleplugin"
//最低支持的Android系统版本
minSdkVersion 19
//配置应用的目标Android系统版本
targetSdkVersion 26
//用于控制应用升级的版本号
versionCode 1
//用户看到的版本名称
versionName "1.0"
//测试时用到
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
/** * buildTypes是一个NamedDomainObjectContainer类型,是一个域对象,相似SourceSet(源集) * buildTypes中可自定义须要构建的类型,Gradle会自动建立一个相应的BuildType,如默认的release、debug */
buildTypes {
release {
//设置是否为构建类型启用混淆
minifyEnabled false
//若是启用混淆则使用相应的混淆文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors {
}
}
//依赖配置
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.1.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation files('libs/plugin.jar') } 复制代码
上述配置文件中已经标注了一些 Android Gradle 插件须要配置的地方,也算是对 Android Gradle 插件及项目配置文件 build.gradle 的一次理解与学习,关于 Android Gradle 插件的基本配置就到此为止,之后陆续补充。
Android Gradle 插件基于 Android Gradle 插件,Android Gradle 插件中包含了 Java Gradle 插件的一些任务,如 assembile、check、build等任务,此外, Android Gradle 插件还添加一些新任务,如 connectedCheck、deviceCheck、lint、install、unInstall 等 Android 开发特有的任务,可在 Android Studio 上查看 Android 开发中一些任务,选中 Android Studio 右侧标签 Gradle 就可查看,参考以下:
这篇算是初步从学习 Gradle 的角度了解了 Android Gradle 插件相关知识,后面的文章中会继续 Android Gradle 的学习。能够关注公众号:零点小筑(jzman-blog),一块儿交流学习。