美文网首页Gradle
Gradle编译优化--让你的打包速度快一倍

Gradle编译优化--让你的打包速度快一倍

作者: MartinHan01 | 来源:发表于2018-12-14 00:16 被阅读0次

    前言

    最近项目打包50个左右,居然要50分钟,这简直是太慢了,所以抽个空优化一下吧。顺便把结果分享给大家。先说结果,开始打包时间将近50分钟。优化后需要24分钟。

    过程

    要想优化,我们必须先知道优化哪里。有一个命令可以帮助我们

    gradlew --profile
    或者
    gradle --profile
    

    这两个的区别我就不解释了,不清楚的话自己google。

    执行完这个命令之后,我们去'\build\reports\profile'路径,找到我们的profile-2017-xx-xx-xx-xx-xx.html文件。

    二话不说先上图,图一图二是优化前的耗时,图三图四是优化后的耗时。
    <img src="http://martinhan.site/images/2017-09-07_143730.png" width="450" height="230"><img src="http://martinhan.site/images/gradle_last.png" width="450" height="230">

    下面就把我优化的过程分享下吧。

    耗时的任务

    我们看上图Summary,Configuration,Dependency Resolution,Task Execition,
    我们看Task Excition,这里面有我们在编译期间每一次进行的耗时。
    笔者在此就不发自己的了,因为还要打码。

    No.1

    首先在你项目的根目录调整你的gradle.properties文件
    我在文件内加入了如下两行

    org.gradle.jvmargs=-Xms2048m -Xmx4096m 
    

    这两行其实就是设置你的jvm虚拟机内存,因人而异,看你机器配置。

    No.2

    同样是gradle.properties文件内,加入如下两行

    # When configured, Gradle will run in incubating parallel mode.
    # This option should only be used with decoupled projects. More details, visit
    # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
    org.gradle.parallel=true
    
    # Enables new incubating mode that makes Gradle selective when configuring projects. 
    # Only relevant projects are configured which results in faster builds for large multi-projects.
    # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
    org.gradle.configureondemand=true
    

    这两句官方给出的解释已经很详细,大概意思就是第一句是只能与解耦项目一起使用。
    第二句是配置这句,会为大型项目加快build

    No.3

    找到你的项目下的build.gradle,加入如下语句

    android {
        aaptOptions {
            cruncherEnabled false
        }
    }
    

    不检查png的合法性,这个大家可以根据自己的项目来判断是否开启。

    结尾

    我目前就改了这几处,可以将gradle提速一倍,希望能帮助到大家

    相关文章

      网友评论

        本文标题:Gradle编译优化--让你的打包速度快一倍

        本文链接:https://www.haomeiwen.com/subject/nrnihqtx.html