`

Freeline快速集成

 
阅读更多
1. Freeline是什么?
Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案.
特点:
1) 真增量,构建过程快且增量包体积小,极大提升更改代码部署到手机速度,较Android studio2.0及 LayoutCast快3~5倍
2)跨平台Linux,mac,windows
3)全版本覆盖 2.x ~ 6.x版本均支持
4)部署流程简化,更改代码后,构建过程中,与手机建立了tcp长连接,一行命令即可完成增量部署,毋需到各自子bundle所在的目录构建完成后再进入portal/launcher进行打包再安装到手机的过程
5)事务支持,在开发过程引入的异常不会破坏工作空间
6)无缝支持mPass,解决了类似maven各个节点需merge合并等与常规开发流程不一致的问题
7)进程级别异常隔离,开发体验持续稳定

2. 谁在用?
目前 Freeline 在阿里内部稳定支撑蚂蚁聚宝,高德地图等Android技术团队日常开发,兼容mPaas/gradle架构
开源地址:https://github.com/alibaba/freeline

3. 传统Android打包流程

单线程沿着流水式的任务从上到下进行打包构建,其中,aapt会执行2次,第一次是生成R.java,参与javac编译,第二次是对res里面的资源文件进行编译,最后APKBuilder会把DEX文件与编译好的资源文件及DEX文件进行打包成APK,签名并安装至手机。整个流程下来,没有任何缓存,没有并发,也没有增量,每次构建都是一个全新的过程,所以每次构建时间也比较恒定,代码量,资源量越多,构建时间越慢

4. 目前业界增量解决方案的Layoutcast,buck,以及google的instant run方案,综上几种方案的优缺点;正因为上面几个方案各自有各自的优缺点,Freeline融合各自优点而生,核心技术思想源自于Buck,LayoutCast,并在此基础上进行一步改良,争取把增量思想做到极致。
特点:多任务并发,多级缓存,增量范围最小化,懒加载,基于长链接无安装式运行期动态替换,基线对齐触发机制,可调试

5. Freeline已经分别在API 17,19,22,23的Android模拟器、Android 6.0 Nexus 6P以及Android 4.4锤子手机上经过测试。如果想要充分体验Freeline增量编译的速度的话,最好使用Android 5.0+的设备。下面介绍下集成步骤
1)配置project-level的build.gradle,加入freeline-gradle的依赖:
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.antfortune.freeline:gradle:0.8.1'
    }
}


2)然后在主module的build.gradle中,应用freeline插件的依赖:
apply plugin: 'com.antfortune.freeline'

android {

    freeline {
        hack true
        autoDependency false
        productFlavor 'test' // 渠道名
    }

}

dependencies {
    debugCompile 'com.antfortune.freeline:runtime:0.8.1'
    releaseCompile 'com.antfortune.freeline:runtime-no-op:0.8.1'
    testCompile 'com.antfortune.freeline:runtime-no-op:0.8.1'

}


3)在应用程序的入口处添加如下代码(建议在Application的onCreate()方法里面调用)
FreelineCore.init(this);


4)初始化项目,命令如下:
gradlew initFreeline -Pmirror


在进行第四步时,可能会遇到始终下载不成功的问题,这个时候,可以很笨的直接跳过此步来到了第五步,第五步插件安装后,运行,会提示你运行一行命令,有可能就很快的解决此步下载不成功的问题(可能这种经验是例外,如果有任何问题,可以留言给我,我看到会尽量配合帮助解决;))

5)安装Android Studio插件Freeline。
在Android Studio中,通过以下路径Preferences → Plugins → Browse repositories,搜索“freeline”,并安装。安装好后,如下图:

直接点击 Run Freeline的按钮,就可以享受Freeline带来的开发效率的提升啦(当然,你可能会先需要一个较为耗时的全量编译过程)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics