Gradle简要教程

article/2025/10/6 6:18:10

1    什么是Gradle


    最初Android的开发是用Eclipse进行,Eclipse之所以能够用来开发Android项目,是因为一个叫做ADT(Android Developer Tools)的东西,使用ADT,我们只需要写好代码,然后直接在Eclipse上进行编译,运行等一系列操作。自从Google推出Android Studio以来,默认使用Gradle作为构建工具。
    Gradle是一个开源的项目自动化构建工具,建立在Apache Ant 和Apache Maven概念的基础上,并引入了基于Groovy的特定邻域语言(DSL),而不在使用XML形式管理构建脚本。主要用于自动化地进行软件构建、测试、发布、部署、软件打包的项目。

2    依赖管理


    我们知道构建工具不光有编译、打包、运行、签名等功能,还有依赖管理的功能。回到Eclipse,用Eclipse开发的时候,如果我们需要使用到第三方库,我们需要先下载jar包,然后把jar包放到libs目录下,然后就可以使用了。
    在Gradle中,引用jar包的方式稍有区别,把jar包放到libs目录下之后,需要加入以下方法。
 
在此基础上,Gradle增加了新的方式引入第三方库:
 
可以直接看到源地址,想要进行版本升级,直接改后面的版本号,做到更直接的


3    关于Gradle


    Gradle是一种新的构建工具,它是一个独立的项目,与Android、Java无关,与传统的构建工具相比,Gradle采用了一种叫做Groovy的的语言,语法跟Java很像。
    Gradle是一个独立的项目,那么它如何在Android Stuidio上进行Android开发呢? 因为Google团队做了一个AS的插件叫做Android Gradle Plugin,基于这个插件,我们才可以在AS上进行Android Studio开发。在我们的项目的根目录的build.gradle文件里有这么一行代码:
 
这就是我们依赖gradle插件的代码,后面的版本号($gradlePluginVersion)就是Android Gradle Plugin的版本,须注意,这个版本号不是Gradle的版本号。
    当我们创建了一个AS项目,点击运行,默认就会帮我们安装Gradle,但是这个Gradle并不是真正的Gradle,而是Gradle Wrapper,可认为是Gradle的封装。
    简单的说,就是它在你的每一个项目都配置了一个指定版本的Gradle,通过这个每个项目你可以支持用不同的Gradle版本来构建项目。


4    Android项目中Gradle配置文件以及含义


4.1    根目录build.gradle


这个文件是整个项目的 gradle 全局配置文件,代码如下:
 
    buildscript:定义了 Android 编译工具的类路径。
repositories闭包中:
jcenter():它是一个代码托管仓库,很多的Android开源项目都会选择将代码托管到jcenter上,声明了这行配置后,我们就可以在项目中轻松使用任何的jcenter上的开源项目了。
classpath 'com.android.tools.build:gradle:2.2.2'声明了一个Gradle插件。gradle:2.2.2为Gradle插件的版本号。
    allprojects:中定义的属性会被应用到所有 module 中,但是为了保证每个项目的独立性,我们一般不会在这里面操作太多共有的东西。
    buildscript与allprojects的区别:
buildScript块的repositories主要是为了Gradle脚本自身的执行,获取脚本依赖插件。
allprojects块的repositories用于多项目构建,为所有项目提供共同所需依赖包。


4.2    app目录build.gradle


    文件路径:XXX/app/build.gradle
    每个项目单独的build.gradle:针对每个module的配置,如果这里的定义的选项和顶层build.gradle定义的相同,后者会被覆盖。典型的配置内容如下:
 
从文件内容可以看出,主要分为三大部分:


1、apply plugin


  文件中第一行使用apply plugin表示应用了一个插件,该插件一般有两种值可选:
'com.android.application',表示为应用程序模块,可以直接运行;
'com.android.library',表示为库模块,只能作为代码库依附于别的应用程序模块来运行。


2、android闭包


  这个闭包主要为了配置Adnroid项目构建的各种属性,
    compileSdkVersion用于指定项目的编译版本,25表示使用Android 7.1系统的SDK编译。
    buildToolsVersion用于指定项目构建工具的版本。
android闭包中嵌套了defaultConfig闭包和buildTypes闭包:
a) defaultConfig闭包
  对项目的更多细节进行配置,其中applicationId指定了项目的包名,我们可以通过修改这个值来修改项目的包名。
  minSdkVersion指定项目最低兼容的版本,这里指定为15,表示最低兼容到Android 4.0系统。
  targetSdkVersion指定的值表示在该目标版本上已经做过充分测试,系统会为该应用启动一些对应该目标系统的最新功能特性,Android系统平台的行为变更,只有targetSdkVersion的属性值被设置为大于或等于该系统平台的API版本时,才会生效。例如,若指定targetSdkVersion值为22,则表示该程序最高只在Android5.1版本上做过充分测试,在Android6.0系统上(对应targetSdkVersion为23)拥有的新特性如系统运行时权限等功能就不会被启用。
