Gradle核心思想(一)为什么现在要用Gradle?

本文首发于微信公众号「刘望舒」

关联文章
Gradle核心思想(一)为什么现在要用Gradle?
Gradle核心思想(二)Gradle入门前奏
Gradle核心思想(三)Groovy快速入门指南
Gradle核心思想(四)看似无用,实则重要的Gradle Wrapper
Gradle核心思想(五)通俗易懂的Gradle插件讲解

前言

又要开启一个新系列了,这个系列我们来学习Gradle,它是一个基于JVM的新一代构建工具,关于Gradle完全可以写一本书,这个系列会针对Android开发来对Gradle的知识进行精简讲解。Gradle目前已经应用于多个Android开发的技术体系中,比如构建系统、插件化、热修复和组件化等等,如果你不了解Gradle,那么你对于上述技术体系的了解会大打折扣。为了让大家能够更好的学习Gradle,这篇文章不会介绍Gradle具体的技术细节,而是先介绍为什么现在要用Gradle?

1.项目自动化

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

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

2.构建工具

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

2.1 APK的构建过程

APK的构建过程可以根据官方提供的流程图如下图所示。
VZOPCq.png

这个APK构建的过程主要分为以下几步:

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

从以上步骤可以看出,APK的构建过程是比较繁琐的,而且这个构建过程又是时常重复的,如果没有构建工具,手动去完成构建工作,无疑对于开发人员是个折磨,也会产生诸多的问题,导致项目开发周期变长。
在Gradle出现之前,有三个基于Java的构建工具:Ant、Gant和Maven,它们被应用于Java或者Android开发中,我们来看看它们都有什么特点。

2.2 Apache Ant

VZOpUs.png

Ant在这里不是蚂蚁的意思(虽然它的图标是蚂蚁),而是Another Neat Tool的意思。
它是由 James Duncan Davidson 开发的(Tomcat 最初的开发者),最初是用来构建 Tomcat。在2000年,Ant成为一个独立的项目并被发布出来。Ant 是由 Java 编写的构建工具,它的核心代码是由Java编写的,因此具有平台无关性,构建脚本是XML格式的(默认为bulid.xml),如果你熟悉XML,那么Ant 就比较容易上手。

Ant构建脚本的样式如下所示。
bulid.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="test" default="hello">
    
  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值