1.Gradle生命周期?
参考:Android之Gradle构建生命周期_Tiger的专栏-CSDN博客
2.Gradle应用场景有哪些?
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言C++、Java、Groovy、Kotlin、Scala和Swift,计划未来将支持更多的语言。
3.Project下常见执行gradle下的Tasks?
gradle会给我们插入许多适用于Android的gradle task,我们点击IDE,右边的Gradle图标查看;
双击tasks任务查看gradle已经支持的任务:
以下提供了这些官方gradle task的介绍
Android tasks
-------------
androidDependencies - 显示项目的Android依赖项。
signingReport - 显示每个渠道包的签名信息。
sourceSets - 打印出此项目中定义的所有资源。
Build tasks (打包时用的比较多)
-----------
assemble - 打包所有应用程序和依赖的所有渠道包。
assembleAndroidTest - 打包所有测试类型的应用程序。
assembleDebug - 打包所有Debug版本
assembleRelease - 打包所有Release版本
build - 打包所有,包括测试项内容
buildDependents - 打包并测试该项目以及它的所有的依赖项。
buildNeeded - 同上。
clean - 删除构建目录
cleanBuildCache - 删除构建的缓存目录。
mockableAndroidJar - 创建一个适合单元测试的android.jar版本。
Help tasks
----------
buildEnvironment - 显示在项目':app'中声明的所有buildscript依赖项。
components - 显示项目':app' components的组件。
dependencies - 显示项目':app'中声明的所有依赖项。
dependencyInsight - 显示对项目':app'中特定依赖项的观察。
dependentComponents - 显示项目':app'中组件的相关组件。
help - 显示帮助消息。
model - 显示项目':app'的配置模型。
projects - 显示项目':app'的子项目。
properties - 显示项目':app'的配置项。
tasks - 显示项目':app'所有可运行的task。
Install tasks
-------------
installDebug - 安装Debug版本。
installDebugAndroidTest - 为Debug版本安装android(在设备上)测试。
uninstallAll - 卸载所有应用程序。
uninstallDebug - 卸载Debug版本。
uninstallDebugAndroidTest - 卸载Debug版本的android(在设备上)测试。
uninstallRelease - 卸载发布版本。
Verification tasks (校验项)
------------------
check - Runs all checks.
connectedAndroidTest - Installs and runs instrumentation tests for all flavors on connected devices.
connectedCheck - Runs all device checks on currently connected devices.
connectedDebugAndroidTest - Installs and runs the tests for debug on connected devices.
deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.
deviceCheck - Runs all device checks using Device Providers and Test Servers.
lint - Runs lint on all variants.
lintDebug - Runs lint on the Debug build.
lintRelease - Runs lint on the Release build.
lintVitalRelease - Runs lint on just the fatal issues in the release build.
test - Run unit tests for all variants.
testDebugUnitTest - Run unit tests for the debug build.
testReleaseUnitTest - Run unit tests for the release build.
当然,task的数量会根据你所依赖的库增加,如果要使用某个task,可以先运行一下help下的task进行查看。
4.多模块Gradle常见配置有哪些?
4.1根目录下全局build.gradle配置FloatWindowL/build.gradle
- buildscript{}闭包里是gradle脚本执行所需依赖,分别是对应的maven库和插件;
- allprojects{}闭包里是项目本身需要的依赖,比如项目所需要的maven库;
- task clean(type: Delete){}是运行gradle clean时,执行此处定义的task任务,该任务继承自Delete,删除根目录中的build目录;其中buildscript包含repositories闭包和dependencies闭包;
全局build.gradle配置分为三部分:
buildscript{}闭包
buildscript { //gradle脚本执行所需依赖,分别是对