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带来的开发效率的提升啦(当然,你可能会先需要一个较为耗时的全量编译过程)
分享到:
相关推荐
Freeline的出现正是为了解决这个问题,它允许开发者快速地进行小规模的代码更新,而无需提交到应用商店等待审核。 `freeline_gradle.zip`这个压缩包文件,显然包含了与Freeline相关的Gradle工程修改内容。Gradle是...
这个版本是FreeLine工具的0.8.7更新,其核心功能在于为Android Studio提供了一个快速构建的解决方案。 【描述】中提到的"freeline-v0.8.7工具包,用于AS快速编译,FreeLine build只需要5秒",这意味着该工具能够极...
Python-Freeline是由阿里巴巴团队开发的一款针对Android应用的快速构建和部署工具。它的核心目标是提高开发者的效率,通过缓存可重用的类文件和资源指标,实现Android应用的增量构建。这意味着在开发过程中,开发者...
1. **环境配置**:首先需要在项目中集成`Freeline`,这通常涉及在`build.gradle`文件中添加依赖,以及在Android Studio中配置相关的Gradle插件。 2. **初始化**:运行一次`./gradlew freelineSetup`命令,`Freeline...
Freeline是一款高效、快速的Android应用自动化构建工具,旨在大幅度减少开发者在开发过程中频繁编译、部署应用所需的时间。在Android开发中,每次修改代码后都需要进行编译、打包、安装到模拟器或真机上进行测试,这...
Android Studio作为Google官方推荐的Android应用开发工具,拥有丰富的插件支持,而Freeline就是其中的一个,它可以无缝集成到Android Studio中,帮助开发者优化他们的工作流程。 在压缩包文件名称列表中,"freeline...
Freeline的目标是提供一种快速、稳定且对开发者友好、易于集成的编译工具。 为什么选择Freeline?首先,Google的Instant Run虽然方便,但存在一些限制,如对增量编译支持有限,Java文件修改后需重启Application,不...
为了集成Freeline,开发者只需要安装IDE插件,对于复杂工程的特殊配置,可以参考官方文档进行设置。 总的来说,Freeline作为一款开源的快速编译方案,通过创新的技术手段解决了Android开发中的编译速度问题,得到了...
BeeHive是阿里巴巴开源的一站式微服务开发框架,它集成了服务治理、配置中心、分布式任务调度等多个功能,帮助开发者快速构建微服务架构。BeeHive的出现,使得开发者能够更加专注于业务逻辑,而无需过多关注底层服务...
- **秒级编译 Freeline**:介绍 Freeline 工具,加速构建过程。 - **2.2 版本新特性**:介绍 Android Studio 2.2 版本带来的新特性。 - **Gradle 知识普及**:面向初学者的基础 Gradle 知识讲解。 - **Gradle 配置**...