Android 项目集成 Freeline
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相关推荐
- Android项目集成穿山甲开屏/插屏/横幅广告教程大全
Android项目集成穿山甲开屏/插屏/横幅广告教程大全 开发及项目环境说明 Android Studio 2020.3.1 Patch 4/203.7717.56.2031.7935034 jdk1 ...
- Android studio集成FreeLine加速编译
相信用过studio的人都有一个体会,小项目还好,但是碰到编译完成30-40M的APK项目的时候,那个慢和卡真是不能用言语表达,我可以描述一下我的现状: 1.项目由6个module和几十个sdk组成( ...
- 穿山甲android对接错误码40029,空Android项目集成Cocos、穿山甲。Lua调用网络接口。...
1. 搭建安卓空项目.集成cocos.穿山甲广告新建安卓项目start new android projectEmpty Activity包名这里要和穿山甲上面已创建的应用的包... 1. 搭建安卓空 ...
- Android 项目集成有米 SDK 添加广告
集成 SDK 的基本配置 步骤一 步骤二 步骤三 步骤四 集成 SDK 的无积分广告 步骤五 步骤六 步骤七 步骤八 步骤九 我们有时候需要在app里面,添加一些广告,作为额外的一些收入,那么该怎么办 ...
- Android项目引入Freeline插件,6得飞起
前言 随着项目版本的不断迭代,体积也不断地变大,现在每次编译都得花上十几分钟的时间去等待,折腾各种优化方案仍旧对编译时间没有任何太大的改善.对着这低配置的电脑,每天都真够无奈的,一个不小心Androi ...
- Android 项目集成腾讯X5浏览器内核
1.为什么要集成腾讯 X5 浏览器内核 肯定是事出有因,简单来说,JS代码写的不标准,与部分机型内嵌套的浏览器内核产生矛盾,出现底层(os)bug导致,不得不费事搞一个其它内核进行加载网页,具体原因. ...
- 轻松学习Ionic (二) 为Android项目集成Crosswalk(更新官方命令行工具)
现在集成crosswalk不用这么麻烦了!官方的命令行工具已经能让我们一步到位,省去很多工作,只需在cmd中进入项目所在目录(不能有中文目录,还得FQ),执行: [html] view plain c ...
- Android项目集成谷歌账户登录
在做国外项目的时候,许多需要集成谷歌账户登录功能. 集成谷歌登录后,能直接调用谷歌的账户登录界面进行登录操作(包括注册新用户.忘记密码等),同时会把账户信息保存到设备的account manager中 ...
- 兄弟打印机 android,Android项目集成Brother兄弟无线打印机QL-720NW
集成打印机功能现在很多项目都有这个需求,起码我在短短几年的开发生涯中就遇到过两次.但是尤其是现在打印机市场这么混乱的情况下,很难有一个统一的方式去实现这个需求.拿到一个打印机的时候,我们基本都需要去官 ...
最新文章
- python3 dict 字典 转 严格 json
- Java之JVM 优化经验总结
- learnByWork
- JavaScript入门介绍 1 2021/02/27
- nodejs轻量服务器后端
- [Open Source]DrawKit - A cocoa framework for drawing
- edge chrome Android,微软Edge浏览器安卓版已上架:采用Chrome引擎
- 大学生计算机应用基础考试,大学计算机应用基础知识试题.doc
- 剖析STM32F103读写W25Q64
- Matlab——数组
- ASP.NET内容总结
- win10 6种截图方法 简介
- 光子晶体中的平面波展开法学习
- Win10中启动或关闭Windows功能中没有SNMP服务的解决办法
- DOS、DOS攻击、DDOS攻击、DRDOS攻击
- 【每日一题】字符串转换成整数
- [枚举]ACPC:Problem B. The Lion King
- Windows CMD命令大全(值得收藏)
- 2006年上市公司A股市值百强榜单
- 孙素丹老师 银行数字化场景营销专家