深入理解 Android 之 Gradle
Gradle 是当前非常“劲爆”得构建工具。本篇文章就是专为讲解 Gradle 而来。介绍 Gradle
之前,先说点题外话。
一、题外话
说实话,我在大法工作的时候,就见过 Gradle。但是当时我一直不知道这是什么东西。
而且大法工具组的工程师还将其和 Android Studio 大法版一起推送,偶一看就更没兴趣了。
为什么那个时候如此不待见 Gradle 呢?因为我此前一直是做 ROM 开发。在这个层面上,我
们用 make,mm 或者 mmm 就可以了。而且,编译耗时对我们来说也不是啥痛点,因为用
组内吊炸天的神机服务器完整编译大法的 image 也要耗费 1 个小时左右。所以,那个时侯
Gradle 完全不是我们的菜。
现在,搞 APP 开发居多,编译/打包等问题立即就成痛点了。比如:
一个 APP 有多个版本,Release 版、Debug 版、Test 版。甚至针对不同 APP Store
都有不同的版本。在以前 ROM 的环境下,虽然可以配置 Android.mk,但是需要依
赖整个 Android 源码,而且还不能完全做到满足条件,很多事情需要手动搞。一个
app 如果涉及到多个开发者,手动操作必然会带来混乱。
library 工程我们需要编译成 jar 包,然后发布给其他开发者使用。以前是用
eclipse 的 export,做一堆选择。要是能自动编译成 jar 包就爽了。
上述问题对绝大部分 APP 开发者而言都不陌生,而 Gradle 作为一种很方便的的构建工
具,可以非常轻松得解决构建过程中的各种问题。
二、闲言构建
构建,叫 build 也好,叫 make 也行。反正就是根据输入信息然后干一堆事情,最后得
到几个产出物(Artifact)。
最最简单的构建工具就是 make 了。make 就是根据 Makefile 文件中写的规则,执行对
应的命令,然后得到目标产物。
日常生活中,和构建最类似的一个场景就是做菜。输入各种食材,然后按固定的工序,