丙午🐎年

acc8226 的博客

What plugins do 插件的作用

在项目中应用插件可以扩展项目的能力,它可以做以下事情:

  • 扩展 Gradle 模型(例如,添加可配置的新 DSL 元素)
  • 根据约定配置项目(例如添加新任务或配置合理的默认值)
  • 应用特定的配置(例如添加组织存储库或执行标准)

Types of plugins 插件的类型

在 Gradle 有两种通用的插件,脚本插件和二进制插件。 脚本插件是附加的构建脚本,用于进一步配置构建,并通常实现操作构建的声明性方法。 它们通常在构建中使用,尽管它们可以外部化并从远程位置访问。 二进制插件是实现 Plugin 接口并采用编程方法来操作构建的类。 二进制插件可以驻留在构建脚本中、项目层次结构中或外部插件罐中。

阅读全文 »

从这章开始我们就开始介绍 Android Gradle 插件了,会通过几章由浅入深的详细的介绍 Android Gradle,本章会简单的介绍下 Android Gradle 插件,然后通过一个例子对其有大概的了解,最后讲下如果从原来基于 Eclipse 进行 Android 开发的方式,转到基于 Android Studio,使用 Android Gradle 插件开发的新方式

7.1 Android Gradle插件简介

从 Gradle 的角度看,我们知道 Android 其实就是 Gradle 的一个第三方插件,他是由 Google 的 Android 团队开发的,但是从Android 的角度看,Android 插件是基于 Gradle 构建的,和Android Studio完美无缝搭配的新一代构建系统,它不同于 Eclipse+Ant 的搭配,相比于旧的构建系统,它更灵活,更容易配置,还能很方便的创建衍生的版本–也就是我们常用的多渠道包。让我们看看 Android 官方对它的推崇程度:

  1. 可以很容易的重用代码和资源
  2. 可以很容易的创建应用的衍生版本,所以不管你是创建多个apk,还是不同功能的应用都很方便
  3. 可以很容易的配置、扩展以及自定义构建过程
  4. 和 IDE 无缝整合

上面说的 IDE 就是 Android Studio,真是 Android Gradle + Android Studio 搭配,工作不累。

阅读全文 »

本章从整体构建脚本的角度介绍 Gradle,什么是 Settings文件,他有什么作用;什么是 Build 文件,它又有什么作用,我们可以新建多少Build文件。

然后会介绍 Gradle 的两个重要的概念:Project 和 Task,他们有什么作用,又有什么关系,如何创建一个Task,如何对 Task 进行配置,Task 之间如何建立依赖关系;Task如何使用 API 控制和 Task 之间的通信等等。

最后介绍的是自定义属性,他们有何作用,如何定义,什么时候会用到等等,最后最后强调的是脚本就是代码,以写代码的方式来写脚本,灵活运用。

3.1 Setting文件

在 Gradle 中,定义了一个设置文件,用于初始化以及工程树的配置。设置文件的默认名字是 settings.gradle,放在根工程目录下。

设置文件大多数的作用都是为了配置子工程。在 Gradle 多工程是通过工程树表示的,就相当于我们在 Android Studio 看到的 Project 和 Module 概念一样。根工程相当于 Android Studio 中的 Project,一个根工程可以有很多子工程,也就是很多 Module,这样就和 Android Studio 定义的 Module 概念对应上了。

阅读全文 »

这一章主要针对项目中可以用到的一些实用功能来介绍 Android Gradle,比如如何隐藏我们的证书文件,降低风险;如何批量修改生成的 apk 文件名,这样我们就可以修改成我们需要的,从文件名中就可以看到渠道,版本号以及生成日期等信息,这多方便啊;还有其他突破 65535 方法的限制等等。

9.1 使用共享库

android 的包,比如 android.app, android.content, android.view, 以及 android.widget等,这些是默认就包含在 android sdk 库里的,所有的应用都可以直接使用它们,系统会帮我们会自动链接他们,不会出现找不到相关类的情况。还有一些库,比如 com.google.android.maps、android.test.runner 等,这些库是独立的,并不会被系统自动链接,所以我们要使用他们的话,就需要单独进行生成使用,这类库我们称之为共享库。

在 AndroidManifest 文件中,我们可以通过来指定我们要使用的库

这样我们就声明了我们需要使用 maps 这个共享库,声明之后,在安装生成的APK包的时候,系统会根据我们的定义,帮我们检测我们的手机系统是否有我们需要的共享库,因为我们设置的android:required=“true”,是必须,如果手机系统不满足,将不能安装该应用。

阅读全文 »

说起 Gradle 的插件,不得不感叹 Gradle 的设计。Gradle 的设计非常好,它本身提供一些基本的概念和整体核心的框架,其他用于描述真实的使用场景逻辑都以插件扩展的方式来实现,这样 Gradle 的设计者就可以抽象的方式提供一个核心的框架,其他具体的功能和业务等都通过插件扩展的方式来实现,比如构建 Java 应用,就是通过J ava 插件来实现的。

Gradle 本身内置了很多常用的插件,这些插件基本上能帮我们做大部分的工作,但是也有一些Gradle本身没有内置,这时候就需要我们自己去扩展现有的插件或者自己自定义的插件来达到我们的目的,比如Android Gradle插件就是基于内置的Java插件实现的

5.1 插件是什么

插件是为了解决某一问题域构建甚至各种问题,在 Gradle 的基础上,提供的可复用的扩展。

把插件应用到你的项目中,插件会扩展项目的功能,帮助你在项目的构建过程中做很多事情:

  1. 可以添加任务到你的项目中,帮你完成一些事情,比如测试,比如编译,比如打包。
  2. 可以添加依赖配置到你的项目中,我们可以通过他们配置我们项目在构建过程中需要的依赖,比如我们编译的时候依赖的第三方库等
  3. 可以向项目中现有的对象类型添加新的扩展熟悉、方法等,让你可以使用他们帮助我们配置、优化构建。比如 android{}这个配置块就是 Android Gradle 插件为 Project 对象添加的一个扩展。
  4. 可以对项目进行一些约定,比如应用Java插件之后,约定src/main/java目录下是我们的源代码存放位置,在编译的时候也是编译这个目录下的Java源代文件。
阅读全文 »
0%