Gradle是什么

引用Stack Overflow上的一个提问以及回答。

问题

Stack Overflow上的提问

看上去这个问题关注的人还挺多的:

作为安卓开发的萌新,对Gradle表示confuse。

在as中,gradle是什么,存在的目的是什么。为什么将它包含在as里面?


回答


简单说Gradle就是一个构建系统。

详细说来:

在没有AS,我们使用Eclipse进行Android开发的时候;我想并且很有可能,如果没有Eclipse,你压根不知道如何去构建你的APK。

我来告诉你,没有Eclipse如何构建APK。

方法之一就是通过命令行。不过,想要使用命令行构建APK,首先你要清楚sdk中各个工具(如dx,aapt)是如何工作的。我想你不愿意这样辛苦吧。感谢Eclipse,它为我们完成了这些,重要又基础的细节。我们只要使用它那简单的构建系统,而不需要自己去敲复杂、繁琐的命令行。

Eclipse的android构建系统,使用一些约定俗成的东西。例如:\src文件夹存放源代码,\res文件夹存放资源文件。

这种构建系统会将src文件夹下的.java或.xml文件编译成.class文件,接着转为dex文件,然后将它们打包成,亲爱的APK。


相比于其他构建系统,Gradle是取其精华去其糟粕的集大成者。

它是基于JVM的构建系统,这意味着,你可以通过java写出来你自己的脚本。

另外,他还是基于插件的构建系统。意味着,你可以通过java,Groovy甚至是kotlin来编写你自己的插件。然后将这个插件贡献给全世界。




谷歌为什么选择Gradle

从市场上选择一个最高级的并且,你可以编写自己的脚本,没有任何的学习曲线。不需要学习Groovy,或其他任何一门新的语言。所以他们为Gradle编写了Android plugin。

就是你们天天写的这个:

apply plugin:'com.android.application'

如果你把这个注释了,下面又写了android {}

那么报错Error:(10, 0) Extension with name 'android' does not exist. Currently registered extension names: [ext, kotlin]Open File

AS 项目自动生成的build.gradle中的配置信息是用Groovy 写的。如果你在里面写System.out.println("Hello Gradle!");他会在控制台输出信息。


总结:Gradle是一个基于jvm,基于插件的构建系统。

build.gradle文件内容写的都是默认groovy编写的构建脚本。

google为它的android编写了com.android.application插件。以至于我们能够android {}

这里还有kotlin的插件

applyplugin:'kotlin-android'

applyplugin:'kotlin-android-extensions'

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,249评论 25 709
  • 1.介绍 如果你正在查阅build.gradle文件的所有可选项,请点击这里进行查阅:DSL参考 1.1新构建系统...
    Chuckiefan阅读 14,197评论 8 72
  • Android开发工具 Android Studio Android开发环境,基于IntelliJ IDEA,谷歌...
    奈何心善阅读 7,077评论 1 18
  • 就像不知道穿什么鞋子一样,也不知道穿什么衣服。我是汗脚,这个时候穿保暖的鞋子白天热出了汗到晚上坐在教室里反而冷,可...
    亻乍阅读 2,206评论 0 0
  • 下雨了,天也变冷了 望着窗外 淅淅沥沥 你那里下雨了吗? 冷了是否记得添衣…
    嗑瓜子的晓鸣阅读 2,523评论 2 1

友情链接更多精彩内容