Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具。它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。
GitHub上的地址:https://github.com/alibaba/freeline

新特性支持:
支持标准的多模块Gradle工程的增量构建
并发执行增量编译任务
进程级别异常隔离机制
支持so动态更新
支持resource.arsc缓存
支持retrolambda
支持DataBinding
支持各类主流注解库

1、在项目的主Gradle中添加Freeline的依赖,完整配置如下

buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:2.2.2'classpath 'com.antfortune.freeline:gradle:0.8.1'}
}

2、在项目主module的build.gradle中,添加Freeline插件依赖及配置

apply plugin: 'com.antfortune.freeline'android {freeline {hack trueautoDependency falseproductFlavor 'dev' // 渠道名}}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、编译并安装apk,命令如下:

python freeline.py

6、强制进行全量编译并安装apk,命令如下:

python freeline.py -f

7、遇到的问题及解决办法
OSError:[Errno 13] Permission denied
解决办法,执行如下命令

chmod +x gradlew

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

好处是:原本需要每次在Terminal中输入命令python freeline.py,现在你可以点击工具栏的icon,因此插件装不装都OK

其实现原理:https://yq.aliyun.com/articles/62334

Freeline的快速集成相关推荐

  1. 【iOS】快速集成轮播控件

    自己写的一个轮播控件,初始化后只要实现两个数据源方法,几行代码就能快速集成,支持本地图片和网络图片,支持点击事件,可定制播放速度.指示器颜色/位置.默认加载图等,效果: 1.下载地址: GitHub ...

  2. android a z 快速定位,快速集成android实现listview的字母A-Z排序,界面侧边字母索引...

    Android手机字母A-Z排序侧边索引是非常常见的功能,在此提供快速集成框架.教你用Android studio工具一分钟搞定这个效果. 实现效果: 以及点击F跳转效果 第一步库包导入实现拼音检索功 ...

  3. android表情输入键盘,GitHub - UKfire/Emotion: 帮你的Android应用快速集成表情键盘

    ##Emotion 帮你快速集成Android表情键盘,让你的应用不止文字,让表情跳动起来 ##It looks Cool ##Usage Download ZIP,然后解压,将emoji包添加到自己 ...

  4. 友盟分享快速集成--学习记录

    1 产品概述 友盟社会化组件,可以让移动应用快速具备社会化分享.登录.评论.喜欢等功能,并提供实时.全面的社会化数据统计分析服务. 指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪微博 ...

  5. GMaps.js:让你快速集成 Google Maps 服务的 jQuery 插件

    GMaps.js 功能 除了添加指定经纬度的标准地图之外,GMaps.js 还能定义地图放大的级别,添加标注,获取当前用户的地理位置(HTML5 geolocation),定义路线,绘制折线,并且实现 ...

  6. Spring Boot 快速集成第三方登录功能

    Spring Boot 快速集成第三方登录功能 前言 此 demo 主要演示 Spring Boot 项目如何使用 史上最全的第三方登录工具 - JustAuth 实现第三方登录,包括 QQ 登录.G ...

  7. 分分钟实现底部导航栏:BottomNavigationBar快速集成

    分分钟实现底部导航栏:BottomNavigationBar快速集成 github地址(完整Demo下载) github.com/Ashok-Varma- 一.简介 导航栏布局基本很多app都会用到, ...

  8. 快速集成iOS基于RTMP的视频推流

    http://www.jianshu.com/p/8ea016b2720e 效果图 iTools有点卡, 但是推到服务器倒是很快的. 推流 前言 这篇blog是iOS视频直播初窥:<喵播APP& ...

  9. springboot 集成mybatis_SpringBoot快速集成Mybatis并轻松上手调试教程,请查收!

    本篇主题:SpringBoot如何快速集成Mybatis并上手调试? 引入相关Jar依赖 这里使用Gradle作为构建工具,构建脚本build.gradle见下图: build.gradle 事实上, ...

最新文章

  1. document.all.item的解释和一个表单向多页面提交
  2. POJ 3057 Evacuation(二分匹配)
  3. 基于struts2的寝室圈项目
  4. html5 canvas 画的简易时钟
  5. Spring 常用注入注解(annotation)和其对应xml标签
  6. Codeforces Round #588 (Div. 2) F. Konrad and Company Evaluation 图论 + 建反图 好题
  7. eclipse dorado plugin
  8. Spark的Transformations算子(理解+实例)
  9. ccxprocess启动项可以禁用么_Mac怎么禁用Adobe无用自启项?
  10. Linux文件操作命令(二)
  11. H264/H265编码视频流媒体播放器EasyWasmPlayer.js控制台循环报错Unsupported排查
  12. 英语语法——定语从句
  13. 【ERP软件】ERP体系二次开发有哪些危险?
  14. IDEA使用教程(一) 基础配置
  15. 关于Likelihood 和 Probability的差别
  16. c语言打印字母金字塔图形,C程序打印金字塔和图案
  17. mac无法使用80端口问题
  18. 为什么说不同类型的网站有不同的优化方法
  19. Unity学习笔记--怎么打断当前动画并且重新播放当前动画(超简单一步实现版)
  20. IOS学习之关于导航那些事

热门文章

  1. what is completion
  2. iOS开发 System Sound Services(振动和提示音)
  3. Java使用smart-doc自动生成文档
  4. bartender mysql_详解BarTender连接数据库方法
  5. i510400和i710700 哪个好
  6. emui android区别,华为手机为什么有EMUI版本和Android版本?
  7. Stanford CS224N: PyTorch Tutorial (Winter ‘21) —— 斯坦福CS224N PyTorch教程 (第二部分)
  8. KK(凯文·凯利)给年轻人的建议
  9. 三一重机遇到百度智能云,工程机械维保有了新方案
  10. mojing手柄遥杆控制