福利-Android 增量编译 3~5 秒

3,516 阅读1分钟

最近在浏览github trending的时候,发现freeline连续几天上榜,freeline刚开源的时候,试用过一次,当时apt和lambda都不支持,所以就放弃了。看了freeline最近的update log,发现apt、databinding等好多特性都开始支持了,非常开心地试用了一下,非一般的感觉,所以安利给大家。

概述

Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具。它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。
Freeline能够为Android开发者节省很多喝杯咖啡的时间 : )

具体原理的话可以参考中文原理说明

基本使用

  1. 在app gradle中配置:
    buildscript {
     repositories {
         jcenter()
     }
     dependencies {
         classpath 'com.antfortune.freeline:gradle:0.8.2'
     }
    }
  2. 在moudle gradle中配置

    apply plugin: 'com.antfortune.freeline'
    android {
         freeline {
             hack true
             //如果配置了多Flavor,可以在这里指定编译的Flavor
             productFlavor "develop"
          }
    }

    更多的配置可参考Freeline DSL References

  3. 命令行执行
    首先执行

    ./gradlew initFreeline

    然后第一次全量编译

    python freeline.py -f

    之后就可以愉快地增量编译了,速度之快,啧啧啧

    python freeline.py

    Paste_Image.png

    用时1.6秒,加上界面重新启动1,2秒,一般5秒可以看到修改的效果,幸福过倍增。

  4. 插件化工具
    可以在android studio中搜索插件freeline,安装后以上三步即可省略,一步到位。
    不过使用过程中感觉插件还是略有bug,运气好的话非常顺利,运气不好就各种问题了,所以还是推荐自己配置freeline,然后使用命令行编译的方式。