将gradle更好应用到你的应用开发上面

翻译自gradle官网针对APP DEVELOPER的教程

文档下载地址:http://download.csdn.net/detail/jw20082009jw/9505240

针对:App开发者

Gradle深入浅出

以下部分可以让你将一个基于gradle建立的android程序跑起来,并将重点介绍gradle为安卓开发过程中带来的一些特性。让你仔细看看android studio里面的gradle窗口工具,并解释他是如何添加依赖的。

作为第一个完全致力于安卓开发的ide,同时作为有google后台的ide,android studio是一个足以令安卓开发者们激情澎湃的有前景的开发工具。但是,同时也意味着开发者们需要掌握一些新技术,就像gradle构建系统。

这篇文章可以让你开始跑起来一个基于gradle的安卓程序,以一个更深视角看待一些重要的gradle文件,学会如何运行一个gradle任务。

你也可以仔细看看android studio里的各种各类的gradle图形工具,并学会如何给一个项目添加依赖,并不需要任何的gradle经验。

第一步就是准确的理解什么是gradle以及为什么gradle被集成到android studio中是个好消息。

1、什么是gradle?

Gradle是一个自动化构建工具,可以通过插件集成到很多不同的系统中。在android studio中,gradle通过android的gradle插件集成。

如果你从来没有使用过gradle,那当你想开始使用android studio的时候可能会碰到一些让你很沮丧的障碍。然而,gradle为开发者提供了很多帮助,所以本文是值得投入一些时间来学习的。下面你可以使用gradle来做的几件事。

最小化新项目的配置项

在android studio中创建的每个项目gradle都自动应用了一系列的默认配置项。

如果你开发的项目有些与默认规则相悖的配置项,自定义gradle也是很简单的。

声明项目依赖

依赖可以是一个module,jar文件或者是库,这些依赖可以是本地也可以是远程的。

测试项目

gradle自动从你的测试资源生成一个测试目录和一个测试apk,并且可以在构建过程中运行测试。

生成签名apk

如果你添加了所有签名必要信息,例如 keyPassword 和 keyAlias 在你的build.gradle文件中,那你就可以使用gradle来生成签名apk包。

从单个Module中打包出多个不同的apk包

Gradle可以从单个module中使用不同的包配置和构建配置来生成多个不同的apk包。这个特性尤其方便,主要有一下几个原因:

1、以此支持绝大部分设备

Android平台的开发通常都是尽可能多的适配更多的不同android设备和android系统版本。Google Play Store甚至有多apk支持,让你能够使用不同设备配置来对应生成不同版本的app,提供出了一个应用商店的列表。

这就是引入gradle的重要原因。你可以使用android新的构建系统来生成单module多apk包。给这些apk包同样的包名然后你就可以将他们上传到google应用商店的同一个应用列表下。

2、提供同一app的不同版本

有时候,你会想要在应用商店中展示应用的多个版本,例如,你提供了一个免费的版本和一个”增强收费”版本。同样,你可以使用gradle来生成单module多apk包,给每个apk一个单独的包名即可,然后你可以单独上传每个apk包到应用商店。

2、探索gradle文件

每当在android studio里创建一个项目,构建系统会自动生成所有必要的gradle构建文件。

因为每次创建android studio项目都会碰到这一堆的gradle文件,所以我们来创建一个基础的示例项目然后来仔细看看这些自动生成的文件。

第一步是创建示例项目:

1、启动Android studio.

2、点击创建一个新的项目

3、项目命名,输入域名,然后选择保存位置,点击Next

4、选择Phone and tablet,使用默认的最低sdk设置,点击Next

5、选择Blank Activity点击Next

6、使用默认设置,点击Finish

Gradle的构建文件

Gradle构建文件使用的是Domain Specific Language(DSL)来定义个性化构建逻辑以及来与android的gradle插件来交互。

