千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:成都千锋IT培训  >  技术干货  >  为什么说Gradle是Android进阶绕不去的坎?

为什么说Gradle是Android进阶绕不去的坎?

来源:千锋教育
发布人:xqq
时间: 2023-10-17 21:36:27

一、Gradle是Android进阶绕不去的坎的原因

Gradle 是 Android 开发中使用非常广泛的构建工具,也是 Google 推荐的构建系统。Gradle 作为官方主推的构建系统,目前已经深度应用于 Android 的多个技术体系中,例如组件化开发、产物构建、单元测试等。

二、Gradle是什么

Gradle是一个自动化构建继承工具,它基于JVM,运行在JAVA的环境之上,可以通过简单的配置就可以快速的编译打包,同时它也支持多工程构建、局部构建、多方式以来等特点。Android开发者是如何解除到Gradle的,因为每当我们创建一个项目,就会的模块目录下和根目录下默认创建bulid.gradle,我们通过引用库来管理第三方的Library,也可以编写一些变量和脚本去编译我们的程序,比如修改生成apk的名称等。

三、gradle 和maven 对比

Gradle作为一款基于Groovy语言的构建工具,和Gradle相比,ant显得冗余复杂,maven显得有些死板落后,而gradle基于DSL语法,特点明显:简洁、灵活、可读性强。

1、基础配置信息

maven使用.pom文件,基于XML,gradle使用.gradle文件,基于Groovy,gradle去掉maven中需要固定配置的groupId,artfactId,package等基本参数,通过 apply plugin: ‘java’,apply plugin: ‘war’来表示打包方式,也提供sourceCompatibility,version等一些实用的标签。

2、依赖管理

Gradle的jar包管理支持maven下Repository方式,也支持Ant的Ivy方式,由于maven的Repository已经非常成熟,gradle在兼容Repository做得非常方便,定义maven的repository:mavenLocal() :maven 本地库、mavenCentral() : maven 远程库、mavenRepo urls: 自定义库路径。

maven通过groupId、name和version到配置的Repository里寻找指定依赖中的Jar包。Gradle的生命周期更为复杂,但也支持Maven依赖中的构建生命周期,compile、runtime、testCompile和testRuntime分别对应项目不同阶段的依赖。 并且还简化maven的配置命令

3、多项目管理

实际使用中,往往需要管理的都不是单单一个项目,maven使用依赖,继承,组成的概念,在父模块指定自己的子模块,并且准备一些各个子模块公用的资源,如插件,配置信息等等。将打包的模块与实现具体功能的模块分开的做法来管理多个项目。Gradle在这一方面做得更加清楚,划分更明确,学习gradle的多项目管理也很容易,在eclipse中安装完gradle插件之后,新建一个Gradle工程,选择flat-java-multiproject,生成的工程就是多项目管理一个示例。

Gradle通过settings.gradle文件来指定工程的子项目,在构建的初始化阶段(Initialization),Gradle会根据settings.gradle 文件来判断有哪些子项目被include到了构建中,并为每一个子项目初始化一个Project对象,在构建脚本中通过project(‘:sub-project-name’)来引用子项目对应的Project对象。关于多项目配置有非常多,因此就简述一下常用的配置共享以及配置独享。

延伸阅读1:Gradle生命周期

初始化阶段: 解析setting.gradle文件配置阶段:解析所有的projects对象中的task,主要解析各个project下的build.gradle文件执行阶段:执行project下具体的的task及其依赖task
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

sql server2012r2所在服务器做端口限制,需要开放什么端口才能继续访问数据库?

2023-10-17

Oracle有什么优势和劣势?

2023-10-17

CSS 隐藏页面元素有哪些方法?

2023-10-17

最新文章NEW

数据库聚集索引非聚集索引实现上有哪些区别?

2023-10-17

开发web应用,好的开发流程是怎么样的?

2023-10-17

为什么说Gradle是Android进阶绕不去的坎?

2023-10-17

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>