b) buildTypes闭包
  这个闭包主要指定生成安装文件的主要配置,一般包含两个子闭包,一个是debug闭包,用于指定生成测试版安装文件的配置,可以忽略不写;另一个是release闭包,用于指定生成正式版安装文件的配置。
  上面的代码中省去了debug闭包的内容,只写了release闭包。其中minifyEnabled表明是否对代码进行混淆,true表示对代码进行混淆。proguardFiles指定混淆的规则文件,这里指定了proguard-android.txt文件和proguard-rules.pro文件两个文件,proguard-android.txt文件为默认的混淆文件,里面定义了一些通用的混淆规则。proguard-rules.pro文件位于当前项目的根目录下,可以在该文件中定义一些项目特有的混淆规则。


3、dependencies闭包


  该闭包定义了项目的依赖关系,一般项目都有三种依赖方式:本地依赖、库依赖和远程依赖。本地依赖可以对本地的jar包或目录添加依赖关系,库依赖可以对项目中的库模块添加依赖关系,远程依赖可以对jcener库上的开源项目添加依赖关系。


4.3    Gradle文件夹


这个目录底下,有个wrapper文件夹,我们可以看看这个gradle-wrapper.properties文件:
 
可以看到,这里指示了gradle的下载地址以及当前项目使用到的版本号,很多时候,导入项目不成功可能这个版本号不匹配而导致的。


4.4    settings.gradle


这个文件是全局的项目配置文件,里面主要声明一些需要加入 gradle 的 module。


5    相关优化


加快编译速度的方式总结:


5.1    修改运行内存


    方法:菜单栏-help-Edit Custom VM Option,增加如下内容:
-Xms2048m
-Xmx2048m
-XX:MaxPermSize=2048m
-XX:ReservedCodeCacheSize=1024m
-xmx 参数是 Java 虚拟机启动时的参数,用于限制最大堆内存


5.2    修改gradle设置


在gradle.properties中做如下修改
#JVM内存
org.gradle.jvmargs = -Xmx2048m
#开启并行编译
org.gradle.parallel = true
#开启编译守护进程
org.gradle.daemon = true

5.3    使用本地gradle


    开启offline work,编译时,Android Studio会从cache中加载各种依赖,在第一次成功编译后,开启次选项会减少远程成就依赖,从而加快编译。


5.4    使用 Instant Run


    此功能可以减少编译次数,例如:修改TextView值的时候,可以快速的体现在手机上,而不用重新编译工程。


http://chatgpt.dhexx.cn/article/OVvJrqfW.shtml

相关文章

一、Gradle入门

文章目录 一、Gradle入门1.1 Gradle 简介1.2 常见的项目构建工具1.3 Gradle 安装1.3.1 Gradle 安装说明1.3.2 安装 JDK1.3.3 下载并解压到指定目录1.3.4 配置环境变量1.3.5 检测是否安装成功 1.4 Gradle 项目目录结构1.5 Gradle 创建第一个项目1.5.1 Gradle 中的常用命令1.5.2 …

gradle入门教程

一、gradle安装及配置 1、下载及安装 去gradle官网下载对应gradle安装包。首页点击“Install Gradle”,对应页面的“Installing manually”下点击download,选择对应版本下载即可。有Binary-only和Complete两种。Complete是带了文档的。然后解压到任意目…

Gradle 学习 ----Gradle 入门

1 、Gradle入门 Gradle入门 1 、Gradle入门1. 1 、Gradle简介1. 2 、常见的项目构建工具1. 3 、Gradle安装1. 3. 1 、Gradle安装说明1. 3. 2 、安装JDK1. 3. 4 、配置环境变量1. 3. 5 、检测是否安装成功1. 4 、Gradle项目目录结构1. 5 、Gradle创建第一个项目扩展:命令创建项目…

找不到适合自己的工作很迷茫怎么办?

有些人在求职的过程中,可能会遇到这样的情况:发offer的公司自己不想去,想去的公司又不愿意给自己一个机会,努力了很久但一直找不到合适的工作。这个时候,如果继续每天在家无所事事的话,很可能会越想越多&am…

找不到合适的工作怎么办

这是我在分答上收到的几个问题: 我刚刚为了一份喜欢的工作放弃了别人介绍的工作,是不是很冲动?职业上经常讲匹配度,但是在现实中为什么匹配度很难落地呢?你越不想要的,他越出现,你想要的&#x…

时局不利,如何化解职场焦虑?

部分数据来源:ChatGPT 在不景气的经济环境下,大多数求职者都面临极大的压力,而技术人员又是其中之一。他们不仅需要不断学习新技能,还需要面对工作市场的竞争,并努力将自己的技能提升到所需的水平。一旦被拒绝或无法找…

工作琐事太多怎么办_待办的事情太多,如何有条不紊的进行工作呢?

