前言

上一期我们熟悉了:Gradle是什么,怎样和AS配合使用。

 

这一期我们来看看Gradle命令和配置。

本文环境:window 10, as 3.1.3,gradle plugin 3.1.3,gradle 4.4。

1,环境变量

android gradle 自动执行 android gradle教程_Gradle

当没有配置环境变量时,只能执行命令 "gradlew xxxxxx";

配置方法:系统属性-->环境变量-->path (我的路径为C:\Program Files\Android\Android Studio\gradle\gradle-4.4\bin)

检查:

android gradle 自动执行 android gradle教程_android gradle 自动执行_02

这时候就可以使用命令 "gradle xxxxxx"了。

2,基本命令


所有命令都是在终端里执行,并且必须要切换到所在项目的根目录下执行:


gradlew -v 版本号
gradlew clean 清除9GAG/app目录下的build文件夹
gradlew build 检查依赖并编译打包


gradlew assembleDebug 编译并打Debug包
gradlew assembleRelease 编译并打Release的包


gradle clean 等等




其中 assembleDebug = assemble + Debug ;assembleRelease = assemble + Release ;Debug和Release动态修改,具体见下文”配置“

2,基本配置


本文介绍项目中最重要的配置文件: MyApplicationTest/app/build.gradle


全新的项目会包含三个部分:

a,最顶部的apply plugin声明;

b,android {} 节点;

c,dependencies {} 节点。

apply plugin 声明:


apply plugin: 'com.android.application'

代表该项目是一个 Android 项目,而且一个 Android 项目只有一句这个声明;

apply plugin: 'com.android.library'

代表该项目被引用的一些 module,可以理解成通过源码的方式引用一些 android library。


dependencies 节点:

android gradle 自动执行 android gradle教程_Android_03

其中api fileTree(dir: 'libs', include: ['*.jar']) ,意思是编译 libs 目录下的所有 jar 包,当然你可以更改这个目录。

Gradle以前的版本 "api"为"compile"。

第二种依赖,一般是放在 jcenter 和 maven 仓库的,这个可以在项目根目录下的 build.gradle 指定远程仓库地址,甚至可以在本地搭建一个私有仓库,然后指定本地仓库地址。  

android 节点:  

android gradle 自动执行 android gradle教程_Android_04

小技巧:可在根目录的 build.gradle 中设置:

android gradle 自动执行 android gradle教程_Gradle_05

 

然后xx/app/build.gradle 和 module 中的 



compileSdkVersion rootProject.ext.compileSdkVersion...


等等就可以统一配置,避免主包和依赖包,版本不统一等冲突问题。

android gradle 自动执行 android gradle教程_Android_06

注释写的很明确了。

讲一下 ”buildTypes“:意为编译类型,这里声明了 debug 和 release 两种类型,当然你也可以声明其他类型,名字随意取,可以看到 debug 和 release 两种类型签名所用的配置不一样,这个配置具体详细也就是在上部分 signingConfigs 节点指定的,那里面的一些密码信息是在你生成 keystore 文件时设置的。

那么命令行打包:如果你 buildTypes 定义了一个 abc 的类型,那你就会有一个 gradlew assembleAbc 的 task 可以执行。

3,其他配置


android gradle 自动执行 android gradle教程_Android_07

android gradle 自动执行 android gradle教程_android_08


等等

4,多渠道打包

android 节点中

android gradle 自动执行 android gradle教程_Gradle_09

AndroidManifest.xml中

android gradle 自动执行 android gradle教程_android gradle 自动执行_10

Application中

android gradle 自动执行 android gradle教程_android_11

这样就实现了多渠道打包。

本期内容完毕。

Gradle 系列的基础知识,用了两期内容已记录完毕,参考了很多网友总结,自己重复写一遍也是记忆深刻。应该还会再写一期:小技巧和高级技能。加油!