Android studio项目包含了一个或多个module,每个module都可以单独构建、测试和调试。每个module都有他自己的build文件,所以每个android studio项目包括两种build文件。

l Top-Level build文件:在这个文件里面是项目内所有module里面通用的一些设置项。

l Module-Level build文件:每个module都有自己的Gradle构建文件,里面是针对当前module的设置项。你将会发给大部分时间在编辑Module-Level的build文件,而不是项目的Top-Level的build文件。

我们来看一看这些build.gradle文件,打开Android studio的项目面板(选择Project选项卡,android视图)然后展开Gradle Scripts目录。在我们的示例项目中,展开列表前两个条目分别是你项目的Top-Level和Module-Level构建文件。

我们的示例项目只包含了一个单独的Module-Level构建文件,但是下面这个截屏给出了另一种情况,一个项目包括多个modules时候的Gradle Scripts目录的可能样子。

Top-Level构建文件

每一个android studio项目都包含一个Top-Level构建文件。这个build.gradle是Gradle Scripts目录下的第一个条目,并且被清晰的标记为Project。

大部分情况下,你都不需要对这个文件做任何更改,但是理解他的内容和他在项目中所扮演的角色都是非常有必要的。下面是一个带注释的经典Top-Level构建文件。

Module-Level构建文件

做为项目级别构建文件的补充,每个module都有他自己的构建文件。下面是一个带注释的基础的Module-Level构建文件。(部分注释无法显示完全,但是不影响理解)

其他gradle文件

作为build.gradle文件的补充,你的Gradle Scripts目录下包含一些其他的gradle文件。大部分时间你都不会需要手动去编辑这些文件,因为在你对项目做相关改动的时候会自动更新这些文件。然而,理解这些文件在项目中扮演的角色依旧十分有必要。

gradle-wrapper.properties(gradle的版本文件:在高版本的gradle下已经隐藏该文件在Gradle Scripts的显示)

这个文件允许其他人来构建你的代码,甚至可以在他们机器上没有安装gradle的时候也可以。这个文件可以检查是否安装了正确版本的gradle,如果没有的话将会下载需要的版本。在我们的示例app中gradle-wrapper.properties包含以下内容:

settings.gradle

这个文件引用了项目的所有module。因为我们的项目中只有一个module,所以这个文件非常简单(就只有以下一行内容)。

gradle.properties(根项目目录下的)

这个文件包含整个项目的配置信息。默认下为空,但是你可以在这个文件中添加属性来对整个项目范围做更改。

Local.properties(sdk 位置)

这个文件告诉android的gradle插件,在哪里可以找到android sdk。例如:

注意local.properties包含了android sdk在本地的安装目录,这意味着你不应该把这个文件加入source control(xcode下的版本管理)

3、android studio用户界面

现在你已经对所有自动生成的gradle文件都熟悉过了,是时候进一步来和gradle构建系统做进一步交互了。比较不错的是你可以直接通过android studio的用户界面来使用gradle。

在android studio的垂直和水平边缘是一些打开不同工具窗口的选项卡。在接下来的几个部分,我将会向你介绍一些android studio的gradle窗口工具,并展示如何通过这些窗口工具与gradle构建系统交互。

Gradle 任务窗口

你可以使用gradle任务窗口来浏览和执行在编译一个可执行项目中存在的各种各样的任务。

打开任务窗口的步骤,点击android studio右手边的Gradle选项卡。如果你更改了你的android studio用户界面而且找不到你的Gradle选项卡的话,你可以选择View>Tool Window>Gradle。

在Gradle任务选项卡下,双击你的项目,在你的module后面,你会看到一个与该module关联的所有gradle任务的列表。

当你双击gradle任务窗口中的某个任务时候,这个任务将会被执行,并且任务的输出将会出现在另一个gradle相关的窗口中,那就是Gradle Console。

Gradle Console

Gradle Console展示gradle任务执行中的输出,任何错误和警告都会被展示出来。

