前言
上一期我们熟悉了:Gradle是什么,怎样和AS配合使用。
这一期我们来看看Gradle命令和配置。
本文环境:window 10, as 3.1.3,gradle plugin 3.1.3,gradle 4.4。
1,环境变量
当没有配置环境变量时,只能执行命令 "gradlew xxxxxx";
配置方法:系统属性-->环境变量-->path (我的路径为C:\Program Files\Android\Android Studio\gradle\gradle-4.4\bin)
检查:
这时候就可以使用命令 "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 节点:
其中api fileTree(dir: 'libs', include: ['*.jar']) ,意思是编译 libs 目录下的所有 jar 包,当然你可以更改这个目录。
Gradle以前的版本 "api"为"compile"。
第二种依赖,一般是放在 jcenter 和 maven 仓库的,这个可以在项目根目录下的 build.gradle 指定远程仓库地址,甚至可以在本地搭建一个私有仓库,然后指定本地仓库地址。
android 节点:
小技巧:可在根目录的 build.gradle 中设置:
然后xx/app/build.gradle 和 module 中的
compileSdkVersion rootProject.ext.compileSdkVersion...
等等就可以统一配置,避免主包和依赖包,版本不统一等冲突问题。
注释写的很明确了。
讲一下 ”buildTypes“:意为编译类型,这里声明了 debug 和 release 两种类型,当然你也可以声明其他类型,名字随意取,可以看到 debug 和 release 两种类型签名所用的配置不一样,这个配置具体详细也就是在上部分 signingConfigs 节点指定的,那里面的一些密码信息是在你生成 keystore 文件时设置的。
那么命令行打包:如果你 buildTypes 定义了一个 abc 的类型,那你就会有一个 gradlew assembleAbc 的 task 可以执行。
3,其他配置
等等
4,多渠道打包
android 节点中
AndroidManifest.xml中
Application中
这样就实现了多渠道打包。
本期内容完毕。
Gradle 系列的基础知识,用了两期内容已记录完毕,参考了很多网友总结,自己重复写一遍也是记忆深刻。应该还会再写一期:小技巧和高级技能。加油!