【问题标题】:Android gradle, what is it?Android gradle,它是什么?
【发布时间】:2014-07-12 00:32:26
【问题描述】:

在同一个网站上还有一些其他相关问题,但我无法理解。

在他们的网站上,它们非常抽象。

Gradle 是构建自动化的进化。 Gradle 可以自动构建、测试、发布、部署和更多软件包或其他类型的项目,例如生成的静态网站、生成的文档或其他任何东西。

这到底是什么意思? 谢谢

【问题讨论】:

  • 它基本上有助于自动化所有可能的流程。帮助实现它,这样您就可以将时间集中在代码上(只要您正确配置了 gradle 构建)

标签: android gradle


【解决方案1】:

您还可以查看此post 的答案。它包含详细的解释(顺便说一下,我对这个主题也很陌生)。

当我们在 Android Studio 中构建/重建我们的项目,或按运行或按调试时,Gradle 会收集我们项目中的所有内容(代码、资源、drawable、第三方包等)并将它们编译成一个可安装的文件,也就是APK(在“app\build\outputs\apk\debug”文件夹中)。然后我们可以将它安装在移动设备上或在 Android Studio 虚拟设备模拟器中运行。

如果我们的项目不是很复杂,很可能我们不需要担心 Gradle。当我们添加新项目或导入外部 JAR 时,Android Studio 会自动更新必要的 gradle 文件。这些文件包含构建系统的配置脚本,用一种名为DSL 的语言编写。

【讨论】:

    【解决方案2】:

    Gradle 是用于构建软件的软件。

    假设您在问题中提到,现在假设您正在开发一个 Android 应用程序。

    您可能正在使用 Eclipse 来开发您的应用程序。作为其中的一部分,Eclipse 将使用自己的构建自动化引擎来编译您的 Java,将字节码交叉编译为 Dalvik 字节码,编译资源和清单,将所有内容打包成一个 APK,使用签名密钥对其进行签名,然后zipalign 结果(以及其他步骤)。

    您可能已经使用 android update project 来代替(或补充)Eclipse 来生成一个build.xml 文件,该文件允许您通过 Apache Ant 构建您的应用程序。 Ant 和 Gradle 一样,是一个构建自动化引擎——用于构建软件的软件。 Gradle 恰好比 Ant 更新、更强大,但它们在我们的生活中扮演着相同的基本角色:获取我们输入的所有内容(例如 Java 源代码),然后生成一个 APK。

    如果您曾使用 Maven 进行项目构建,或使用过其他 IDE(例如 IntelliJ IDEA、NetBeans),那么您已将其构建自动化引擎用作该工作的一部分。

    Gradle 不仅可用于命令行构建以替代 Ant,而且还是 Android Studio 中使用的构建自动化引擎(默认情况下)。引用the Android developer documentation:

    Android Studio 构建系统包含一个用于 Gradle 的 Android 插件。 Gradle 是一个高级构建工具包,可管理依赖项并允许您定义自定义构建逻辑。许多软件项目使用 Gradle 来管理其构建。 Gradle 的 Android 插件不依赖于 Android Studio,尽管 Android Studio 与它完全集成。这意味着:

    • 您可以在您的机器或未安装 Android Studio 的机器(例如持续集成服务器)上从命令行构建您的 Android 应用。
    • 您可以从 Android Studio 构建您的 Android 应用,使用与从命令行构建时相同的自定义构建配置和逻辑。

    无论您是从命令行、在远程机器上还是使用 Android Studio 构建项目,构建的输出都是相同的。

    【讨论】:

    • @feresr:“我认为编译器负责转换我的代码并将其转换为 Dalvik 字节码,也会编译我的资源和清单”——很可能,你没有运行 javac 手动。当然,我们非常欢迎您这样做。否则,告诉javac要编译什么(以及如何编译)的是构建自动化引擎。 “我还要依赖什么来构建 Android 应用程序”——例如,由其他开发人员编写的库。
    • @feresr:库通常依赖于其他库,跟踪所有嵌套的依赖项可能是一个挑战。在 Gradle for Android 的具体案例中,我们也可以开始使用 AAR,它基本上是编译的 Android 库项目(源、资源等),以及它们的依赖网络。作为开发人员,您是否希望利用其中的任何一个都取决于您。
    • @feresr:“另外,当我执行项目时,android studio 会调用 javac。” - 不,不是的。 Android Studio 调用 Gradle,后者又调用 javac
    • @feresr:我没用过,但是根据网站的描述,Composer 是 PHP 的依赖管理器。 Gradle、Maven、rubygems、bower 和其他各种系统也为各种开发语言和环境提供依赖管理,我相信还有几十种。
    • @feresr:“你能推荐一本安卓书吗?” ——好吧,我有偏见。 I like mine。 :-)
    【解决方案3】:

    这是一个文件,其中包含有关如何编译项目的说明。它需要什么依赖项,它们在哪里等。您还可以使用它通过以不同方式编译来制作不同版本的项目,用于调试、测试等。

    【讨论】:

      猜你喜欢
      • 2016-02-18
      • 2016-05-03
      • 1970-01-01
      • 2017-09-24
      • 2019-12-25
      • 2018-12-25
      • 2016-08-25
      • 1970-01-01
      相关资源
      最近更新 更多