1.什么是FreeLine?

(官网描述)

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

2.FreeLine原理

(官网描述)

Freeline将整个编译过程拆分成多个小模块,根据模块间的依赖关系并发进行编译任务。它可以对所有编译缓存文件做到充分地利用,真正地做到了“增量”编译。同时,它也提取了buck的部分组件(dx与DexMerger),来加速构建流程。Freeline会在app运行时启动一条独立进程来运行Socket Server以进行开发机与app的通信,同时也能确保即使在app出现crash之后,仍然能够使增量编译持续生效。

Freeline是通过multi-dex的方案来实现Java代码的增量更新的。与此同时,我们也专门对aapt工具做了深度优化,给出了独立的FreelineAapt资源打包工具用来生成增量的资源包以及加快资源包的打包速度。运行期的资源替换,Freeline中使用了Instant-Run的方案。除此之外,Freeline也支持运行期动态更新so文件。

Freeline会根据代码文件的变更情况,自动在全量编译与增量编译中进行切换。

实际上,Freeline可以在经过简单的改造之后,作为线上热修复方案,通过动态下发增量资源,来对应用进行修复或者资源替换。经过压缩后的增量资源通常都会在100kb以下,用户可以在移动网络的环境下直接接收到热补丁。蚂蚁聚宝已经基于Freeline打造了完整的热修复框架,应用于线上问题修复以及A/B Test。

3.快速集成

1.搭建python的开发环境

下载Python

Window 下安装python 教程只要完成到第四步就ok

2.在项目的根目录添加依赖

buildscript {repositories {jcenter()}dependencies {classpath 'com.antfortune.freeline:gradle:0.8.4'}
}

3.在app的module的build.gradle中,添加freeline的插件依赖

然后重新构建

apply plugin: 'com.android.application'
//添加freeline的插件依赖
apply plugin: 'com.antfortune.freeline'
android {compileSdkVersion 24buildToolsVersion "24.0.2"defaultConfig {applicationId "xmg.com.freelinetest"minSdkVersion 15targetSdkVersion 24versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}......}

4.初始化FreeLine

打开终端命令行,进入到项目的更目录执行:

gradlew initFreeline    //如果初始化成功,控制台会有成功构建的提示

对于国内的用户来说,如果你的下载的时候速度很慢,你也可以加上参数,执行gradlew initFreeline -Pmirror,这样就会从国内镜像地址来下载

5.Run Android项目

打开终端命令行,进入到项目的更目录执行:

python freeline.py

python的环境变量在前面已经搭建好了。

Android 项目集成 Freeline相关推荐

  1. Android项目集成穿山甲开屏/插屏/横幅广告教程大全

    Android项目集成穿山甲开屏/插屏/横幅广告教程大全 开发及项目环境说明 Android Studio 2020.3.1 Patch 4/203.7717.56.2031.7935034 jdk1 ...

  2. Android studio集成FreeLine加速编译

    相信用过studio的人都有一个体会,小项目还好,但是碰到编译完成30-40M的APK项目的时候,那个慢和卡真是不能用言语表达,我可以描述一下我的现状: 1.项目由6个module和几十个sdk组成( ...

  3. 穿山甲android对接错误码40029,空Android项目集成Cocos、穿山甲。Lua调用网络接口。...

    1. 搭建安卓空项目.集成cocos.穿山甲广告新建安卓项目start new android projectEmpty Activity包名这里要和穿山甲上面已创建的应用的包... 1. 搭建安卓空 ...

  4. Android 项目集成有米 SDK 添加广告

    集成 SDK 的基本配置 步骤一 步骤二 步骤三 步骤四 集成 SDK 的无积分广告 步骤五 步骤六 步骤七 步骤八 步骤九 我们有时候需要在app里面,添加一些广告,作为额外的一些收入,那么该怎么办 ...

  5. Android项目引入Freeline插件,6得飞起

    前言 随着项目版本的不断迭代,体积也不断地变大,现在每次编译都得花上十几分钟的时间去等待,折腾各种优化方案仍旧对编译时间没有任何太大的改善.对着这低配置的电脑,每天都真够无奈的,一个不小心Androi ...

  6. Android 项目集成腾讯X5浏览器内核

    1.为什么要集成腾讯 X5 浏览器内核 肯定是事出有因,简单来说,JS代码写的不标准,与部分机型内嵌套的浏览器内核产生矛盾,出现底层(os)bug导致,不得不费事搞一个其它内核进行加载网页,具体原因. ...

  7. 轻松学习Ionic (二) 为Android项目集成Crosswalk(更新官方命令行工具)

    现在集成crosswalk不用这么麻烦了!官方的命令行工具已经能让我们一步到位,省去很多工作,只需在cmd中进入项目所在目录(不能有中文目录,还得FQ),执行: [html] view plain c ...

  8. Android项目集成谷歌账户登录

    在做国外项目的时候,许多需要集成谷歌账户登录功能. 集成谷歌登录后,能直接调用谷歌的账户登录界面进行登录操作(包括注册新用户.忘记密码等),同时会把账户信息保存到设备的account manager中 ...

  9. 兄弟打印机 android,Android项目集成Brother兄弟无线打印机QL-720NW

    集成打印机功能现在很多项目都有这个需求,起码我在短短几年的开发生涯中就遇到过两次.但是尤其是现在打印机市场这么混乱的情况下,很难有一个统一的方式去实现这个需求.拿到一个打印机的时候,我们基本都需要去官 ...

最新文章

  1. python3 dict 字典 转 严格 json
  2. Java之JVM 优化经验总结
  3. learnByWork
  4. JavaScript入门介绍 1 2021/02/27
  5. nodejs轻量服务器后端
  6. [Open Source]DrawKit - A cocoa framework for drawing
  7. edge chrome Android,微软Edge浏览器安卓版已上架:采用Chrome引擎
  8. 大学生计算机应用基础考试,大学计算机应用基础知识试题.doc
  9. 剖析STM32F103读写W25Q64
  10. Matlab——数组
  11. ASP.NET内容总结
  12. win10 6种截图方法 简介
  13. 光子晶体中的平面波展开法学习
  14. Win10中启动或关闭Windows功能中没有SNMP服务的解决办法
  15. DOS、DOS攻击、DDOS攻击、DRDOS攻击
  16. 【每日一题】字符串转换成整数
  17. [枚举]ACPC:Problem B. The Lion King
  18. Windows CMD命令大全(值得收藏)
  19. 2006年上市公司A股市值百强榜单
  20. 孙素丹老师 银行数字化场景营销专家

热门文章

  1. 全国大学生数学建模竞赛
  2. 5月~给你的第三封信
  3. 最新最完整的全国省市级json数据
  4. PMP项目管理的前路
  5. Vscode黑色主题很难看到鼠标
  6. java的中文乱码转换
  7. 怎么查看dell服务器网卡型号,centos怎么查看网卡的型号? - 小众知识
  8. 百度cdn几时能入币_百度金矿P2P CDN项目12月1号停止运营下线,现在可登记等待结算...
  9. 基于MQTT和nodeMCU的音乐弹奏APP【100010341】
  10. 2020年11月windows7安装使用nodejs