使用秒级编译方案-Freeline

maven+bat实现批量编译工程 这两天公司开始部署测试环境,微服务工程比较多,索性写了个批处理文件来编译所有的工程,调用python脚本发布到服务器上,实现一键发布到服务器。 下面是具体的批处理代码: set target_jar="D:\Project\ca-workspace\Jars" echo "正在编译ns-common=============================================" s 阅读详情

转载请注明出处
http://blog.youkuaiyun.com/guodongandroid/article/details/54174776
本文来自【孫小逗的博客】

使用秒级编译方案-Freeline

一、关于Freeline

Freeline是蚂蚁金服旗下开发的一个基于动态替换的编译方案,运用到项目后可以极大的提高项目编译速度。相比较现在的instant-run,buck,layoutcast等方案快数倍。
GitHub地址
官网

二、集成Freeline

这里只说Windows下的集成,Linux/Mac 请自行百度/Google。(屌丝没有MacBook)

1、集成前的准备

你需要提前安装 Python 2.7+(Freeline 暂时还不支持 Python 3+),安装完之后需要重启一下 Android Studio。
Python 2.7.13下载地址

2、如何集成

提供了两种方式集成Freeline,最简单的方法是通过 Android Studio 的插件来集成(实际上是对命令行的方式做了封装,提供自动化的解决方案),另一种则是手工通过修改配置与执行命令的方式来集成。
建议使用方法二,自己先捣鼓一遍,最后使用插件。

方法一:Android Studio 插件

在最新版本的 Freeline 插件中,提供了自动化一键接入的方式,不需要像以前一样手动修改 build.gradle 配置文件了.

在Android Studio中,通过以下路径 Preferences → Plugins → Browse repositories ,搜索“freeline”,并安装,安装完成重启AS。

Freeline

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

第一次使用的时候,插件会自动检测是否安装了 Freeline,如果没有安装的话会弹出提示,按照提示点击“确定”,插件就会自动为你修改配置文件,并自动安装 Freeline 的依赖文件。

方法二:命令行方式

配置 project-level 的 build.gradle,加入 freeline-gradle 的依赖:

classpath 'com.antfortune.freeline:gradle:x.x.x'

这里写图片描述

然后,在你的主 module 的 build.gradle 中,应用 freeline 插件的依赖:

apply plugin: 'com.antfortune.freeline'

这里写图片描述

最后,在命令行执行以下命令来下载 freeline 的 python 和二进制依赖。

Windows[CMD]: gradlew initFreeline

注意!注意!注意!

  • 在CMD下执行命令需要CD到项目根目录,在AS下的Terminal可以直接执行。
  • 对于国内的同学,如果你在下载的时候速度很慢,你也可以加上参数,执行 gradlew initFreeline -Pmirror,这样就会从国内镜像地址来下载。(推荐使用)
  • 在执行的过程中,freeline可能会下载一些东西,有时候因为网络的样子会下载很慢,比如这样子的:

这里写图片描述

这时候可以提前下载对应版本的gradle,然后将下载好的zip文件放入这个目录下,freeline会自动解压:

这里写图片描述

再次执行 gradlew initFreeline -Pmirror,Freeline会再下载相应的依赖包,一般不会出错了,直到出现这步时,耐心等待一会儿。这个时候已经开始了对Freeline的初始化。

这里写图片描述

初始化成功:

这里写图片描述

接下来就是第一次的全量编译,耐心等待编译完成(只有第一次全量编译时间较长,以后的增量编译都是10s之内的):

执行一条 python freeline.py 命令即可。

这里写图片描述

这是第一次编译的时间是40秒。然后我修改了一个数值进行第二次编译。

这里写图片描述

0.7秒即编译完成,不到一眨眼的功夫,484想说“卧槽”。

注意又来了!

  • freeline的limitation,目前还不支持连接多台设备。目前方案参考 Issues233。
  • 在自己的Application类中加入以下代码:

    FreelineCore.init(this);

  • 有时增量编译完成后并不会自动launch activity,但这时已经把更新部署到设备上了。

  • 有其他问题多去看看Issues。

这里写图片描述

至此,Freeline已经成功的集成到了我们的项目中,如果觉得每次执行命令行比较繁琐,可以根据方法一在AS中安装Freeline的插件。

Android构建提速:腾讯音乐开源秒级编译方案Jugg深度解析 Android开发中,漫长的构建与安装流程一直是影响调试效率的痛点,尤其在大型项目中,一次全量编译常需数分钟。Jugg作为腾讯音乐开源的秒级编译方案,借鉴热修复的运行时加载思想,通过多ClassLoader覆盖与AssetManager替换,将代码和资源改动在已运行的App进程内直接生效,免除了安装与重启步骤。其核心在于将增量编译与动态下发解耦,利用Android公开机制实现不杀进程的Activity重建,从而将日常修改的生效时间压缩至3秒。这一技术不仅适用于单一应用的调试加速,也为模块化架构下的工程效能优 阅读详情