打开Gradle Console的步骤,选择IDE右下角的Gradle Console选项卡。如果你更改了你的android studio用户界面而且找不到你的Gradle Console选项卡的话,你可以选择View>Tool Windows>Gradle Console。

让我们使用Gradle Console来完整做一遍练习。在Gradle任务窗口,找到assemble任务,并双击它(assemble任务可以构建一个你应用的发布版本)。在assemble任务执行的时候,任务的输出会出现在Gradle Console。

无论你的项目是否构建成功了,Gradle Console都将会通知你,如果出错了,将会显示“build failed”并将为什么你的构建失败了也一并显示出来。

Terminal

你也可以通过Android studio继承的Terminal来运行Gradle任务。如果你准确的知道你想要执行的任务,Terminal一般都是比在Gradle Console列表中寻找任务更快捷方便的方式。

打开Terminal的方式,点击android studio左下角的Terminal选项卡,或者选择View>Tool Windows>Gradle Console。Terminal会已经默认选中了当前目录。你可以通过在Terminal中输入Gradle任务并按下Return或者Enter来执行这些任务。

4、添加依赖

在本部分,我们将会探索怎样可以使用Gradle来管理项目的module依赖,本地二进制依赖,以及远程二进制依赖。

当为项目添加依赖时,gradle提供了几种选择。

选择1:把文件丢进项目的libs/目录下

关联的build.gradle文件将会自动更新

选择2:手动修改build.gradle文件

打开你的build.gradle文件并且添加一个新的构建规则到dependencies闭包(closure:groovy中的闭包规则,具体语法可以先看看groovy)中。例如,如果你想要添加一个google应用商店的服务,你的项目dependencies部分可能会类似下图:

选择3:使用android studio用户界面

在project面板下,Control+Click(windows下直接右键单击)你想要添加依赖的module然后选择Open Module Settings。

选中Dependencies选项卡,然后点击左下角的“+”按钮。你就可以从以下列表中选择:

l Library Dependency

l File Dependency

l Module Dependency

然后你就可以输入更多你想要添加到你项目中的依赖信息。例如,如果你选择了Library Dependency,Android studio就会显示一个库列表给你选择。

一旦你添加了依赖,检查你的Module-Level的build.gradle文件,应该已经自动更新进了新的依赖。

结语:

本文已经向你介绍了所有Android studio项目下自动生成的gradle文件。尤其是Top-Level和Module-Level的gradle文件,你也已经学会如何通过android studio用户界面直接与gradle构建系统交互。

时间: 2024-10-17 22:56:56

将gradle更好应用到你的应用开发上面的相关文章

【转载】Visual Studio 2015 for Linux更好地支持Linux下的开发

原文:Visual Studio 2015 for Linux更好地支持Linux下的开发 英文原文:Targeting Linux Made Easier in Visual Studio 2015 Visual C++ for Linux 扩展使 Visual Studio 2015 的用户可以在 VS2015 中编写C或者 C++ 代码,并将代码部署到基于 Linux 的系统中去编译和调试.源代码和项目文件通过 SSH 传输到远程机上,程序的输出将显示在 Visual Studio 上.

构建工具的发展及Android Gradle快速上手

前话: 最近谷歌宣布官方不再维护Eclipse ADT了,之后将更加专注于Android Studio的功能和性能上的改进,早在2013年的Google IO大会上首次推出了Android Studio,当时刚出来的时候我就好奇的去下载体验了一下,想看一下新开发工具的优势在哪里,据官方介绍,最吸引我的一点就是使用Studio使用了Gradle编译系统,可以支持很灵活的定制需求,而我当时正在研究当成库使用的APK(就是现在的aar文件,不过当时还没有出身),刚好遇到了ADT编译系统的限制,所以当时

Gradle入门笔记

