Android秒级编译方案-FreeLine

Freeline 是什么?


Freeline 是一款 Android 平台上的秒级编译方案,能够显著地提高 Android 工程的编译速度


为什么使用FreeLine


随着Android app 工程越来越大,module越来越多,构建越来越慢有时能有十几min;FreeLine除了首次比较慢外,以后基本都是10s以内,能极大提高开发者效率,有效解决开发者的痛点


FreeLine支持的特性

  • 支持标准的多模块 Gradle 工程的增量构建
  • 并发执行增量编译任务
  • 进程级别异常隔离机制
  • 支持 so 动态更新
  • 支持 resource.arsc 缓存
  • 支持 retrolambda
  • 支持 DataBinding
  • 支持各类主流注解库(APT)
  • 支持 Windows,Linux,Mac 平台

以下列表为 Freeline 支持的热更新情况:

` Java drawable, layout, etc. res/values native so
add
change
remove x -


Freeline 已经分别在 API 17,19,22,23的 Android 模拟器、Android 6.0 Nexus 6P 以及 Android 4.4 锤子手机上经过测试。如果想要充分体验 Freeline 增量编译的速度的话,最好使用 Android 5.0+ 的设备


接入

方法一:AndroidStudio插件

首先按照freeLine插件 进入Preferences → Plugins → Browse repositories 输入freeline关键字 安装插件,安装完毕重启AS;在工具栏会出现

这里写图片描述

点击freeline插件按钮,就可以享受freeline的便捷了,注意首次会执行耗时的全量编译过程。

首次使用freeline时,freeline插件会检测你的app是否配置了freeline,如果没有配置会弹窗提示,直接点击”确定”,此时插件会自动修改app 配置文件,并自动安装 Freeline 的依赖文件

方法二:手动配置

  1. 进入project 根 build.gradle文件 添加freeline依赖

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:2.2.2'
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
            classpath 'com.antfortune.freeline:gradle:0.8.6'//add freeline dependencies
        }
    }
  2. 进入主工程module 编辑build.gradle

    apply plugin: 'com.antfortune.freeline'
    
    android{
        ...
    }
  3. 在命令行执行以下命令来下载 freeline 的 python 和二进制依赖

    gradlew initFreeline //for Windows[CMD]
    /gradlew initFreeline // for Linux/Mac

    对于国内的用户来说,如果你的下载的时候速度很慢,你也可以加上参数,执行

    gradlew initFreeline -Pmirror

    这样就会从国内镜像地址来下载

    配置成功后以后每次调试就可以使用下面命令或者点击AS工具栏”freeline”按钮

    python freeline.py


FreeLine缺陷

  • 第一次增量资源编译的时候可能会有点慢,因为需要额外传递一个完整的资源包
  • 不支持删除带id的资源,否则可能导致aapt编译出错
  • 暂不支持抽象类的增量编译
  • 部分 APT 插件可能需要单独适配
  • 不支持开启 Jack 编译
  • 不支持 Kotlin / Groovy / Scala

更多详情

发布了49 篇原创文章 · 获赞 63 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/dbs1215/article/details/64166592
今日推荐