Android Studio 的Gradle编译加速度

来源:互联网 发布:互联网网络销售o2o 编辑:程序博客网 时间:2024/05/17 15:19

Android Studio 的Gradle编译加速度

好久木有写博客了,最近在用Android Studio开发APP的时候,发现一个比较坑的问题,就是编译太慢,编译一次最少都需要一分钟,实在不能忍受,于是Google了很多方法,一一试验,把结果总结了一下,如下:


一:最简单的方案

    很简单的一个方案,是一个PHP大神指点的。

这里写图片描述
图片中红色框框部分的的代码注释掉,然后在编译,这是编译速度差不多会快一倍。(这种方案的缺点是会出现各种莫名其妙的问题,比喻修改不生效等等,需要不时的放开这段代码,重新编译)

二:最普遍的方案

    就是网络上大家百度到的开启守护线程,开启离线编译等

这里写图片描述
这里写图片描述
在下面的目录下面创建gradle.properties文件:
/home//.gradle/ (Linux)
/Users//.gradle/ (Mac)
C:\Users\.gradle (Windows)
这里写图片描述
同时修改项目下的gradle.properties
这里写图片描述
实测效果不是特别明显

三:最实在的方案

    其实gradle编译慢,主要停留在compile文件

所以我们在项目中减少compile ,尽量使用 compile files导入第三方库,有jar和aar都可以,
这些第三方库可以在maven http://search.maven.org/ 中搜索下载
在此提供本人平时一些积累的jar和aar库https://github.com/zhu260824/android_jar_aar.git 后续会持续更新
在代码中减少使用
compile 'com.android.support:appcompat-v7:23.4.0'
多使用

 compile(name:'genius', ext:'aar')   compile files('libs/utdid4all-1.0.4.jar')

这是加快编译最靠谱的方案,实测有效

四:热部署

    热部署其实是最快的编译方案

在Android Studio中其实已经结成了热部署就是 Instant Run 所以我们编译代码时可以打开这个
这里写图片描述

但是这个不太好用,接下来,我向大家推荐一个比较好用的阿里的增量编译工具Freeline
官方地址:https://github.com/alibaba/freeline/blob/master/README-zh.md
使用方式很简单:
配置project-level的build.gradle,加入freeline-gradle的依赖:

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

然后,在你的主module的build.gradle中,应用freeline插件的依赖

   apply plugin: 'com.antfortune.freeline'android {    ...} 

一般简单的工程这些就够了,但是多个productFlavors的需要在主module的build.gradle中加入

  freeline {         hack true         productFlavor 'your-flavor'     }

如果你还自定义了Application,一定需要在则需要在主module的build.gradle中加入

  freeline {         hack true         productFlavor 'your-flavor'         applicationProxy false     }

同时自定义的Application中加入

 public class App extends Application {     @Override     public void onCreate() {         super.onCreate();         FreelineCore.init(this);     } }

最后,在命令行执行以下命令来下载 freeline 的 python 和二进制依赖。

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

注意:使用freeline 电脑需要安装python 并且配置python 环境变量

代码可以使用命令行编译:python freeline.py
提示:

  • python freeline.py -f 全量编译
  • python freeline.py -c 清除
  • python freeline.py 增量编译

同时还可以使用还可以使用android studio插件
在Android Studio中,通过以下路径Preferences → Plugins → Browse repositories,搜索“freeline”,并安装。
这里写图片描述

Freeline第一次编译会慢一点,后面进入增量编译后比较快,我基本测试在10s以内,速度非常快!推荐使用

本次一共介绍了四种方案,推荐新项目可以三四结合使用,开启飞速编译时代!

0 0