Freeline极速编译方案的开源之路_第1页
Freeline极速编译方案的开源之路_第2页
Freeline极速编译方案的开源之路_第3页
Freeline极速编译方案的开源之路_第4页
Freeline极速编译方案的开源之路_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Freeline:极速编译方案的开源之路技术创新,变革未来Android 编译慢?编译时刷个知乎?Instant Run 编译怎么又慢了?模块化配置不好搞呀?buck也太难迁移了吧?Instant Run 跑不起来?人民币玩家:加钱上 SSD?加钱上 Mac?他们在使用 Freeline蚂蚁聚宝阿里巴巴高德地图陌陌携程旅行美团平安普惠聚美优品今日头条爱奇艺视频百度浏览器滴滴出行哔哩哔哩荔枝FM内涵段子DJI Go酷狗音乐青石证券平安证券滴答清单章鱼店长薄荷乐视车联FitTime大众点评喜马拉雅闲鱼来疯直播微北洋58速运她理财壹钱包2016 年 8 月开源,目前是 Alibaba Github

2、下排行前十的开源项目目前已有上千款应用接入使用 Freeline,可能是东半球用户最多的第三方编译工具为什么选择 Freeline?Instant RunProsGoogle 亲儿子,Android Studio 随身携带零配置,相对其他方案最为稳定,基本无侵入性影响Cons对增量编译的支持有局限性,无法所有的代码修改都支持增量编译修改 Java 文件会重启Application,带来调试困难增量修改的代码不支持debug复杂的工程结构无法支持不支持Kotlin 与 JackFacebook buck / Uber - okbuckProsFacebook 出品,其内部统一使用的构建系统okb

3、uck 是一个帮助gradle 工程快速集成buck 的开源工具,目前由 uber 维护多线程并发编译,充分利用缓存,近似增量编译已支持retrolambdaCons对于有历史包袱的大型工程接入,需要较高的成本构建过程与Gradle 不同,有较高的学习曲线(国内基本没有太多相关资料)无法迅速用上社区最新的技术需要重新安装APK不支持Kotlin不支持WindowsJRebel for AndroidPros比 Instant Run 还早的增量编译工具,zeroround 有大量的JVM 热部署的实践积累零配置,只需安装插件即可立即运行支持 retrolambda 与大量流行的Android

4、开发组件库字节码层面的动态加载,理论上支持Kotlin、Groovy 等各种基于JVM 的语言Cons收费,且价格不菲,不过现在可以免费试用一年不支持DataBinding只有收费版才能debug,并且需要专门的debug 插件Crash 后需要重新全量编译,单次全量编译、安装的速度非常慢不支持JackFreelinePros支持绝大多数场景的增量编译支持 Retrolambda 与 APT,部分支持DataBinding支持 so 动态替换资源增量编译速度快,I/O 小支持 Windows/Linux/MacApp crash 后,仍然能够进行增量编译来修复Cons对于单module 的简单

5、工程,没有特别的优势Hack 方案的本质导致了存在无法避免的兼容性问题不支持删除带 id 的资源不支持Kotlin 与 JackFreeline 的原理是什么?Freeline 的原理本质:基于Gradle 构建系统上的一套Hack 解决方案,绕过一切构建耗时的过程,将热部署技术运用于开发期,实现实时热替换,即增量编译。缺陷:兼容性问题理念:充分利用多核性能,多级缓存,超细粒度打包,尽可能减少不必要的编译步骤Freeline 全量编译基于 Gradle 工程构建之上的Hack构建过程收集依赖信息为资源的增量编译构建全量资源包Freeline 增量编译最小粒度的编译单元,极限提速:根据依赖关系进

6、行增量、并发构建尽可能dex merge,而不是 dx统一的资源编译(动态修改R.java)对数十个模块的大型工程有显著的加速作用缺点:对于需要全量class 依赖的 APT 工具,只能全量构建未来规划?Freeline 未来规划关注 Android Gradle Plugin 的最新动态:Freeline 未来规划关注 AAPT2 进展:Freeline 未来规划&etc.如何集成?集成 Freeline只需一个 IDE 插件即可运行复杂工程特殊配置可以参考官网 文 档 : https:/Freeline 的开源历程Freeline 的开源历程诞生:2015.10,一个 3000 多行的 P

7、ython 文件,仅支持基于maven 构建的mPaaS 框架工程最长可达 30 分钟的编译时间,缩短为 10s 增量编译工程效能达到质的飞跃Freeline 的开源历程重构:2016.05,支持 Gradle 构建的 Android 工程,并在阿里集团内部开源开源:2016.08,当天登上 Github Trending 总榜感谢第一个接入 Freeline 的团队Freeline 的开源历程发展:2016.12,QCon 上海的宣传以及获得多个技术公众号的推荐与转载,连续一个月出现在Github Java Trending 榜单上,社区内开始有多篇在讨论 Freeline 的技术文章我们做了什么:APT 、Retrolambda 与DataBinding 的支持,持续的兼容性提升,推出了IDE 插件,不断满足社区的需求“经营”一个开源项目开源项目需要“经营”,而不是放任生长爆炸性增长来自于开发者之间的自发传播持续地去满足社区的需求与社区用户保持良好的沟通Freeline 开源的“反哺”提高蚂蚁聚宝技术团

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论