Gradle对我来说有点困惑,对任何新的Android开发人员来说也是如此。谁能解释一下Android Studio中的Gradle是什么,它的目的是什么?为什么Android Studio中包含它?
当前回答
Gradle是一个自动化的构建工具包,可以集成到许多不同的环境中,不仅仅是Android项目。
下面是你可以用Gradle做的一些事情。
新建项目所需的最小配置,因为Gradle有Android Studio项目的默认配置。 依赖声明。您可以声明托管在本地或远程服务器上的依赖JAR文件或库文件。 Gradle自动从项目的源代码生成一个测试目录和一个测试APK文件。 如果您添加了所有必要的信息,如keyPassword和keyAlias,到您的Gradle构建文件中,您可以使用Gradle生成签名APK文件。 Gradle可以用不同的包生成多个APK文件,并从单个模块构建配置。
其他回答
简短的回答
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构建脚本可以做到这一点。
这是谷歌想要用于Android的新构建工具。使用它是因为它比Ant更具可扩展性和实用性。它旨在增强开发人员的体验。
你可以在谷歌I/O这里查看Xavier Ducrohet来自Android开发团队的演讲。
在谷歌I/O期间,Xavier和Tor Norbye也有关于Android Studio的另一场演讲。
Gradle是一个易于定制的构建系统,支持按照约定模型进行构建。Gradle是用Java编写的,但是构建语言是Groovy DSL(域规范语言)。Gradle不仅支持多项目构建,还支持Ivy和Maven等依赖项。Gradle也可以支持构建非java项目。
https://medium.com/@ravirajdesai501/what-is-gradle-442458dd7ec1
格拉德尔 = 时髦 + 摇篮
参考:Hans Dockter论坛评论
当它在Android Studio中被称为“Build”时,这种混淆是不必要的。
在开发社区中,我们喜欢给自己制造麻烦。
简单的回答是,
Gradle是一个构建系统,它负责代码的编译、测试、部署和转换。Dex文件,从而在设备上运行应用程序。由于Android Studio预装了Gradle系统,因此不需要安装额外的运行时软件来构建我们的项目。
推荐文章
- 如何/何时生成Gradle包装文件?
- 在Android Studio的模拟器上截图
- 如何在Android工作室的外部库中添加一个jar ?
- 构建被配置为优先选择设置存储库而不是项目存储库,但存储库“maven”是由构建文件“Build .gradle”添加的。
- “需要Gradle 2.10版本。”错误
- adb.exe在windows 10中的位置?
- 处理EditText中可绘制对象上的单击事件
- 在Android Studio 4.2中,Gradle任务不会显示在Gradle工具窗口中
- Android Studio -没有可调试的应用程序
- Android Studio Gradle已经处理模块
- 如何使用自定义字体在一个项目写在Android工作室
- Android Studio错误:“Manifest合并失败:针对Android 12的应用程序”
- 签名版本之间的差异- V1 (Jar签名)和V2(完整的APK签名),而生成一个签名的APK在安卓工作室?
- 无法找到或加载主类org.gradle.wrapper.GradleWrapperMain
- 原因:buildOutput。apkData不能为空