Android秒级编译工具Freeline
Freeline 是 Android 平台上的秒级编译方案,Instant Run 的替代品,由蚂蚁聚宝Android 团队开发,它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时,为Android开发者节省很多喝杯咖啡的时间 : )
最近看到不少有关Freeline的文章呀~今天终于决定要实践一下啦,过程当然要记录下来。
Github上面有中英文文档都有,介绍、原理说明以及使用步骤什么的都有写清楚,现在就按照文档来开始使用吧。
首先,配置build.gradle文件

我的project下的build.gradle,截个图看看,我还当初还有引用butterknife

我的app下的build.gradle

命令行执行以下命令来下载 freeline 的 python 和二进制依赖
- Windows[CMD]: gradlew initFreeline
- Linux/Mac: ./gradlew initFreeline
对于国内的用户来说,如果你的下载的时候速度很慢,你也可以加上参数,执行gradlew initFreeline -Pmirror,这样就会从国内镜像地址来下载。
也可以使用参数-PfreelineVersion={your-specific-version}来下载特定版本的 freeline 依赖。
如果你的工程结构较为复杂,在第一次使用 freeline 编译的时候报错了的话,你可以添加一些 freeline 提供的配置项,来适配你的工程。具体可以看 Freeline DSL References。
我用的Windows,没办法,真买不起mac啊,还需努力提升自己,提高技术,努力赚钱才行呐,于是,我按了下cmd,按下gradlew initFreeline -Pmirror,得到这结果

咦,不对,突然又机制一把,找到AS中Terminal页面,继续输入gradlew initFreeline -Pmirror

然后一直打点点。应该就在下载了吧~

等待了二十分钟后,中途也一直在打印东西,点点加其他,最终出现这结果,下载还挺久哈!
Usage
Freeline 最快捷的使用方法就是直接安装 Android Studio 插件。
在 Android Studio 中,通过以下路径 Preferences → Plugins → Browse repositories,搜索“freeline”,并安装。
我没找到Preferences 可能是Setting的其他叫法吗~我点到File -> Settings -> Plugins ->Browse repositories,搜索下载安装

然后重启AS,出现了Run Freeline的按钮


于是,我点击了一下蓝色按钮,旁边出现

哈哈~我的Windows环境没有python,去下载一个
Python官网:https://www.python.org/


只是个环境,我选择了这个下载安装了,安装到F盘一个文件夹中,然后在系统的环境变量中的path加上python的安装路径。打开cmd,输入python。

应该可以哒!重启AS,再次点击蓝色按钮。

no why,不知道原因,在github的issues看到

好吧,重新去下载一个python2.7.x 吧~再尝试下。

好了,重启AS,点击蓝色按钮


打印了一堆东西,还有running time,编译是不是快了点啊,好像是吧,哈哈哈~总之尝鲜成功了。
后来发现Log中报Freeline没有初始化的错误,还需要在Applincation中的oncreate添加FreelineCore.init(this)
还有有时候项目中原来的简单封装ToastMaker跳不出来吐司,需要clean一下项目.
Android秒级编译工具Freeline的更多相关文章
- Android 秒级编译 Freeline
http://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=2650662410&idx=1&sn=c654fa7b0cc8c91 ...
- Freeline--Android平台上的秒级编译方案
Freeline 技术揭秘 Freeline是什么? Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部 ...
- Android studio 加速编译方法
JRebel for Android 是一个Android Studio的插件,可以大大加速Android Studio的编译速度,对于小项目来说或许不明显:但是当项目达到一定的规模时,它对于Andr ...
- android开发环境与工具使用相关备忘录
一.名称简介 1.ADT(Android Development Tools) 可以简单理解为在eclipse下开发安卓的插件或工具包. 查看当前ADT版本方法:help-> about ecl ...
- 《Android逆向反编译代码注入》 - 逆向安全入门必看视频教程
适合人群: Android开发人员.逆向反编译开发人员.以及对Android逆向安全感兴趣的朋友. 视频地址: 51CTO学院:https://edu.51cto.com/course/24485 ...
- Android工程运用阿里freeline10秒快速编译分享
git地址:https://github.com/alibaba/freeline 目前已经更新到0.6.0版本. 原来编译一次需要几分钟甚至几十分钟的android工程,运用freeline,1分钟 ...
- Android反编译工具的使用-Android Killer
今天百度搜索“Android反编译”搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android反编译.在这,我将使 ...
- ApkDec android反编译工具
转自:http://www.newasp.net/soft/70498.html 下载 ApkDec是一款免费的绿色APK反编译工具 forandroid ,由android开发者社区开发. ApkD ...
- Android 反编译工具简介
Android 反编译工具: 所需工具:1 apktool : 用于获取资源文件 2 dex2Jar : 用于将classes.dex转化成jar文件 2 jd-gui: 将jar文件转化成java文 ...
随机推荐
- Sqli-labs介绍、下载、安装
SQLI和sqli-labs介绍 SQLI,sql injection,我们称之为sql注入.何为sql,英文:Structured Query Language,叫做结构化查询语言.常见的结构化数据 ...
- UTF-8字符「EF BF BD」-备胎
在众多的utf-8码点值中,除了ascii,你还应该记住「EF BF BD」,因为它是很多编程语言以及库中的备胎,即无效的码点值在编码的时候会默认用这个码点值进行替换,即utf-8中的超级「备胎」(R ...
- Spring的安全机制
Spring Security:它提供全面的安全性解决方案,同时在Web请求和方法调用处理身份确认和授权,利用依赖注入和aop技术.主要名词: 1,安全拦截器:相当应用的一把锁,能够阻止对应用程序中保 ...
- hdu 2196(Computer 树形dp)
A school bought the first computer some time ago(so this computer's id is 1). During the recent year ...
- 【POJ 2409】 Let it Bead(置换、burnside引理)
Let it Bead "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. ...
- xtuoj 1233 coins(dp)
Coins Accepted : 120 Submit : 305 Time Limit : 1000 MS Memory Limit : 65536 KB Coins Problem Des ...
- 【(博弈)dfs序+树状数组】BZOJ2819-Nim
[题目大意] 普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任意多个,可以取完,但不可以不取.谁不能取谁输.这个游戏是有必胜策略的.现在对每一堆编号1,2,3,4,...n,在 ...
- Vue视图下
3 Vue视图 3.5 样式绑定 class绑定 <p :class='对象'> <p :class="数组"> <p :class="{类 ...
- [NOIp2017提高组]逛公园
题目大意: 给你一个有向图,若用dis(u,v)表示从u到v的最短路长度,求从1到n的长度不超过dis(1,n)+k的路径数. 思路: 首先分别预处理出以1,n为起点的单.源最短路. 对于合法的边重构 ...
- JDK源码学习笔记——HashSet LinkedHashSet TreeSet
你一定听说过HashSet就是通过HashMap实现的 相信我,翻一翻HashSet的源码,秒懂!! 其实很多东西,只是没有静下心来看,只要去看,说不定一下子就明白了…… HashSet 两个属性: ...