Android 平台上的秒级编译方案 - Freeline

Freeline是什么?

Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效果,另外在class及dex,resources层面作了相应缓存策略,做到真正增量开发,另外引入并优化buck的部分加速组件dx,DexMerger,资源编译方面,深入改造了Aapt资源编译流程,当资源发生改变时候,秒级完成增量包编译,其中增量包仅含最小的变更集合(10Kb~数百Kb内),后期也被运用到线上进行资源/代码动态替换。相比目前instant-run,buck,layoutcast等方案快数倍速度。

项目地址:https://github.com/alibaba/freeline

使用教程

  • 工具
    Android Studio + Python环境(python2.7)

  • 配置
    project-build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.antfortune.freeline:gradle:0.8.6'
    }
}

module’s build.gradle:

apply plugin: 'com.antfortune.freeline'

注:以上配置只是追加上去就行,不用把gradle相关的去除。

dependencies {
  debugCompile 'com.antfortune.freeline:runtime:0.8.6'
  releaseCompile 'com.antfortune.freeline:runtime-no-op:0.8.6'
  testCompile 'com.antfortune.freeline:runtime-no-op:0.8.6'
}
android {
    defaultConfig {
        minSdkVersion 14 //freeline要求在14以上
    }
…
  freeline {
      hack true
      productFlavor "znds"
      autoDependency false
  }
}
  • 插件安装
    studio中安装插件:Freeline Plugin。安装后工具栏,如图:
    这里写图片描述

顶部菜单栏:
这里写图片描述

底部Freeline Console:
这里写图片描述

  • 代码植入(这步可以省略,会自动植入)
    Application中植入代码:
public void onCreate() {
    FreelineCore.init(this);   
    super.onCreate();
    …
}

之后,点击工具栏上的那个蓝色按钮,就可以运行项目了。
首次编译时间较长,因要生成python相关文件,后期编译时间只需要几秒钟…
如果编译遇到问题,后期查资料解决了,但是运行还是失败了,可以尝试使用 Run Freeline Force 选项。

mac os 下可能报 『OSError: [Errno 13] Permission denied』,解决方法是 给工程路径下的gradlew 加上可执行权限: $ chmod +x gradlew 。还可能报「…android_tools.py”, line 343, in execute self._command.execute()」类似这样的,解决方法是:$ chmod -R +x release-tools/

如果配置了 multiDexEnabled true,需要自定义Application,并继承MultiDexApplication,然后在onCreateMultiDex.install(this);

studio更新到2.3后,gradle也可以更新到2.3.0了。然后貌似freeline0.8.6配合gradle2.3.0好像有问题。所以gradle还是用2.2.3版本。

freeline版本发布通知:https://github.com/alibaba/freeline/releases

参考资料:
Freeline - Android平台上的秒级编译方案 —— https://yq.aliyun.com/articles/59122

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值