为什么Gradle是所有Android进阶开发绕不去的坎?
一、Gradle是所有Android进阶开发绕不去的坎的原因
Gradle 作为目前官方主推的构建系统,已经深度应用于 Android 的多个技术体系中,例如组件化开发、产物构建、单元测试等,所以要进行Android进阶开发,必须了解、学习Gradle。
Gradle在Android进阶开发的应用:
项目依赖管理:Gradle可帮助开发者管理项目的依赖关系,例如库依赖、插件依赖等。通过Gradle的配置,可以自动下载和更新依赖库,从而提高开发效率。组件化开发:Gradle支持模块化开发,可以将应用程序拆分为多个模块,各个模块之间可以互相独立,便于管理和调试。自动化构建:Gradle可以自动执行构建任务,例如编译代码、打包输出等,避免手动操作的繁琐和出错,从而提高开发效率。多渠道打包:Gradle支持根据不同的渠道生成不同的APK包,例如Google Play、华为应用市场、小米应用商店等。通过渠道打包,可以方便地进行版本控制和统计,并对应不同平台的需求进行优化。单元测试:Gradle内置支持单元测试,可以方便地执行各种单元测试,并且可以生成测试报告,帮助开发者保证代码质量。二、Gradle简介
1、Gradle概念
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。Gradle面向Java应用为主。当前其支持的语言C++、Java、Groovy、Kotlin、Scala和Swift,计划未来将支持更多的语言。
2、Gradle优缺点
优点:
表达性的 DSL:Gradle使用基于 Groovy 的 DSL 领域特定语言编写构建脚本,相比于传统的 XML 文件,更加简洁易读。基于 Java 虚拟机:Groovy 语言基于 Java 虚拟机,使得开发人员可以使用 Java / Kotlin 代码编写 Gradle 构建脚本,并且只需要掌握一小部分 Groovy 语法即可轻松上手。约定优于配置:Gradle 容易上手,具有约定优于配置的原则,即为属性提供默认值,避免了在配置过程中的繁琐和错误。缺点:
向后兼容性问题:Gradle是一个快速发展的工具,新版本经常会打破向后兼容性,这意味着从一个版本迁移到另一个版本时可能会产生一些问题。学习曲线略高:由于Gradle使用了DSL,需要学习该语言的语法和特性,才能更好地理解和掌握 Gradle。3、Gradle中的重要概念
Gradle:提供核心构建流程,但不提供具体构建逻辑;Gradle 插件:Gradle 提供的是一套核心的构建机制,而 Gradle 插件正是运行在这套机制上的一些具体构建逻辑,本质上和 .gradle 文件没有区别。例如,我们熟悉的 Android 构建流程就是由 Android Gradle Plugin 引入的构建逻辑;Gradle Daemon:用于提升构建速度的后台进程;Gradle Wrapper:对 Gradle 的封装,增加了自动下载安装 Gradle 环境的能力;环境变量 GRADLE:用于定义 Gradle 的安装目录;环境变量 GRADLE_USER_HOME:用于定义 Gradle 运行过程的文件存储目录,例如 Gradle Wrapper 自动安装的 Gradle 环境、构建缓存等。4、Gradle的功能
gradle对多工程的构建支持很出色,工程依赖是gradle的名列前茅功能。gradle支持局部构建。支持多方式依赖管理:包括从maven远程仓库、nexus私服、ivy仓库以及本地文件系统的jars或者dirsgradle是名列前茅个构建集成工具,与ant、maven、ivy有良好的相容相关性。轻松迁移:gradle适用于任何结构的工程,你可以在同一个开发平台平行构建原工程和gradle工程。通常要求写相关测试,以保证开发的插件的相似性,这种迁移可以减少破坏性,尽可能的可靠。这也是重构的优异实践。gradle的整体设计是以作为一种语言为导向的,而非成为一个严格死板的框架。免费开源延伸阅读1:Gradle的 3 大特性
高度可定制:它的高度可定制化体现在,它以最基本的方式可定制和可扩展的方式建模;快速:Gradle 通过重新使用以前执行的输出,仅处理已更改的输入以及并行执行任务来快速完成任务。通俗点就是说,第二次构建,只构建我们修改代码相关的类,不会耗费时间来构建整个项目;强大:Gradle 是 Android 的官方构建工具,并支持许多流行的语言和技术。
相关推荐HOT
更多>>
如何使用Pandas处理Excel?
如何使用Pandas处理Excel?做过行政或者人事,或者对此有过了解的小伙伴,一定对下发各个部分的表有着非常深刻的印象,最常见的就是需要我们将一...详情>>
2023-11-14 07:43:15
python中np.insert()函数的使用方法
python中np.insert()函数的使用方法在numpy数组操作中,np.append()方法可以在每行每列的最后添加数据,但其位置是规定的,那如果想要指定添加...详情>>
2023-11-14 05:06:13
SVM在python中的原理如何理解?
SVM在python中的原理如何理解?在python中除了编程化的知识点外,对于数学方法的算法也有所涉及,SVM就是一种很好地体现。我们学习过数学中的坐...详情>>
2023-11-14 04:30:04
python处理绝对路径和相对路径函数有哪些?
python处理绝对路径和相对路径函数有哪些?绝对路径和相对路径是什么?绝对路径:从根文件夹开始,Windows系统以盘符(C:)作为根文件夹,OSX或Lin...详情>>
2023-11-14 03:33:02热门推荐
如何使用python any()判断多元素?
沸如何使用Pandas处理Excel?
热python函数中的参数有哪些?
热python中pygal模块如何使用?
新Python的excel处理操作
python中doctest库是什么?
python中series是什么意思
python中np.insert()函数的使用方法
SVM在python中的原理如何理解?
Python描述符中有哪三种方法?
python处理绝对路径和相对路径函数有哪些?
python单继承和多继承如何定义?
python封装中的私有如何理解?
python模块引入的三种方式
技术干货






