Android Gradlew编译相关命令

1、前言

gradlew 是什么东西呢,和gradle貌似不大一样,肯定有关系。没错,他就是 gradle wrapper,意思是gradle的一个包装,大家可以理解为在这个项目本地就封装了gradle,比如我的项目是HelloWord, 在HelloWord/gradle/wrapper/gralde-wrapper.properties文件中声明了它指向的目录和版本,比如我的内容是:

1
2
3
4
5
6
#Thu Nov 01 14:28:47 CST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2-all.zip

如果你项目没有该文件的话,那么gradlew会到~/.gradle/wrapper/dists/gradle-2.10-all下寻找,或者你新建给文件,内容复制到里面。其实你会发现是同一个目录咯。里面会有个随机数的文件夹,里面就是gradle,只要下载成功即可用grdlew wrapper的命令代替全局的gradle命令。

常用命令如下:(linux下是./gradlew,该脚本在项目下,windows直接gradlew即可)

2、命令

  • ./gradlew -v 版本号,首次运行,没有gradle的要下载的哦。
  • ./gradlew clean 删除HelloWord/app目录下的build文件夹
  • ./gradlew build 检查依赖并编译打包
    • ./gradlew assembleDebug 编译并打Debug包
    • ./gradlew assemblexiaomiDebug 编译并打xiaomi的debug包,其他类似
    • ./gradlew assembleRelease 编译并打Release的包
    • ./gradlew assemblexiaomiRelease 编译并打xiaomi的Release包,其他类似
    • ./gradlew installRelease Release模式打包并安装
    • ./gradlew uninstallRelease 卸载Release模式包

./gradlew build 检查依赖并编译打包

这里注意的是 ./gradlew build 命令把debug、release环境的包都打出来,生成的包在目录HelloWord/app/build/outputs/apk/下。如果正式发布只需要打release的包,

gradlew build 和 gradle build 有区别吗?

使用gradle wrapper是gradle官方推荐的build方式,而gradlew正是运行了wrapper task之后生成的(运行wrapper task是Android Studio自动做的)。使用gralde wrapper的一个好处就是每个项目可以依赖不同版本的gradle,构建的时候gradle wrapper会帮你自动下载所依赖的版本的gradle。而如果你使用gradle build的话,同时你又有多个项目使用不同版本的gradle,那就需要你手动在自己的机器上配置多个版本的gradle,稍微麻烦一些

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

./gradlew clean clean项目

./gradlew build 构建项目

/gradlew assembleDebug or /gradlew aD 编译并打Debug包

./gradlew assembleRelease or /gradlew aR 编译并打Release的包

./gradlew installRelease or /gradlew iR Release模式打包并安装

./gradlew installDebug or /gradlew iD Debug模式打包并安装

./gradlew uninstallRelease or ./gradlew uR 卸载Release模式包

./gradlew uninstallDebug or ./gradlew uD 卸载Debug模式包


需要说明的是这些命令可以叠加使用,例如:

./gradlew clean build --info > bugtags.log