这是我参与更文挑战的第2天,活动详情查看:更文挑战
Android开发Gradle基础
前言:
Android开发平时除了使用gradle做构建,打包和布署之外,我们应该没有直接使用gradle开发的经历,gradle和maven很相似,不过比maven精简许多,使用groovy作为脚本语言。
其实从16年开始真正接触android studio作为android开发工具已有5个年头,但是从来没有认真的去对待gradle。认为他只是一个构建工具没有太大学习的必要。而在有一天我集成TX的sdk时,遇到了问题。找TX技术咨询,eeee的技术说先去学学gradle吧。~~~~~~111~~~~泪千行
Android应用程序所生成的Gradle构建文件
使用Android Studio创建一个新的Android项目,并查看settings.gradle、build.gradle和app/build.gradle文件。
- settings.gradle => Android项目是多项目Gradle构建(将一个项目划分为多个模块,然后通过父工程去管理子模块)。Settings.gradle文件显示了每个子目录所对应的子项目。如图:项目分了三个模块 app,mvvm_lib,WYH20.03.30 在settings中使用include引入
2. 根目录下的build.gradle => 创建项目默认使用jcenter google 仓库来下载插件或者引用的第三方库
我们可以在allprojects中配置国内的一些镜像地址比如阿里云
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
如果搭建了本地仓库的话也是在这里进行配置地址引用
maven { url "file://${new File(project.rootProject.rootDir, 'local_repo').getAbsolutePath()}" }
在命令行执行Gradle构建
我们不需要为了构建Android项目而安装Gradle!Android Studio包含了一个Gradle的发行版本(以一个插件的形式gradle-wrapper)并包含了专门的功能来支持它。
“Gradle wrapper”引用gradlew脚本和gradlew.bat脚本,gradlew脚本给UNIX使用,这两个脚本在Android应用程序的根目录,结尾的“w”代表“wrapper”。
Gradle Wrapper的第一个目的就是允许客户端无须安装即可运行Gradle。wrapper使用了应用程序根目录下的gradle/wrapper下的gradle-wrapper.jar和gradle.wrapper.properties文件来启动进程
图示中distributionUrl显示了下载并安装gradle6.5,在第一次运行后,这个Gradle的发行版本会被缓存到zipStoreBase下的zipStorePath目录被用于后续的Gradle任务的执行。
常用命令:
gradlew -v 查看Gradle、Groovy、Ant、JVM等的版本,截图如下:
gradlew tasks –all 查看所有任务
gradlew androidDependencies 查看依赖树(可以使用任务的缩写 如:gradlew anDep 只要能保证这个缩写是唯一就可)
gradlew clean build –refresh-dependencies //强制更新最新依赖
gradlew installDebug //打debug包并安装
gradlew assembleDebug //编译并打Debug包
gradlew assembleRelease //编译打release包
gradlew installRelease //Release模式打包并安装
gradlew compileDebug –stacktrace // 查看详细的资源文件信息
gradlew build –info –debug –stacktrace //调试模式并打印堆栈信息
当项目中依赖某个库报错,而你又不知道是哪个,可以用gradlew build –info –debug –stacktrace 命令打印并排查对栈信息
android studio 也提供了视图模式直接可以操作gradlew 命令
下一篇深入学习gradle