Gradle是什么

作者: code点点DD | 来源:发表于2018-02-01 15:04 被阅读118次

    引用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'

    相关文章

      网友评论

        本文标题:Gradle是什么

        本文链接:https://www.haomeiwen.com/subject/fnsdzxtx.html