相关推荐

【实用运维脚本】Windows 批量 TCP 端口检测(tcping 一键巡检)

摘要:本文介绍一款高效的Windows批量TCP端口检测脚本,适配tcpingv0.39工具,实现多服务器一键巡检。脚本具有进度可视化、双日志输出、自动容错等优势,支持注释行过滤和UTF-8编码。 使用仅需三步: 1)下载tcping工具 2)编辑目标列表 3)运行脚本即可自动检测并生成带编号的检测报告。 该方案解决了手动检测效率低、易遗漏的问题,特别适合日常运维中的端口连通性检查,实测稳定可靠,开箱即用。

蕲士|D365 & 服务器运维,心有东坡,行稳致远。 798

Android 进阶之旅 | android studio freeline的使用

Android 进阶之旅 | android studio freeline的使用

weixin_42504805的博客 448

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

xu_white的博客 7583

Android 平台上的秒级编译方案 Freeline(蚂蚁聚宝团队开源)

一开始我是拒绝写这个文章的,不过在用的时候,遇到点小问题,记录下来。 文章使用Freeline的0.8.3版本 惯例粘贴一份介绍 如下 Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具。它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。 Freeline能够为An

玩火猴子 1239

arcgis导出自身相交数据

今天接到一个客户需求,一份面文件,里面有好多元素是两两相交甚至是三个相交的,现在要把这些重叠部分提取出来,并且把相交部分的原始要素的名称也保留在字段中,也就是说名称这个会有好多个名称字段,如果两个要素相交那就是前两个名称字段有值,后面的为空,如果是三个要素相交,那么输出的这个要素就是前三个名称字段有值,后面的为空,嗯,这里也不太确定会出现多少个名称字段,这个需要依照数据来定。 这是原始数据,...

miaowumi92的博客 6787

RH850从0搭建Autosar开发环境【1】- 如何创建Davinci Configurator配置工程

当我们在公司接触Autosar开发环境时,基本都是完整的Davinci Configurator的配置工程,我们只能修修补补。 从本章开始将手把手搭建Rh850基于Vector公司Davinci Configurator的autosar配置工程。主要涉及到OS,COM,DCMM,NVM,BSWM,ECUM等基本模块,包括Vlink,memap使用,XCP标定的实现等。基本是实现一个基础版的项目开发。包括后期的GreenHills编译问题处理,生成最终的Hex文件。

weixin_42412049的博客 1万+

【运维知识高级篇】一篇文章带你搞懂Maven项目编译!(集成Jenkins+打包Java项目)

本篇文章给大家介绍涉及Maven的项目编译,Maven是一个项目管理和综合工具,提供给开发人员一个完整的生命周期框架,开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期。它是Apache的一个开源项目,主要服务于JAVA平台的构建,依赖管理,项目管理。

吾日三省吾身,想出类拔萃,要把知识学牢,学全,学深,学广。 2887

HQChart实战教程54:Renko砖形K线图实现详解

Renko图(砖形图)起源于日本,只关注价格变动而忽略时间和成交量因素: 2.2 算法说明 初始化:使用第一根K线的收盘价创建第一个砖块 变动检测:计算当前价格与最后一个砖块的差值 砖块生成: 当价格变动≥砖块大小时,生成新砖块 当价格变动不足时,更新当前砖块的高低价 方向判断:根据价格变动方向确定砖块颜色 三、完整实现代码 四、Renko图的高级应用 4.1 动态砖块大小调整 4.2 Renko交易策略 三砖反转策略:趋势跟踪策略:本文详细介绍了Renko图的实现原理和在HQChart中的应

QQ_778132974的博客 872

Android 秒级编译方案-Freeline安装使用

Android 秒级编译方案-Freeline安装使用 什么是Freeline? Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具。它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。Freeline能够为Android开发者节省很多喝杯咖啡的时间 : ) Freel...

tc_xingdechen的博客 1128

EMC基础知识总结

电磁干扰(Electromagnetic Interference),简称EMI,有和两种。传导干扰主要是电子设备产生的干扰信号通过导电介质或公共电源线互相产生干扰;辐射干扰是指电子设备产生的干扰信号通过空间耦合把干扰信号传给另一个电网络或电子设备。

学海无涯的专栏 1364

YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题

1.首先,WTConv利用二维Haar小波变换对输入图像进行多级分解。低频分量 (LL):捕捉图像的低频信息,如整体形状或轮廓。水平高频分量 (LH):捕捉图像中的水平边缘信息。垂直高频分量 (HL):捕捉图像中的垂直边缘信息。对角线高频分量 (HH):捕捉图像的对角线细节。在每一级的小波变换中,图像被下采样(空间分辨率减半),但频率信息得到了更细的分解。递归地执行小波变换(称为多级分解)可以得到不同尺度下的频率分量。

qq_64693987的博客 1万+

Android秒级编译方案-Freeline集成和使用过程中的一些问题和解决方案

