gradle编译加速小技巧

2016-09-11

项目越变越大的时候,我们需要认真的优化编译速度,提高效率

指定某个module进行编译

1
./gradlew :share_module:build

一个项目可能会依赖多个module,这些module有以下几个特点

  • 通常会作为工具库,或者某个具体业务
  • 有自己的结构,使用可能很高频
  • 有时需要针对某个module做修改

如果你对instant-run不怎么感到爽可以像这样去管理你的编译

1
/*
 * 在项目根目录创建文件moduleList
 * 向该文件中写入你的module,例如:
 * :share_lib
 * :push_lib
 * :more...
 */
def moduleList = new File(getRootDir(),"mouldeList")

//拦截task,设置跳过moudle编译
tasks.whenTaskAdded { task ->
    for (int i = 0; i < moduleList.size(); i++) {
        if (task.name.startsWith(taskList.get(i))) {
            task.enabled = false;
        }
    }
}

这样在debug编译时,只会对:app这个module进行编译,速度上会有一定的提升。

使用增量的模式进行更新

1
/*
 * app目录下的build配置中可以对dex进行配置
 * 这个方案是增量更新,具体并没有深入了解
 */
 dexOptions {
    incremental true
 }

其他关于gradle的加速编译用Google或者别的搜索引擎都能搜索出来吧,大部分是对编译时内存的要求,也是对硬件本身的要求吧

如果有人看到了这篇短文,且真的对你的编译速度有帮助,也请扩展开来,帮助更多需要帮助的开发者。