【子亦观点】:事情太多难以理清是很多人都遇到的问题,协调不好就会出现混乱的状态和低效的结果,更甚者会因此产生焦虑情绪。所以必须掌握科学合理的管理方法,并有效运用到工作和生活中,减轻压力和负担。 什么原因导致处理事务容易混乱? 1.总是被突发事件打断 当你坐到电脑…

找不着工作怎么办?以下六条一定要听我说。

找不着工作怎么办? 如果今年找不到工作,以下六条一定要听我说。 第一条呢,今年找不着工作可能跟你的能力没有太大的关系。所以不要沮丧,为什么?因为今年大环境非常糟糕,大厂动不动裁员。1/3还在继续裁。你…

如果一份工作让你时常感到焦虑,你会不会立马辞职?

点击上面↑「爱开发」关注我们 每晚10点,捕获技术思考和创业资源洞察 优越感可以让我们变得更自信,能适当有效缓解职场焦虑症,因为一个有成就感的人的内心通常会充满力量,正能量满满。 如果一份工作让你时常感到焦虑,你…

找不到工作怎么办,多半是“废了”,按这3步你也能找到工作

第一步,掂量自己 我们先算一下自己有几斤几两,看看自己的适合什么位置,避免做到自大或者是贬低自己,那么我们的工作中就能做的比较顺利。 掂量自己也是对自己的总结,在总结中我们就可以知道自己的红点和黑点&#xf…

常年不卷,按时下班,工作能力强,同事求助知无不言,不扯皮,不拉帮结派,这样的职场清流竟然被裁掉了!...

在职场上,你永远想不到什么样的员工会被优化,比如下面这位: 常年不卷,按时下班,工作很专业,同事问什么都回答,不扯皮,不拉帮结派,简直是职场清流。在上个月竟然被优化了&…

职场中,如何让“讨厌的人”配合自己工作?

在职场上,我们总会遇到那么几个不愿意配合你工作的人,不仅不配合,甚至还喜欢扯皮,推卸责任,甩锅给自己的队友。然而,我们也不可能因为工作中出现了这样一个或几个人,就离职不干,或者…

如何在工作中保持稳定的情绪? – 个人看法和建议

文章目录 每日一句正能量前言情绪波动的原因建议情绪调节技巧和策略身处逆境,如何治愈自己 后记 每日一句正能量 所谓的快乐,是指身体的无痛苦和灵魂的无纷扰。——伊壁鸠鲁 前言 在工作中保持稳定的情绪对于每一个职场人来说都是非常重要的。随着工作压…

失业找不到工作,很焦虑怎么办?

前言 最近经常看到很多人在上海找工作已经找到自我怀疑了,甚至把自己身上的积蓄都花光了,还没找到工作。 以后失业是常态,失业的速度也会加速。 很多人在职业生涯中都会面试失业、找工作。 目前由于求职者过多,就业机会少出现…

程序员保持天天快乐的6个习惯

忍不住感叹,我第一次对Buffer(在社交媒体上发布最简单的方式)有所想法已经差不多是两年前的事了。并且,在我有想法的一年半前,我还在前面那家新创公司工作的时候,我注意到在创立公司的时候各种模式都有&…

工作中遇到挫折是常态,怎么化解才是关键

杰瑞 提问: 明哥好,想请教一下关于保持心态的问题。在职场中经常会遇到不顺心的事:上下级矛盾、被客户惹恼、项目进展达不到预期等等,见过心态爆炸直接破口大骂的,见过一言不发硬着头皮坚持埋头干的,也见过…

RHCSA作业

第三天 1.修改主机名: 查看主机名 2.查看日期 使用指定格式输出日期 YY-mm-DD HH:MM:SS 3.将"We are learning RHCSA"输出在屏幕上 4.使用timedatectl查看时间状态 列出所有已知时区 修改时区为列出时区的某一个 5.使用wget命令在https://www.pearvideo.com/这个网站…

RHCSA实战

一. 配置网络设置 1.主机名:node1.domain250.example.com hostnamectl set-hostname node1.domain250.example.com 2.IP 地址:172.25.250.100 3.子网掩码:255.255.255.0 4.网关:172.25.250.254 5.DNS服务器:172.25…

RHCSA考试

考试说明 考试时有套注册系统,需要填写自己的信息,全英文, 名字时证书上的名字 Timimg_Lee 邮箱 用 qq 邮箱,建议用 真实系统密码不能进入超级用户 有自己的一套管理系统 Rebuild exam 不要点。 其他信息 您的机器时 example.com 域的一个成员。Example.com 域的所有系统在 17…

rhcsa8学习和模拟考试

rhcsa8学习 物理机foundationX:172.25.254.X/24 使用kiosk/redhat 登录。root/Asimov 所有虚拟机除了classroom之外,都可以登录,root/redhat student/student。 在物理机foundationX上控制虚拟机,命令如下: rht-vmc…