Android studio集成FreeLine加速编译
相信用过studio的人都有一个体会,小项目还好,但是碰到编译完成30-40M的APK项目的时候,那个慢和卡真是不能用言语表达,我可以描述一下我的现状:
1.项目由6个module和几十个sdk组成(这里的sdk不包括开源第三方,都是公司自己的)
2.编译完成debug包40M左右
3.更新一次代码,重头编译一次快则30分钟,慢40分钟很常见
4.编译的时候真是卡,8G内存,用了7G多,编译时啥也干不了,一天编译几次就over了,太浪费时间
基于以上问题,开始寻找出路,FreeLine进入我的法眼,然而真实体验也并不能解决以上问题,就我的使用体验来说,有以下几个问题:
1.初次编译卡,占内存依旧
2.初次编译时长并不比用studio好多少
3.初次使用配置还有些坑要踩,比如关闭混淆等
虽然有以上几个问题,但是我还是在使用,为什么?因为增量编译确实强大,改一个sdk的一个文件,十几秒基本部署到手机上,这对于以前编译一次要很长时间的我来说简直是福音。下面开始介绍FreeLine的使用过程。
FreeLine是蚂蚁聚宝团队开发的,github地址:https://github.com/alibaba/freeline, FreeLine的原理说明地址:https://yq.aliyun.com/articles/59122
FreeLine集成过程如下(注意windows要按照python2.7):
1.在Android studio上安装FreeLine插件。
File-》settings-》plugin 搜索安装
2.配置项目的build.gradle文件,增加如下内容,最新版本0.7.3.1
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.antfortune.freeline:gradle:0.6.3'
}
}
3.主module的build.gradle文件引入freeline的依赖
apply plugin: 'com.antfortune.freeline'
dependencies {
debugCompile 'com.antfortune.freeline:runtime:0.6.3'
releaseCompile 'com.antfortune.freeline:runtime-no-op:0.6.3'
testCompile 'com.antfortune.freeline:runtime-no-op:0.6.3'
}
4.主module的build.gradle文件配置渠道
android {
freeline {
hack true
productFlavor “haha”
}
productFlavors {
haha{
}
}
}
5.主module的build.gradle文件关闭混淆
// multiDexKeepProguard file('multidex.keep') // 如果有,要注掉
minifyEnabled false // 关闭混淆
6.在application文件中初始化FreeLine
import com.antfortune.freeline.FreelineCore;
public void onCreate() {
super.onCreate();
FreelineCore.init(this);
}
FreeLine的编译过程:
1.在studio的freeline窗口中输入:gradlew clean,清理项目(freeline增量编译快的前提是手机中的apk是完全用freeline编译的,不可以和studio混合编译)
2.在studio的freeline窗口中输入:gradlew initFreeline -Pmirror,初始化配置
3.在studio的freeline窗口中输入:python freeline.py,开始进行编译
4.编译时间会随项目大小而有所不同,此时需要静静,耐心,静静,耐心,静静,耐心等待
5.编译成功后,会自动装到手机上并启动
6.首次全量编译完成后,修改项目源代码需要增量编译时,插上装有全量编译apk的手机,执行命令:python freeline.py
7.首次全量编译完成后,需要重新全量编译时,执行命令:python freeline.py -f,也可以将1-3步重新执行一遍
FreeLine使用过程中遇到的坑:
1.全量编译完成,首次启动app崩溃,log显示can not find ***class,此时可能是由于混淆打开了,需要关闭混淆,如果build.gradle中有下面这句,要注掉
multiDexKeepProguard file('multidex.keep')
2.全量编译启动正常,开始增量编译时提示找不到手机,尝试十几次后失败,此时建议你重新配置一遍,网上的其他方法尝试过,并没有解决问题
3.编译过程提示没有productFlavor,此时用你默认的渠道即可,如果没有,可以在主module的build.gradle中加入:
android {
freeline {
hack true
productFlavor “haha”
}
productFlavors {
haha{
}
}
}
以上就是我使用FreeLine的总结,以后有时间看一下原理,再来分享
Android studio集成FreeLine加速编译相关推荐
- android studio crashlytics,完美解决Android Studio集成crashlytics后无法编译的问题
问题描述: 在用fabric集成后编译出现如下错误, Error:Cause: hostname in certificate didn't match: != OR OR build.gradle部 ...
- 【Android RTMP】Android Studio 集成 x264 开源库 ( Ubuntu 交叉编译 | Android Studio 导入函数库 )
文章目录 安卓直播推流专栏博客总结 一. x264 简介 二. x264 交叉编译 三. Android Studio 导入函数库 四. 交叉编译版本 五. GitHub 项目地址 安卓直播推流专栏博 ...
- Android Studio集成NDK开发环境
这几天需要使用C语言在底层编译,所以就打算在Android studio中打造可以编译C的环境,毕竟使用Android studio久了,就不怎么想用Eclipse开发了 废话不多说,直接来看一波集成 ...
- android 集成ijkplayer,android studio集成ijkplayer的示例代码
介绍 ijkplayer是一款非常火的开源视频播放器,android和IOS通用.关于怎么编译怎么导入android Studio中自己的项目,其中坑很多,本篇记录下自己的操作记录.ijkplayer ...
- 【CMake】Android Studio 中使用 CMake 编译单个 C++ 源文件 ( 常用的 CMake 命令解析 )
文章目录 一.Android Studio 中使用 CMake 编译单个 C++ 源文件 二.cmake_minimum_required 命令设置最小 CMake 版本 三.project 命令设置 ...
- 集成android studio,Android Studio集成
Android Studio集成 1.依赖方法,在Module下的Gradle文件中添加 compile 'com.chosen.kf5sdk:kf5sdklibrary:1.6.0' 2.全局初始化 ...
- Android Studio 4.2Previw版本编译错误提示Disable offline mode and rerun the build
编译出现的问题 项目在Android Studio 4.2Previw版本编译错误提示Disable offline mode and rerun the build No cached versio ...
- Android 项目集成 Freeline
1.什么是FreeLine? (官网描述) Freeline是由蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具.它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并 ...
- android studio freeline,Android Studio配置freeline遇到的问题
大家都知道,在开发android应用时编译耗时是个很头疼的问题.Android官方有Instant run增量更新方案,能快速编译安装apk到设备,提高开发效率.原理就是安装包只更新改动的部分.后来阿 ...
最新文章
- mysql更改数据库数据存储目录_MySQL更改数据库数据存储目录
- 菜鸟学习之linux用户行为日志审计方案
- East Central North America Region 2015
- mysql router安装教程_MySQL Router 安装与配置
- platform设备驱动全透析
- B类产品的科学化设计与分析流程
- PyQt5初级——2
- 【干货】求之不得的 Java 文档教程大汇总!
- python二维数组去重_PHP二维数组去重
- 原来信用卡肉这么肥,怪不得银行天天给你发短信叫你办理
- web开发 学习_是否想学习Web开发但不知道从哪里开始?
- CVPR 2020丨基于范例的精细可控图像翻译CoCosNet,一键生成你心目中的图像
- Android学习之-TextView的滑动效果
- 多任务学习Multi-Task Learning
- 软件及其公司篇--项目管理(七)
- 大漠插件最新版本7.2031
- 读书笔记5.1——《让数字说话:审计,就这么简单》:孙含晖
- mysql用户域账户登录_使用本地系统帐户和域用户帐户两者区别(microsoft SQLServer2000...
- 【20220318】执行脚本提示killed
- seaborn做图技巧