引言:Gradle是一种构建工具,它抛弃了基于XML的构建脚本,取而代之的是采用一种基于Groovy的内部领域特定语言. Groovy是一种基于JVM的敏捷开发语言,其开发效率比java高,但对比特殊的编译性语言Java( Java文件将编译成JVM可辨识的二进制文件.class ),groovy作为一个动态的脚本语言,由于元编程特性(元编程简单来说就是,编写运行时操作语言构建的代码,用代码操作代码),groovy对比java效率低.下图为groovy与java的demo效率对比图: 附上对比图

Gradle入门学习---认识buildeTypes和dependencies

Gradle是Android Studio默认的构建工具,如果是基本的APP开发,不会涉及到Gradle太多内容,毕竟它的诞生就不是专为Android服务的. 日常开发需要涉及到使用Gradle的场景相当有限,比较频繁的就是对应库,如jar,.so文件的导入,如果应用本身方法数比较多,尤其是导入太多第三方库就容易出现这个问题,就需要用到MultiDex的相关内容,如果需要在编译的时候区分debug和release等版本,是否混淆或者自动打包等,这些都会涉及到Gradle的编写,但网上都有现成的例

Gradle在Windows环境与Linux上配置有哪些不同?

我的开发环境:Windows + Android Studio + Gradle 2.8 all + Jenkins 公司CI 服务器环境: Linux + Gradle 2.10 bin + Jenkins 下文中的Linux只表示公司72 CI服务器配置,基它Linux服务器和Mac电脑可供参考. 一.路径不同 1.local.properties文件里的SDK路径 a)        Windows上sdk.dir=D\: \\Android\\sdk,注意这里的转义字符,下同 b)   

Gradle初步

一.介绍 Gradle是一个基于 JVM 的富有突破性构建工具. 它为您提供了: 一个像 ant 一样,通用的灵活的构建工具 一种可切换的,像 maven 一样的基于约定优于配置的构建框架 强大的多工程构建支持 强大的依赖管理(基于 ApacheIvy) 对已有的 maven 和 ivy 仓库的全面支持 支持传递性依赖管理,而不需要远程仓库或者 pom.xml 或者 ivy 配置文件 ant 式的任务和构建是 gradle 的第一公民 基于 groovy,其 build 脚本使用 groovy

Gradle 是什么

写在前面的话,最近在系统的学习Gradle,本来想写一篇关于 Gradle 的介绍. 但在官网发现了这篇关于 Gradle 的介绍,已经介绍的很好了,我就很直接翻译过来了. 原文地址 https://docs.gradle.org/current/userguide/what_is_gradle.html Gradle 是什么? Gradle 是开源的自动化构建工具,它的设计足够灵活,可以构建几乎任何软件. 它有以下几个显著的优点: 高性能 Gradle 只运行那些输入和输出有改变的任务,从而避

项目中Gradle使用总结

一.配置Gradle使用Maven仓库 项目过程中,我们可能会遇到maven的本地库和gradle使用的maven本地库,不是同一个库.现在总结下怎么配置使得maven和gradle都使用相同的maven本地库: 首先,大家要清楚两个个概念: maven本地库[表现形式一般都是.m2], gradle本地库[表现形式一般是.gradle] 1.maven配置本地库: 主要在settings.xml文件中,增加如下的内容: <localRepository>/xxxxx/repository&l

AppCan 3.0即将公测 更好的服务App开发者

艾瑞咨询统计数据显示,去年移动互联网市场继续保持高速增长态势,市场规模突破千亿元大关,PC互联网用户持续向移动端迁移.同时开发者.互联网公司.传统企业.移动创业者等多方参与和布局,移动互联网市场生态环境得到更加健康的发展,移动应用开发平台.移动广告营销.移动购物等在内的多个行业也因此风生水起. 纵观移动应用开发市场,国内外app开发工具不在少数,国外以PhoneGap开源技术为代表,而国内App开发工具则以AppCan为代表,凭借其技术先进.性能稳定.本地化服务支持能力强等优势,AppCan备受