Gradle简述

Gradle简介

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。

1.项目自动化
在我们开发软件时,会面临相似的情况就是,我们需要去用IDE来进行编码,当完成一些功能时会进行编译、单元测试、打包等工作,这些工作都需要开发人员手动来实现。而一般的软件都是迭代式开发的,一个版本接着一本版本,每个版本又可能有很多的功能,如果开发每次实现功能时都需要手动的进行编译、单元测试和打包等工作,那显然会非常耗时而且也容易出现问题,因此项目自动化应运而生,它有以下优点:

1:它可以尽量防止开发手动介入从而节省了开发的时间并减少错误的发生
2:自动化可以自定义有序的步骤来完成代码的编译、测试和打包等工作,让重复的步骤变得简单。
3: IDE可能受到不同操作系统的限制,而自动化构建是不会依赖于特定的操作系统和IDE的,具有平台无关性。

2.构建工具

构建工具用于实现项目自动化,是一种可编程的工具,你可以用代码来控制构建流程最终生成可交付的软件。构建工具可以帮助你创建一个重复的、可靠的、无需手动介入的、不依赖于特定操作系统和IDE的构建。

通俗来讲Gradle就是用来打包的,把我们写的java文件打包成apk

2.1 APK的构建过程

APK的构建过程可以根据官方提供的流程图如下图所示。
在这里插入图片描述
APK构建过程主要分为一下几步:

1:通过AAPT(Android Asset Packaging Tool) 打包res资源文件,比如AndroidManifest.xml,xml布局文件等,并将这些xml文件编译成二进制文件,其中asset文件和raw文件不会被编译成二进制文件,最终会生成R.java和resources.arsc文件
2:AIDL工具会把aidl文件转化为对应java接口
3:所有的java代码,包括R.java,全部被编译成.class文件
4:DEX工具会把上步骤生成的.class文件,第三方库和其他.class文件,编译成.dex文件
5:上一步生成的.dex文件,编译过的资源,无需编译的资源(如图片),会被ApkBuilder打包成apk文件
6:使用Debug Keystore或者Release Keystore对上一步生成的APK文件进行签名。
7:如果是对APK正式签名,还需要使用zipalign工具对APK进行对齐操作,这样应用运行时会减少内存的开销。

从以上步骤可以看出,APK的构建过程是比较繁琐的,而且这个构建过程又是时常重复的,如果没有构建工具,手动去完成构建工作,无疑对于开发人员是个折磨,也会产生诸多的问题,导致项目开发周期变长。

Gradle的优点

1: 采用了Groovy

Ant和Maven的构建脚本是由XML来编写的,如果XML逻辑复杂内容太多就不容易维护。Gradle可以使用Groovy来实现构建脚本,Groovy 是基于Jvm一种动态语言,它的语法和Java非常相似并兼容Java,因此你无需担心学习Groovy的成本。Groovy在Java的基础上增加了很多动态类型和灵活的特性,比起XML,Gradle更具有表达性和可读性。

2: 强大的依赖管理

Gradle提供了可配置的可靠的依赖管理方案。一旦依赖的库被下载并存储到本地缓存中,我们的项目就可以使用了。依赖管理很好的实现了在不同的平台和机器上产生相同的构建结果

参考:http://liuwangshu.cn/application/gradle/1-study-gradle.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值