Gradle对我来说有点困惑,对任何新的Android开发人员来说也是如此。谁能解释一下Android Studio中的Gradle是什么,它的目的是什么?为什么Android Studio中包含它?
当前回答
Gradle是一个先进的构建系统,也是一个先进的构建工具包,允许通过插件创建自定义构建逻辑!
优点:
DSL——特定于领域的语言,基于Groovy DAG -有向无环图 增量构建 可扩展域模型 Gradle总是最新的 在任务执行之前,Gradle会对任务的输入和输出进行快照。 如果快照已经更改或不存在,Gradle将会更改 重新执行此任务。
清单条目
通过DSL可以配置以下内容 清单条目:
构建变体
默认情况下,Android插件会自动将项目设置为 构建应用程序的调试版本和发布版本。
依赖关系
本地相关性:
如果您的本地文件系统中有二进制档案,则该模块 依赖的,例如JAR文件,您可以在 该模块的构建文件。
远程的依赖关系:
首先必须将存储库添加到列表中,然后 依赖关系必须以Maven或Ivy声明其依赖关系的方式声明 工件。
其他回答
简单的回答是,
Gradle是一个构建系统,它负责代码的编译、测试、部署和转换。Dex文件,从而在设备上运行应用程序。由于Android Studio预装了Gradle系统,因此不需要安装额外的运行时软件来构建我们的项目。
定义:Gradle可以被描述为一种结构化的构建机制,它为开发人员提供了工具和灵活性来管理项目的资源,以创建更小的构建,针对特定配置的特定设备的特定需求
基本配置
minimumSdk maximumSdk targettedSdk versionCode versionName
库
我们可以根据需要添加Android库或任何其他第三方库。这很容易,以前是一个乏味的任务。如果库不适合现有项目,则会向开发人员显示一个日志,开发人员可以在其中找到适当的解决方案来对项目进行更改,以便添加库。这只是一种依赖。
生成不同的构建
将构建类型与构建风格相结合以获得各种构建变体
==================== ====================
| BuildTypes | | ProductFlavours |
-------------------- ====================== --------------------
| Debug,Production | || || | Paid,Free,Demo,Mock|
==================== || || ====================
|| ||
VV VV
=================================================================
| DebugPaid, DebugFree, DebugDemo, DebugMock |
| ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
=================================================================
减少尺寸
Gradle通过从集成库中删除未使用的资源和未使用的东西来帮助减小生成的构建的大小。
管理权限
我们可以根据需求在特定场景中添加特定的权限,从而为特定的构建指定特定的权限。
针对某些设备的构建
我们可以为包含特定密度和特定API级别的特定设备生成构建。这有助于根据不同类型设备的需求在应用商店中部署产品。
好的参考
Vogella Tutorials
格拉德尔 = 时髦 + 摇篮
参考:Hans Dockter论坛评论
当它在Android Studio中被称为“Build”时,这种混淆是不必要的。
在开发社区中,我们喜欢给自己制造麻烦。
简短的回答
Gradle是一个构建系统。
长回答
在使用Android Studio之前,您的开发目的是使用Eclipse,很可能您不知道如何在没有Eclipse的情况下构建Android APK。
您可以在命令行上完成此操作,但必须了解每个工具(dx和AAPT)在SDK中的功能。 Eclipse通过为我们提供自己的构建系统,将我们从这些低级但重要的基本细节中拯救出来。
现在,你有没有想过为什么res文件夹和src文件夹在同一个目录中?
这就是构建系统出现的地方。构建系统自动获取所有源文件(.java或.xml),然后应用适当的工具(例如,获取.java类文件并将其转换为.dex文件),并将所有这些文件组合成一个压缩文件-我们心爱的APK。
这个构建系统使用了一些约定:一个例子是指定包含源文件(在Eclipse中是\src文件夹)或资源文件(在Eclipse中是\res文件夹)的目录。
现在,为了自动化所有这些任务,必须有一个脚本;您可以使用Linux中的shell脚本或Windows中的批处理文件语法编写自己的构建系统。明白了吗?
Gradle是另一个构建系统,它从其他构建系统中获取最好的功能,并将它们组合成一个。它是基于它们的缺点而改进的。它是一个基于jvm的构建系统。这意味着你可以用Android Studio使用的Java编写自己的脚本。
Gradle很酷的一点是它是一个基于插件的系统。这意味着如果你有自己的编程语言,你想要自动化从源代码构建一些包(输出像Java的JAR文件)的任务,那么你可以用Java或Groovy(或Kotlin,见这里)编写一个完整的插件,并将其分发到世界各地。
谷歌为什么使用它?
谷歌看到了市场上最先进的构建系统之一,并意识到您可以编写自己的脚本,而不需要学习Groovy或任何其他新语言。所以他们为Gradle编写了Android插件。
你一定见过那建筑。项目中的Gradle或build.gradle.kts文件。在这里您可以编写脚本来自动化您的任务。您在这些文件中看到的代码是Groovy或Kotlin代码。如果你写System.out。println(“你好Gradle !”);然后它会打印在你的控制台上。
在构建脚本中可以做什么?
一个简单的例子是,在实际构建过程发生之前,您必须将一些文件从一个目录复制到另一个目录。Gradle构建脚本可以做到这一点。
Gradle是一个构建系统。构建系统是设计用于自动化程序编译过程的软件工具。构建系统有各种形式,并用于各种软件构建任务。而他们的主要目标是有效地创建可执行文件。
另一个相关的术语是构建自动化,它是自动化创建软件构建的过程,以及相关的过程,包括:将计算机源代码编译成二进制代码,打包二进制代码,以及运行自动化测试。
其他语言的类似构建系统如下(见完整列表):
Apache Ant和Apache Maven - Java sbt -用于Scala (Play框架等) 基于python的构建工具 Rake (Apache Builder) - Ruby Leiningen for Clojure
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- ionic 2 - Error在Android Studio中找不到Gradle的安装版本
- 安装APK时出现错误
- Jersey在未找到InjectionManagerFactory时停止工作
- 如何生成字符串类型的buildConfigField
- 在Android Studio中创建aar文件
- Gradle代理配置
- 为什么构建类型与产品风味不同?
- 调试在哪里。Android Studio中的密钥存储库
- 错误:在Android SDK中找不到gradle包装器。可能需要更新你的Android SDK - Android
- Android Studio, logcat在应用程序关闭后清理
- Gradle替代mvn安装
- 有Grunt生成index.html不同的设置
- Android Studio中的。iml文件是什么?
- 为什么要把Gradle Wrapper提交给VCS?