Android使用gradle入门

1.gradle是什么?

Gradle是新一代的自动化构建工具一个基于JVM的构建工具,它是一个独立的项目,跟AS,Android无关,类似Ant,Maven这类构建工具都是基于xml来进行描述的,很臃肿,而Gradle采用的是一种叫做Groovy的语言,语法跟Java语法很像,但是一种动态语言,而且在Java基础上做了不少改进,用起来更加简洁、灵活,而且Gradle完全兼容Maven、lvy,这点基本上宣布Maven、lvy可以被抛弃了,Gradle的推出主要以Java应用为主,当然目前还支持Android、C、C++

构建工具就是对你的项目进行编译、运行、签名、打包、依赖管理等一系列功能集合,传统的构建工具有Make、Ant、Maven、lvy等,而Gradle是新一代的自动化构建工具;

gradle优势(gradle提供了什么)

1). 一种可切换的,像maven一样的基于约定的构建框架,却又从不锁住你(约定优于配置)

2). 强大的支持多工程的构建

3). 强大的依赖管理(基于Apache Ivy),提供最大的便利去构建你的工程

4). 全力支持已有的Maven或者Ivy仓库基础建设

5). 支持传递性依赖管理,在不需要远程仓库和pom.xml和ivy配置文件的前提下

6). 基于groovy脚本构建,其build脚本使用groovy语言编写

7). 具有广泛的领域模型支持你的构建

参考:gradle_百度百科

2.gradle如何引用?

Gradle 跟 Android Studio 其实没有关系,但是 Gradle 官方还是很看重 Android 开发的,Google 在推出 AS 的时候选中了 Gradle 作为构建工具,为了支持 Gradle 能在 AS 上使用,Google 做了个 AS 的插件叫 Android Gradle Plugin所以我们能在 AS 上使用 Gradle 完全是因为这个插件的原因。在项目的根目录有个 build.gradle 文件,里面有这么一句代码:

buildscript {
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.2"
    }
}

这个就是依赖 gradle 插件的代码,后面的版本号代表的是 android gradle plugin 的版本,而不是 Gradle 的版本,这个是 Google 定的,跟 Gradle 官方没关系。

Android Gradle Plugin每个版本的具体变化和具体功能参考:Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers

3.gradle、android gradle plugin、gradle wrapper区别和联系

  • Gradle是个构建系统,可以简化你的编译、打包、测试过程。熟悉Java的同窗,能够把Gradle类比成Maven。
  • Gradle Wrapper的做用是简化Gradle自己的安装、部署。现在默认新建一个项目,然后点击 AS 上的运行,默认就会直接帮你安装 Gradle ,我们不需要额外的安装 Gradle 了,但是其实这个 Gradle 不是真正的 Gradle ,他叫 Gradle Wrapper ,意为 Gradle 的包装,什么意思呢?假设我们本地有多个项目,一个是比较老的项目,还用着 Gradle 1.0 的版本,一个是比较新的项目用了 Gradle 2.0 的版本,但是你两个项目肯定都想要同时运行的,如果你只装了 Gradle 1.0 的话那肯定不行,所以为了解决这个问题,Google 推出了 Gradle Wrapper 的概念,就是他在你每个项目都配置了一个指定版本的 Gradle ,你可以理解为每个 Android 项目本地都有一个小型的 Gradle ,通过这个每个项目你可以支持用不同的 Gradle 版本来构建项目。
  • Android Plugin for Gradle是一堆适合Android开发的Gradle插件的集合,主要由Google的Android团队开发,Gradle不是Android的专属构建系统,可是有了Android Plugin for Gradle的话,你会发现使用Gradle构建Android项目尤为的简单。

4.Android工程gradle配置?

4.1.Android下多模块gradle配置目录结构

project

├─── setting.gradle

├─── build.grade

├─── app

│         └─── build.gradle

└─── libraries      

        ├─── library1      

         │       └─── build.gradle      

        └─── library2          

                  └─── build.gradle

以一个测试项目为例,来介绍下一个完整的Android项目包含的基本Gradle相关的配置:

 红色标记部分从上到下一步步分析;

4.1.1.FlotWindow/app/build.gradle

这个文件是app文件夹下这个Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件,具体里面的配置下面会介绍;

每个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头可能不一样;

可以独立为APP的Module使用开头:

plugins {
    id 'com.android.application'
}

作为library的Module使用开头:

plugins {
    id 'com.android.library'
}

4.1.2FloatWindow/gradle

这个目录下有个wrapper文件夹,里面可以看到两个文件,我们主要看下gradle-wrapper.properties这个文件的内容:

#Thu Nov 04 13:56:00 CST 2021
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip

其中GRADLE_USER_HOME通常指~/.gradle,从图示项目中能够知道我要使用gradle-6.5版本,从https://services.gradle.org/distributions/gradle-6.5-bin.zip下载,下载到本地的~/.gradle/wrapper/dists目录。那是否是各个项目的Gradle都要经过Gradle Wrapper下载,能不能全部的项目共用一个Gradle?这样理论上是能够的,可是因为Gradle自己不必定保持彻底的兼容性因此新老项目共用一个Gradle有时可能会遇到意想不到的问题。指定对应版本的Gradle,而不经过Gradle Wrapper下载的设置方式是选择Specified location同时指定Gradle home

4.1.3FloatWindow/build.gradle

这个文件是整个项目的gradle基础配置文件,默认的内容就是声明了android gradle plugin的版本;

buildscript {
    dependencies {
        classpa
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值