AndroidStudio使用教程(第四弹)

AndroidStudio使用教程(第四弹)Gradle

讲解到这里我感觉有必要说明一下Gradle。 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML. 更多介绍请直接参考Gradle或Google搜索。

以下是为什么Android Studio选择Gradle的主要原因: – 使用领域专用语言(Domain Specific Language)来描述和处理构建逻辑。(以下简称DSL) – 基于Groovy。DSL可以混合各种声明元素,用代码操控这些DSL元素达到逻辑自定义。 – 支持已有的Maven或者Ivy仓库基础建设 – 非常灵活,允许使用best practices,并不强制让你遵照它的原则来。 – 其它插件时可以暴露自己的DSL和API来让Gradle构建文件使用。 – 允许IDE集成,是很好的API工具

Overview

AndroidStudio build系统是一个你可以用来build, test, run, package your apps的工具。 build系统与Android Studio之间是独立的,, 所以你可以在Android Studio中或者 command line中去执行。写完自己的应用程序之后,你可以用build系统来做以下事情:      – 自定义、配置和扩展build过程.。 – 用同一个工程根据不同的特性来创建多个APK。 – 重复利用代码和资源。 Android Studio灵活的build系统能让你不用修改项目和核心文件而完成上面所有的工作。

Overview of the Build System

Android Studio的构建系统包含一个Gradle的Android插件,Gradle是一个管理依赖关系并且允许自定义构建逻辑的高级构建工具。 许多软件都用Gradle来进行构建。 Gradle的Android插件并不依赖Android Studio, 虽然Android Studio全部集成了Gralde, 这就意味着:     – 你可以用用命令行的方式去构建Android应用或者是在一些没有安装Android Studio的机器上。 – 你可以用命令行构建时的配置和逻辑来在Android Studio中进行构建Android项目。 不管你是通过命令行还是远程机器或者是Android Studio来进行构建的产出都是一致的。

Build configuration

项目的构建配置都在Gralde build files中, 都是些符合Gradle要求的选项和语法,Android插件并不依赖Android 通过build文件来配置一下几个方面: -Build variants构建系统能对同一个项目通过不同的配置生成多个APK,当你想构建多个不同版本时这是非常有用的,因为不用为他们建立多个不同的项目。 -Dependencies构建系统管理项目的依赖关系,并且支持本地已经远程仓库的依赖关系。 这样你就不用再去搜索、下载,然后再拷贝相应的包到你工程的目录了。 -Manifest entries构建系统能够通过构建配置去指定清单文件中中某些元素的值。 当你想生成一些包名、最低SDK版本或目标SDK版本不同的APK时是非常有用的。 -Signing构建系统能在build配置中设置指定的签名, 在构建的构成会给APK进行签名。 -ProGuard构建系统允许根据不同的构建配置设置不同的混淆规则, 在构建的过程中会运行ProGuard来对class文件进行混淆。 -Testing构建系统会根据项目中的测试代码生成一个测试APK, 这样就不需要创建一个单独的测试工程了, 在构建的过程中会运行相应的测试功能。 Gradle构建文件使用Groovy语法,Groovy是一门可以自定义构建逻辑并且能通过Gradle的Android插件与Android`一些特定元素通信的语言。

Build by convention

Android Studio构建系统对项目结构和一些其他的构建选项做了一些很好的默认规范声明,如果你的项目符合这些条件,Gradle的构建文件就非常简单了。 如果你的项目不符合 其中的一些要求, 灵活的构建系统也允许你去配置几乎所有的构建选项。例如你项目的源码没有放在默认的文件夹中,你可以通过build文件去配置它的位置。

Projects and modules

Android Studio中的Project代表了一个完整的Android应用,每个Project中可以有一个或多个Module。 Module是应用中可以单独build, test或debug的组件。 Module中包含应用中的源码和资源文件, Android Studio中的Project包含以下三种Module: – 包含可复用代码的Java library modules. 构建系统对Java library module会生成一个JAR包。 – 有可复用Android代码和资源的Android library modules. 对该library modules构建系统会生成一个AAR(Android ARchive)包。 – 有应用代码或者也可能是依赖其他library modules的Android application modules, 虽然很很多Android应用都只包含一个application module. 对于application modules 构建系统会生成一个APK包。

Android Studio projects在project的最外城都包含一个列出所有modules的Gradle build file, 每个module也都包含自己的Gradle build file.

Dependencies

Android Studio的构建系统管理着依赖项目并且支持module依赖, 本地二进制文件依赖和远程二进制文件的依赖。

Module Dependencies 一个项目的module可以在构建未见中包含一系列所依赖的其他modules, 在你构建这个module的时候,系统回去组装这些所包含的modules. Local Dependencies 如果本地文件系统中有module所依赖的二进制包如JAR包, 你可以在该module中的构建文件中声明这些依赖关系。

Remote Dependencies 当你的依赖是在远程仓库中,你不需要去下载他们然后拷贝到自己的工程中。 Android Studio支持远程Maven依赖。 Maven是一个流行的项目管理工具, 它可以使用仓库帮助组织项目依赖。

许多优秀的软件类库和工具都在公共的Maven仓库中, 对于这些依赖只需按照远程仓库中不同元素的定义来指定他们的Moven位置即可。 构建系统使用的Maven位置格式是group:name:version. 例如Google Guava16.0.1版本类库的Maven坐标是 com.google.guava:guava:16.0.1.

Maven Central Repository现在被广泛用于分发许多类库和工具。

下面分别为以上三种依赖关系的配置;

dependencies {compile project(“:name”)compile fileTree(dir: ‘libs’, include: [‘*.jar’])compile ‘com.google.guava:guava:16.0.1’}Build tasks

Android Studio构建系统定义了一些列的构建任务, 高级别的任务调用一些产出必要输出的任务。 构建系统提供了project tasks来构建app和module tasks 来独立的构建modules.

可以通过Andorid Studio或者命令行看到当前可用任务的列表,并且执行里面的任务。

The Gradle wrapper大把大把的时光从指缝间遛走,

AndroidStudio使用教程(第四弹)

相关文章:

你感兴趣的文章:

标签云: