- 2)、它使用了 Groovy 这个语言,创造了一种 DSL,但它本身不是语言。
2、为什么使用 Gradle?
主要基于如下 三点 原因:
- 1)、它是一个款最新的,功能最强大的构建工具,使用它我们能做很多事情。
- 2)、使用程序替代传统的 XML 配置,使得项目构建更加灵活。
- 3)、丰富的第三方插件,可以让我们随心所欲地使用。
3、Gradle 的构建流程
通常来说,Gradle 一次完整的构建过程通常分成如下 三个部分:
- 初始化阶段:首先,在初始化阶段 Gradle 会决定哪些项目模块要参与构建,并且为每个项目模块创建一个与之对应的 Project 实例。
- 配置阶段:然后,配置工程中每个项目的模块,并执行包含其中的配置脚本。
- 任务执行:最后,执行每个参与构建过程的 Gradle task。
二、打包提速
掌握 Gradle 构建提速的技巧能够帮助我们节省大量的编译构建时间,并且,依赖模块越多且越大的项目节省出来的时间越多,因此是一件投入产出比相当大的事情。
1、升级最新的 Gradle 版本
将 Gradle 和 Android Gradle Plugin 的版本升至最新,所带来的的构建速度的提升效果是显而易见的,特别是当之前你所使用的版本很低的时候。
2、开启离线模式
打开 Android Studio 的离线模式后,所有的编译操作都会走本地缓存,毫无疑问,这将会极大地缩短编译时间。
3、配置 AS 的最大堆内存
在默认情况下, AS 的最大堆内存为 1960MB,我们可以选择 Help => Edit Custom VM Options,此时,会打开一个 studio.vmoptions 文件,我们将第二行的 -Xmx1960m 改为 -Xmx3g 即可将可用内存提升到 3GB。
4、删除不必要的 Moudle 或合并部分 Module
过多的 Moudle 会使项目中 Module 的依赖关系变得复杂,Gradle 在编译构建的时候会去检测各个 Module 之间的依赖关系,然后,它会花费大量的构建时间帮我们梳理这些 Module 之间的依赖关系,以避免 Module 之间相互引用而带来的各种问题。除了删除不必要的 Moudle 或合并部分 Module 的方式外,我们也可以将稳定的底层 Module 打包成 aar,上传到公司的本地 Maven 仓库,通过远程方式依赖。
5、删除Module中的无用文件
- 1)、如果我们不需要写单元测试代码,可以直接删除 test 目录。
- 2)、如果我们不需要写 UI 测试代码,也可以直接删除 androidTest 目录。
- 3)、此外,如果 Moudle 中只有纯代码,可以直接删除 res 目录。
6、去除项目中的无用资源
在 Android Studio 中提供了供了自动检测失效文件和删除的功能,即 Remove Unused Resource 功能,操作路径如下所示:
右键 => 选中 Refactor => 选中Remove Unused Resource => 直接点击REFACTOR
需要注意的是,这里不需要将 Delete unused @id declarations too 选中,如果你使用了 databinding 的话,可能会编译失败。
7、优化第三方库的使用
一般的优化步骤有如下 三步:
1)、使用更小的库去替换现有的同类型的三方库。
2)、使用 exclude 来排除三方库中某些不需要或者是重复的依赖。
例如,我在 Awesome-WanAndroid项目中就使用到了这种技巧&#