摇篮是有点混乱给我,也为新的Android开发者。 谁能解释Android Studio中的gradle什么是什么,它的目的是什么? 为什么包括Android Studio中摇篮?
Answer 1:
简答
摇篮是构建系统。
长的答案
Android的工作室之前你使用Eclipse开发的目的,并有机会,你不知道如何建立自己的Android APK不使用Eclipse。
为此,您可以在命令行上,但你必须了解每个工具(DX,AAPT)在SDK中。 Eclipse中救了我们所有的这些较低水平,但重要的是,基本的细节给予我们自己构建系统。
现在,你有没有想过,为什么res
文件夹是在同一目录下src
文件夹?
这是构建系统进入图片。 构建系统自动搜集了所有的源文件( .java
或.xml
),然后运用合适的工具(如需要java
类文件,将它们转换为dex
文件),和组所有的人都成一个压缩文件,我们敬爱的APK。
此生成系统使用了一些约定:一个的一个例子是指定包含源文件(在Eclipse它的目录\src
文件夹)或资源文件(在Eclipse它是\res
文件夹)。
现在,为了给所有这些任务自动化,必须有一个脚本; 您可以在Windows中使用shell脚本在Linux或批处理文件语法编写自己的编译系统。 得到它了?
摇篮是另一种构建系统 ,从其他的编译系统需要的最佳功能,并将它们合并成一个。 它是基于关闭自己的缺点得到改善。 它是一个基于JVM构建系统 ,这是什么意思是,你可以用Java编写自己的脚本,它的Android工作室利用的。
约一分gradle这个很酷的事情是,它是一个基于插件的系统 。 这意味着,如果你有自己的编程语言,你想从源自动化建设一些包(输出就像一个Java的JAR)的任务,那么你可以写在Java或Groovy中的一个完整的插件(或科特林,见这里 ),和其分发到世界其他地区。
为什么谷歌使用它?
谷歌看到了市场上最先进的构建系统之一,并意识到你可以写一点自己的脚本,无需学习,没有学习的Groovy或任何其他新的语言。 所以,他们写了Android插件的摇篮。
你一定见过build.gradle
在您的项目文件(S)。 这就是您可以编写脚本来自动任务。 您在这些文件中看到的代码是Groovy代码。 如果你写System.out.println("Hello Gradle!");
然后它会打印在控制台上。
你可以在构建脚本吗?
一个简单的例子是,你必须将一些文件从一个目录复制到另一个实际的构建过程发生之前。 一个摇篮构建脚本可以做到这一点。
Answer 2:
这是新的构建工具,谷歌希望借助Android版。 它的使用,由于它是比蚂蚁更可扩展的和有用的。 它的目的是提高开发人员的经验。
您可以在观看来自Android开发者团队的谈话由Xavier Ducrohet 谷歌I / O在这里。
也有在Android Studio的另一个谈话由Xavier和Tor的诺尔比耶,也是在谷歌I / O这里 。
Answer 3:
摇篮是在Android上运行的工作室构建系统。
在其他语言,例如:
- 蚂蚁和Maven的 爪哇
- 耙 红宝石
- AAP的C
- 恶性 .NET的
- 请在Linux中
Answer 4:
Here is a detailed explanation about what Gradle
is and how to use it in Android Studio.
Exploring the Gradle Files
- Whenever you create a project in Android Studio, the build system automatically generates all the necessary Gradle build files.
Gradle Build Files
Gradle build files use a
Domain Specific Language or DSL
to define custom build logic and to interact with the Android-specific elements of the Android plugin for Gradle.Android Studio projects consists of 1 or more modules, which are components that you can build, test, and debug independently. Each module has its own build file, so every Android Studio project contains 2 kinds of Gradle build files.
Top-Level Build File: This is where you'll find the configuration options that are common to all the modules that make up your project.
Module-Level Build File: Each module has its own Gradle build file that contains module-specific build settings. You'll spend most of your time editing module-level build file(s) rather than your project's top-level build file.
To take a look at these build.gradle
files, open Android Studio's Project panel (by selecting the Project tab) and expand the Gradle Scripts folder.
The first two items in the Gradle Scripts folder are the project-level and module-level Gradle build files
Top-Level Gradle Build File
Every Android Studio project contains a single, top-level Gradle build file. This build.gradle
file is the first item that appears in the Gradle Scripts folder and is clearly marked Project.
Most of the time, you won't need to make any changes to this file, but it's still useful to understand its contents and the role it plays within your project.
Module-Level Gradle Build Files
In addition to the project-level Gradle build file, each module has a Gradle build file of its own. Below is an annotated version of a basic, module-level Gradle build file.
Other Gradle Files
In addition to the build.gradle files, your Gradle Scripts folder contains some other Gradle files. Most of the time you won't have to manually edit these files as they'll update automatically when you make any relevant changes to your project. However, it's a good idea to understand the role these files play within your project.
gradle-wrapper.properties (Gradle Version)
This file allows other people to build your code, even if they don't have Gradle installed on their machine. This file checks whether the correct version of Gradle is installed and downloads the necessary version if necessary.
settings.gradle
This file references all the modules that make up your project.
gradle.properties (Project Properties)
This file contains configuration information for your entire project. It's empty by default, but you can apply a wide range of properties to your project by adding them to this file.
local.properties (SDK Location)
This file tells the Android Gradle plugin where it can find your Android SDK installation.
Note: local.properties
contains information that's specific to the local installation of the Android SDK. This means that you shouldn't keep this file under source control.
Suggested reading - Tutsplus Tutorial
I got clear understanding of gradle from this.
Answer 5:
摇篮是一种类型的构建工具 ,构建的程序的源代码。 因此,它是Android Studio中的一个重要组成部分,需要开始开发应用程序之前安装。
我们不必单独安装它,因为Android的工作室会为我们,当我们使我们的第一个项目。
Answer 6:
你可以找到你需要了解的摇篮这里的一切: 摇篮插件用户指南
新编译系统的目标
新编译系统的目标是:
- 可以很容易地重用代码和资源
- 可以很容易地创建一个应用程序的几个变种,无论是多APK分配或应用程序的不同口味
- 可以很容易地配置,扩展和自定义生成过程
- 良好的IDE集成
为什么摇篮?
摇篮是一种先进的编译系统以及先进的构建工具包允许通过插件来创建自定义生成逻辑。
下面是它的一些特性,使我们选择摇篮:
- 域专用语言(DSL)来描述和操纵构建逻辑
- 建文件是基于Groovy的,并允许通过DSL声明性元件的混合使用代码来操纵DSL元件以提供定制逻辑。
- 通过Maven和/或常春藤内置的依赖管理。
- 非常灵活。 允许使用的最佳实践,但不会强迫自己的做事方式。
- 插件可以暴露自己的DSL和自己的API,用于构建文件使用。
- 好工具API允许IDE集成
Answer 7:
定义:: 摇篮可以描述的结构化建设机制它提供了一个开发者工具和灵活性,以管理项目的资源,打造构建那些smaller in size
, targeting specific requirements
的某些配置的某些设备
基本配置
-
minimumSdk
-
maximumSdk
-
targettedSdk
-
versionCode
-
versionName
图书馆:: 我们除了可以按要求简单的这是一个乏味的任务前面添加的Android库或其他任何第三方库。 如果库不适合用于现有项目,开发商表示日志,而该人可以找到一个合适的解决方案,以更改项目中,以便可以添加库。 它依赖的只有一行
GENERATING品种来建立
结合生成类型与构建口味得到构建一些变体的品种繁多
==================== ====================
| BuildTypes | | ProductFlavours |
-------------------- ====================== --------------------
| Debug,Production | || || | Paid,Free,Demo,Mock|
==================== || || ====================
|| ||
VV VV
=================================================================
| DebugPaid, DebugFree, DebugDemo, DebugMock |
| ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
=================================================================
减小尺寸
从集成库取出未使用的资源也未使用的东西摇篮减少生成的构建的大小帮助
管理权限
我们可以根据需要添加在某些情况下某些权限指定某些权限对某些构建
为身患某些设备
我们可以为包括某些密度和某些API级别的某些设备管理生成构建。 这根据跨多种类型的设备要求有助于在产品部署在应用程序商店
很好的参考
Vogella教程
Answer 8:
摇篮是构建系统 。 构建系统软件工具,用于自动化程序编译的过程。 建立系统以各种形式出现,并用于各种软件构建任务。 虽然他们的主要目标是有效地创建可执行文件。
另一个相关的术语是构建自动化这是一个自动化软件构造和包括该相关联的处理的创建的过程中:在编译的计算机源代码转换成二进制代码,包装二进制代码,并运行自动化测试。
其他语言的几个类似的编译系统是(见完整列表在这里 ):
- Apache Ant的与Apache的Maven的 - Java的
- SBT(简单生成工具) - 斯卡拉(播放框架等)
- AAP - 基于Python的构建工具
- 耙(Apache的生成器) - 红宝石
- Leiningen为Clojure的
Answer 9:
在被话语的风险,我认为这背后的原因了Android工作室/摇篮经历是如此糟糕的问题。
典型的Clojure的经验:
- 在project.clj上市的依赖性下载项目。
- Leiningen得到感谢Clojars和Maven的依赖。
- 项目编译。
典型的Android工作室/摇篮经验:
- “导入我的Eclipse项目”。
- 确定项目的进口。
- 摇篮是做什么的唐卡......等待...等待...等待...摇篮已经完成。
- 编译......不能编译,因为我不知道的X是什么/找不到ÿ库。
我不知道这是摇篮的错准确。 但“从Eclipse项目导入”似乎相当片状。 对于所有的摇篮涉嫌成熟和构建系统的优点的,Android的工作室似乎没有导入编译依赖或建造过程从Eclipse的非常好。
当它未能导入一个完整的依赖关系图它不会告诉你。 Android的工作室没有给出有用的帮助或提示就如何解决这个问题。 它不会告诉你,你可以手动查找在Eclipse文件夹中。 它不会告诉你哪个库似乎缺少。 或者帮助您寻找的Maven等他们。
在类似Leiningen / Clojars或节点的NPM,或Python的点子,或Debian的apkg 2016米的东西(我对其他语言和系统肯定有很多类似的包管理器)都做工精美,......缺少的依赖关系是过去的事情了。
除了采用Android。 Android的工作室,现在是我似乎仍然缺少经验,依赖地狱的唯一地方。
我倾向于认为这是谷歌的错。 他们打破了Android生态系统(还有数千现有的Android项目/在线教程),当他们傲慢地决定从Eclipse中的Android工作室/摇篮转移不产生稳健的转换过程。 人,其项目的工作在Eclipse中没有他们适应AS(大概是因为这是他们的一个痛)。 有些人还企图使用那些项目都打了同样的问题。
不管怎样,如果摇篮是这个超级强大的构建系统,为什么我还管理了一大堆其他相关性在SDK Manager? 为什么不能,需要一个项目,也就是说,NDK在摇篮文件中指定这一点,以便它就会自动安装,并内置对需要的时候? 为什么NDK特别? 同样,对于目标平台? 为什么我在IDE中明确安装它们,而不是只检查我对他们的项目和有这一切排序,以便我在幕后?
Answer 10:
我指2个教程写答案 一个 , 2
摇篮是一个通用的,陈述性的构建工具。 它是通用的,因为它可以用来建立你所关心的构建脚本来实现几乎任何东西。 因为你不希望看到大量的代码在编译文件,这是不可读性和可维护性少是声明。 所以,虽然摇篮提供约定的想法和一个简单的声明打造,这也使得该工具的适应性和开发人员扩展的能力。 它还提供了一种简单的方法来定义默认行为,不同的挂钩添加任何第三方的功能。
摇篮结合了这两种工具的好的部分,并提供额外的功能,并使用Groovy的一个领域特定语言(DSL)。 它有权力和使用Maven的功能,如构建生命周期和易用性的Ant工具的灵活性。
为什么摇篮? 为什么现在?
构建工具的反应是通过非标准的扩展机制来添加脚本功能。 你最终混合脚本代码与XML或从构建逻辑调用外部脚本。 这很容易想象,你需要随着时间的推移添加越来越多的自定义代码。 其结果是,你不可避免地引入偶然复杂性和可维护性就走出了窗外。
比方说,你想将文件复制到一个特定的位置,当你建立你的项目的发行版本。 要确定版本,请检查你在描述你的项目中的元数据的字符串。 如果匹配特定的编号方案(例如,1.0-RELEASE),复制从A点到B点的文件从外部的角度来看,这听起来像一个简单的任务。 如果你不得不依赖于XML,许多传统的工具构建的语言,表达了这个简单的逻辑就变得相当困难。
Java构建工具的演变
Java构建逻辑在XML来描述。 XML是伟大的描述分层数据,但是未能在表达程序流程和条件逻辑。 作为构建脚本生长在复杂性,保持建筑规范变成了一场噩梦。
在蚂蚁 ,您做出JAR目标依赖于编译目标。 Ant没有就如何构建你的项目的任何指导。 虽然它允许最大的灵活性,蚂蚁使得每个构建脚本独特的,很难理解。 通过您的项目所需的外部库通常被检查到版本控制,因为没有自动机制来从一个中央位置拉他们。
Maven的1,2004年7月发布,试图缓解这一进程。 它提供了一个标准化的项目和目录结构,以及依赖管理。 不幸的是,自定义逻辑是难以实现
摇篮正适合那种一代的构建工具和满足现代构建工具(图1)许多要求。 它提供了一个表现DSL,在配置方法的公约,以及强大的依赖管理。 它使正确的举动放弃XML,并介绍了动态语言Groovy来定义构建逻辑。 听起来很吸引人,不是吗?
摇篮结合了其他的构建工具的最佳功能。
摇篮的引人注目的功能集
为什么要建立与摇篮而是你的Java项目比Ant或Maven?
为Android默认的构建工具(和构建工具在JVM上的新明星)旨在缓解复杂的脚本,多语言的版本。 如果你改变它,不过,如果你正在使用Ant或Maven?
到构建脚本中解锁摇篮的动力特性的关键在于发现和运用它的域模型,如下图所示的图像。
摇篮无法知道所有具体到企业构建的要求。 通过公开挂接到生命周期阶段,摇篮允许监控和配置构建脚本的执行行为。
摇篮通过暴露在Groovy实施了DSL建立了其模型的词汇。 当处理一个复杂的问题域,在这种情况下,构建软件,能够使用一种共同的语言来表达你的逻辑可以是一个强大的工具的任务。
另一个例子是,你可以表达依赖于外部库,通过构建工具解决了一个非常普遍的问题的方式。 外的开箱摇篮为您提供了构建脚本两个配置模块,使您可以定义要从检索它们的依赖关系和存储库。 如果标准DSL元素不适合你的需求,你甚至可以通过引入摇篮的扩展机制自己的词汇。
集成其他的构建工具
摇篮与它的前辈蚂蚁,Maven的,和常春藤演奏,如下图所示在图像中。
自动化您的项目从建造到部署
在图像:部署流水线的阶段。
编译代码
运行单元测试和集成测试
进行静态代码分析和生成测试覆盖
创建分布
置备目标环境
部署交付
执行烟雾和自动功能测试
我指2个教程写答案 一个 , 2
Answer 11:
Gradle
是一种先进的编译系统以及先进的构建工具包允许创建自定义的通过插件建立逻辑!
好处:
- DSL - 领域特定语言的基础上,常规
- DAG - 向无环图
- 增量构建
- 可扩展域模型
- 摇篮是始终保持最新
- 任务正在被执行之前,摇篮需要它的任务的输入和输出的快照。
- 如果快照已更改,或者它不存在,Gralde将重新执行该任务。
清单条目
通过DSL,可以配置以下清单条目:
构建变量
默认情况下,Android插件会自动设置的项目,以建立两调试和应用程序的发布版本。
依赖
- 本地依赖性:
如果你在你的本地文件系统中的二进制档案,一个模块依赖于,如JAR文件,您可以在该模块的编译文件中声明这些依赖关系。
- 远程依赖关系:
首先,库必须添加到列表中,然后必须依赖的方式,Maven的常春藤或申报文物声明。
Answer 12:
摇篮是Groovy的JVM语言是什么蚂蚁去渣。 基本上,它是Groovy的构建工具。 不像蚂蚁,它的基础上,充分Groovy语言。 你可以,例如,编写Groovy脚本代码在摇篮脚本做一些事情,而不是依赖于特定领域的语言。
我不知道的IntelliJ的具体整合,但是想象一下,你可以“扩展”的Groovy这样你可以写具体的“构建”语言原语,他们只是成为了Groovy语言的一部分。 (Groovy的元编程本身就是一个完整的讨论。)的IntelliJ /谷歌可能利用摇篮建立一个非常高层次的构建语言,然而,这是一个语言建立在一个可扩展的,开放的标准。
Answer 13:
摇篮是一个自动构建工具,可以集成到许多不同的环境中,不仅为Android项目。
这里有几件事情,你可以做的gradle。
最低配置要求的新项目,因为有摇篮的默认配置为您的Android Studio项目。
扶养宣言。 你可以声明,在本地或远程服务器托管的相关性JAR文件或库文件。
摇篮自动生成测试目录,并从项目源测试APK。
如果添加了所有必要的信息,如
keyPassword
和keyAlias
,你的摇篮构建文件,你可以用摇篮生成签名的apk。摇篮可产生具有不同包多个APK和来自单个模块建立配置。
Answer 14:
在Android Studio中,摇篮是用于构建由管理依赖,并提供自定义生成逻辑Android包(APK文件)的自定义生成工具。
APK文件(Android应用程序包)是一个特殊格式压缩文件,其中包含
- 字节码
- 资源(图片,UI,XML等)
- 清单文件
APK文件被签署,并推到使用它得到执行ADB(安卓调试桥)设备。
Answer 15:
摇篮是管理依赖关系,并允许您定义自定义生成逻辑的Android的高级构建工具。 特点是喜欢
自定义,配置和扩展构建过程。
创建使用同一项目不同的特点您的应用程序多个APK。
重用代码和资源。
参考
Answer 16:
摇篮是构建工具定制和用于构建APK或称为应用程序包的试剂盒。
Answer 17:
通过@布赖恩加德纳:
摇篮是编程项目广泛的构建工具和依赖管理。 它拥有一个基于Groovy的领域特定语言。 摇篮还提供了多种类型的项目,包括Java,Android和Scala的建设按约定的支持。
摇篮的特点:
- 依赖管理
- 从摇篮使用Ant
- 摇篮插件
- Java插件
- 安卓插件
- 多项目构建
Answer 18:
摇篮是什么使得它可以自动的,涉及从多个来源,项目库等,可以有条件地基于配置规范过多多个优化的APK行代码的10S数千个复杂的Android项目建设 - 如果你是感兴趣的话,其他的答案提供了摇篮的这方面的更多细节。
不过,如果你是新的Android开发方面,摇篮的病例中99%是从什么站建设项目。 这是一个高深莫测的,复杂的系统,有效地混淆了Android构建过程,基本上使得它无法使用经验的开发人员,也就是为了建立一个简单的入门级Android应用程序不知情的新手可能需要研究和理解,他们没有讨价还价很多事情如:
- 安卓APK结构和生态系统
- Android的工作室
- Java的类路径和依赖
- Groovy的
- 摇篮构建脚本
- 其他许多复杂和有趣的技术
所有这些都是有趣和有用的为Android开发者都知道,但他们远没有那么容易,并呈现出强大的进入壁垒。 我怀疑是什么激发了OP问这个问题是挫折不可避免地击中花费太长的方式试图获得一个简单的应用程序来构建和摇篮不断被挫败后的新手开发者的感觉。 问题是反常的高度的技术文档的压倒性数量的可用于所有这些技术加剧。 也为大量开发需求摇篮是矫枉过正。
另一种方法是编写出自动在Android SDK中提供的工具构建项目的shell脚本。 这种方法的优点是很多的,对于初学者它可能是学习和了解构建过程和Android生态系统的最佳方式,它可以让你完全控制你的应用程序是如何构建的。 但是这种方法更适合深无可救药科技的负责人是不是比没有经验的菜鸟试用机器人。
什么是它的缺席引人注目(请告诉我,如果有这样的事)是一款入门级,轻量级的IDE与同时简化了构建过程,而不是掩盖它(所以不是的NetBeans或者Eclipse)减少了一些功能它可能仍然使用摇篮(什么是错用Ant)。 它应该可以很容易地生成符合几个常见的配置和使用项目结构可以进化到如果你决定采取这种方式的完整的Android Studio项目的APK。
Answer 19:
在平原而言,摇篮是由Android工作室,以实现两个重要的过程提供了一个工具:
- 构建我们的项目
- 包AndroidManifest.xml中,res文件夹,和二进制代码到名为APK一个特殊格式的压缩文件
Answer 20:
摇篮= Groovy的+摇篮汉斯Dockter论坛评论
这种混乱是有点多余,当它可能只是被称为“生成”或类似Android Studio中。
我们喜欢把事情为自己很难在开发社区。