一、Freeline介绍和集成方法 二、集成问题 三、注意事项 四、使用问题

Urmytch的博客 842

6、高通8155座舱平台--摄像头系统

在项目中遇到过,很多从手机转过来的工程师,上来就按手机那套调Camera,结果发现根本跑不通——为什么?我踩过这个坑——一开始想靠软件打时间戳来对齐,结果发现两个sensor的曝光时间不一样,时间戳根本对不上。我记得第一次调AWB时,怎么调颜色都不对,后来发现是BLC的参数没配好——黑电平偏了,后面所有颜色校正都是错的。上层应用说「我要拍张照」,HAL把它翻译成「ISP你给我处理这帧数据,sensor你给我曝光一次」。8155上推荐用camx,它是高通新一代的Camera框架,性能更好,而且支持多路同步。

woailuojp的博客 59

在项目中集成Freeline来提升编译速度【百分百成功】

转载请标明出处:http://www.jianshu.com/p/e1772bfa9a96 引言作为一名 Androider 你应该也曾被 AS 那缓慢的编译速度所折磨 ,更为可怕的是即使你只是简单的修改了几行代码,修改了几个布局文件,当你再次运行的时候还是需要再次进行:「编译项目」—「安装 APK 到手机」。这两个步骤在我这台机器上,快则 4、5 分钟,慢则需要 10 多分钟,调试过程异常痛苦!G

Junerver的博客 536

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Android秒级编译Freeline的使用(Android Studio)

啥都不说了编译安装速度就是快,先上个图,大家可以看一下freeline的体验效果哦。 我这是一个小demo,虽说包不大,但是也可以看出打包安装的速度真的是秒级。 接下来看一下什么是Freeline?什么是 Freeline?Freeline 是蚂蚁金服旗下平台蚂蚁聚宝 Android 团队开发的一款针对 Android 平台的增量编译工具,它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行

李彬博客专栏 7546

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Android 秒级编译 Freeline

我们知道 Android 的编译很慢,尤其是项目大点的时候,那编译速度简直难以忍受,极大的降低了我们的开发效率,之前的文章「Android 高效调试神器 JRebel」给大家介绍过,但是是付费的,用起来不是那么自由,而今天给大家介绍另外一个强大的工具 – Freeline,绝对秒级编译。什么是 Freeline?Freeline 是蚂蚁金服旗下平台蚂蚁聚宝 Android 团队开发的一款针对 And

stormzhang的专栏 6564

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

Freeline是什么? Freeline是蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效果,另外在class

THEONE10211024的专栏 633

Freeline秒级编译

直接在Studio中安装插件Freeline Plugin 一键搞定是最快的,但是很大可能会安装失败不知道为啥,如果想要尝试流程请看下边 1、项目gradle中添加 dependencies { ......... classpath'com.antfortune.freeline:gradle:0.8.7' // NOTE: Do not place your application depen

qq_33403411的博客 417

android studio秒速编译Freeline的爬坑之旅

Freeline 是 Android 平台上的秒级编译方案,Instant Run 的替代品,也可以从 Freeline 官方主页来获取更多的信息。 Freeline 由蚂蚁聚宝 Android 团队开发,它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。 上面是github上对Freeline的一些说明,详情见:

w_l_s的博客 1097

在android studio中配置蚂蚁金服的freeline实现离线编译

一.         到网站https://github.com/alibaba/freeline下载最新版的freeline版本,将下载到的freeline-master.zip,解压取出其中的freeline文件夹单独压缩,在相应工程下中解压后,应是红圈圈的那样                   并将其放到对应工程的根目录下

kyi_persisting的博客 1301

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

Freeline是什么?Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效

打渔还是晒网 —— stone 3169

AndroidStudio 快速集成 秒级编译工具Freeline

Freeline (Android平台上的秒级编译平台)快速集成

紫雾凌寒 2726

Android秒级编译方案-FreeLine

Freeline 是什么?Freeline 是一款 Android 平台上的秒级编译方案,能够显著地提高 Android 工程的编译速度为什么使用FreeLine随着Android app 工程越来越大,module越来越多,构建越来越慢有时能有十几min;FreeLine除了首次比较慢外,以后基本都是10s以内,能极大提高开发者效率,有效解决开发者的痛点FreeLine支持的特性 支持标准的多模块

dbs1215的专栏 539

阿里巴巴旗下 Android 平台上的秒级编译方案 - Freeline

下面这段引自:Freeline 在 Github 的原理介绍Freeline 是 Android 平台上的秒级编译方案,Instant Run 的替代品,也可以从 Freeline 官方主页来获取更多的信息。Freeline 由蚂蚁聚宝 Android 团队开发,它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。Freeli

Ricky 的博客 1299
上一篇: View滑动冲突的两种解决方式
下一篇: AndroidStudio中使用Aliyun Maven
guodongAndroid
博客等级 码龄10年 16粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值