加快Android构建速度

翻译 2015年12月02日 14:02:58

尊重劳动成果,转载请注明出处:http://blog.csdn.net/growth58/article/details/49589885
原文链接:https://medium.com/android-news/android-build-speed-up-ver-english-c76890aa610#.92skzplgc
关注新浪微博:@于卫国
邮箱:yuweiguocn@gmail.com

EclipseAndroid Studio

AntGradle

自从Google发布Android Studio & Gradle Plugin 1.0,Android开发环境已经改变了很多。

但是有很多的开发者抱怨构建花费的时间太长

实事上我花费了比之前多2倍的时间。对此我很难过。

因此我试了很多方法来减少构建时间。并且这篇文章是关于它的。

Android 应用构建环境

1.Ant

可以说,Android开始于这个工具。我在 Jenkins (CI) 用于自动化构建和发布。但我很少用于开发。

2.Eclipse

很多开发者使用这个IDE。在SingleDex情况下,它是个好工具。实事上,对于构建增量它是相当好的。

3.Gradle-Android Studio
Android Studio基于Gradle。如果开发者修改Gradle属性,然后他们总是得同步GradleAS。并且不得不学习GradleGradle还很慢。

自从去年我使用AS & IntelliJ,一直在抱怨Gradle的性能。在硅谷的很多技术公司,他们尝试了别的解决方法。

新的Android 应用构建

1.Bazel (by Google, Github)
它不但能构建Android,而且还能构建IOS。Bazel 开始于Blaze (Google构建系统)。Bazel 目前为Beta版。

2.Buck (by Facebook, Github)
Buck 比Bazel支持更多的语言、平台。(Go,Rust等等)

3.Pants (by Twitter, FourSquare, Square, Github)
三大组件协同工作。(对不起,我对它不太了解。)

性能

1.Bazel

这里写图片描述
来源: Bazel (http://bazel.io/docs/mobile-install.html)

2.Buck

这里写图片描述
来源 : Buck (https://buckbuild.com/article/exopackage.html)

3.Pants

我没能找到相关的数据

我们为什么从Gradle转移到其它的构建工具?

在gradle 团队的博客

Gradle团队对于Bazel 的观点 03,2015
https://gradle.org/gradle-team-perspective-on-bazel/

他们指出了Bazel的缺点

1.Bazel 没有一个高级别声明构建语言让构建变得简单对开发者来说。
2.没有建立可扩展性
3.首先是central repo,然后才是性能
4.Bazel is *nix only,它不能运行在Windows上。
5.没有插件的生态系统

结论

新的构建系统 (Bazel, Buck)看起来要比gradle更好。但对于初学者来说它们太困难了,因此我不会从Gradle转移到buck 或者其它的上面。

但是转移到BuckBazelPants之后,一些开发者说它可以很高效节约时间对于构建。(抱歉,我忘了在reddit 上面发布)

解决方案只能转移构建工具?

从GDG 的韩国Android成员Alan Jeon,我改进了构建。

1.更新Gradle

$> $project/gradle/wrapper/gradle-wrapper.properties
// ...
distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-all.zip

2.更新Android Plugin在build.gradle文件中

buildscrpt {
  dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
  }
}

3.设置minSdk in build.gradle (★★★)

http://developer.android.com/intl/ko/tools/building/multidex.html

android {
  productFlavors {
    dev {
        minSdkVersion 21
    }
    prod {
        minSdkVersion 14
    }
  }
}

打包进程分两步。一是从class到dex。另一个是合并dex。但api 21 (Lollipop)之后基于ART。因此它不会合并dex。关键是节省构建时间。

需要小心的时,修改minsdk 值后,AS不会警告API level

4.添加gradle.properties

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx768m

5.添加DexOptions 在 build.gradle文件中

android {
  dexOptions {
    incremental true
  }
}

※incremental 有潜在的错误(参考链接

性能

构建设备:MacBook Pro Retina 2012 (i7 2.3Ghz, 8GB Ram)

之前

Clean Build : 56.97s
Incremental Build : 16.3s

之后

Clean Build : 47.0s (up to 17% )
Incremental Build : 9.58s (up to 41%)

※ 在MultiDex时,Incremental 构建从47秒提高到了17秒。

在迭代开发时(包括TDD),我尝试提高构建速度。我希望能帮助到很多开发者。

请我喝杯咖啡,请使用支付宝扫描下方二维码:

这里写图片描述

tensorflow 几个android demo源码环境搭建

tensorflow 几个android demo源码环境搭建说明tensorflow上有几个example,本文重点关注其在android上的应用,源码在gitHub上有,这个apk是什么样子,大家...

Tensorflow在Android上的实现(一)Build官方Demo

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,Tensor...

Ubuntu 使用 Android Studio 编译 TensorFlow android demo

前言前段时间成功将 TensorFlow 的 android demo(TensorFlow android demo 教程)复现了,将 tensorflow 的深度学习模型移植到了Android 手...

优化Android Studio,提高速度

使用Android Studio进行开发,随着项目的增大,依赖库的增多,构建速度越来越慢。 通过在网上查找资料,发现可以通过一些配置可以加快Android Studio的速度。 1、开启gradle单...
  • aqxin
  • aqxin
  • 2016年09月05日 16:51
  • 8998

加快android studio 编译速度

原文   http://www.jianshu.com/p/53923d8f241c 公司的项目代码比较多,每次调试改动java文件后要将近2分钟才能跑起来,实在受不了。在网上找了一...
  • typ0520
  • typ0520
  • 2017年03月19日 16:45
  • 1714

加快gradle 构建速度的经验

Gradle作为一个新的构建系统,无疑在灵活,扩展,跨平台等各方面都表现得非常优秀,然而,它也有一点备受吐槽,就是速度慢。以下为本人使用gradle过程中,几次加快gradle构建速度的经验之谈。 ...

tensorflow 几个android demo源码环境搭建

tensorflow 几个android demo源码环境搭建说明tensorflow上有几个example,本文重点关注其在android上的应用,源码在gitHub上有,这个apk是什么样子,大家...

将tensorflow训练好的模型移植到android

将tensorflow训练好的模型移植到android上说明本文将描述如何将一个训练好的模型植入到android设备上,并且在android设备上输入待处理数据,通过模型,获取输出数据。 通过一个例...

使用Android Studio3.0新功能,加快Android Studio的构建速度

升级到Android Studio 3.0遇到的几个错误 上周发布Android Studio 3.0 正式版,新增了许多功能,主要的还是加快构建速度,没升级的小伙伴赶紧升级 升级完成后,Andr...
  • etwge
  • etwge
  • 2017年11月01日 18:29
  • 854
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:加快Android构建速度
举报原因:
原因补充:

(最多只允许输入30个字)