加快Android Studio 构建速度

构建速度直接影响到开发效率,浪费时间即浪费生命,可以通过修改一些配置,优化下构建速度

3.0之前的做法

通过配置DEX 资源缩短构建时间

gradle 添加以下代码

android {  ...  dexOptions {    maxProcessCount 4 // this is the default value    javaMaxHeapSize "2g"  }}

maxProcessCount
设置可以并行启动的 DEX 进程的最大数量

javaMaxHeapSize 设置 dex 操作的最大内存分配池大小
根据自己电脑的配置,设置这两个值,通常情况下这两个值越大越好

启用 dexing-in-process 和增量 Java 编译

Android Plugin for Gradle 版本 2.1.0 及更高版本还引入了其他的构建流程改进,包括增量 Java 编译和 dexing-in-process。增量 Java 编译默认情况下处于启用状态,这种编译方式仅对发生变化或需要重新编译的源代码部分进行重新编译,可以缩短开发过程中的编译时间。

dexing-in-process 在构建流程而不是单独的外部 VM 流程中执行 dexing。这样不仅可以让增量构建更快,也可以显著提高完整构建的速度。要启用此功能,您需要将 Gradle 后台进程的最大堆大小设置为至少 2048 MB。要进行设置,您可以将以下代码包含到项目的 gradle.properties 文件中

org.gradle.jvmargs = -Xmx2048m

如果您已经在模块级别的 build.gradle 文件中为 javaMaxHeapSize 定义值,则需要将后台进程的最大堆大小设置为 javaMaxHeapSize 的值 + 1024 MB。例如,如果您已将 javaMaxHeapSize 设为“2g”,则需要将以下代码添加到项目的 gradle.properties 文件中:

org.gradle.jvmargs = -Xmx3072m

3.0之后的做法

使用用D8 编译器作为DEX 编译器

Android Studio3.0 包含了一个新的可选择DEX编译器,叫做D8,不久它将替换掉旧的DX编译器,现在可以选择使用新的编译器,DEX编译直接影响到app的构建时间,dex文件大小,和运行时的性能,当使用新的D8编译器,D8编译更快和输出更小的.dex文件,并且相同或者更好的app运行时性能。要想使用D8编译器,把以下代码添加到工程的gradle.properties 文件即可

android.enableD8=true

3.1过后默认采用D8编译器,无需添加这句话

使用新的依赖方式

也就是指dependencies代码块的引用

dependencies{    compile project('xxx')    compile 'com.github.bumptech.glide:glide:3.7.0'}

Android gradle 3.0 插件有4种引入方式
* implementation 相当于原来的compile
* api 相当于原来的compile
* compileOnly 相当于原来的provided
* runtimeOnly 相当于原来的apk

一般来说实际中主要用到的是compile
为了提高构建速度
替换成

implementation project('xxx')implementation 'com.github.bumptech.glide:glide:3.7.0'

或者

api project('xxx')api 'com.github.bumptech.glide:glide:3.7.0'

那这两者有什么区别呢

此时需要注意的一个地方,例如一个叫A的lib里面用implementation引用一个B库,又有一个C的module(不管是lib还是app)引用了A,这个C的module是引用了不了B的,也就是不能使用B库里面的类和方法。这也是为什么使用implemention会加快构建速度的原因,可以减少重复编译。要想引用B到的库,可以使用api。在3.0中,api用法可以完全可以替换之前的compile,不用担心编译问题。

简单总结下:

implementation:C引用A,即使A库implementation方式引用B,C也不会引用B

api :C引用A,并且A库用api方式引用B,C会引用B

compileOnly 只依赖库用来编译,不会把库打包进apk,在一些特定的场景很有用

runtimeOnly 不用来编译,但是会打包到apk,这个方式是deprecated(不推荐使用)的

参考

配置构建

Migrate to Android Plugin for Gradle 3.0.0

更多相关文章

  1. Android 设备网络信息的获取(网络类型、网络强度、网络速度、代理
  2. 了解Android的编译器
  3. Android Studio加快gradle sync速度
  4. Android下载速度计算
  5. IntelHaxm : 加速android模拟器启动速度(Stack Overflow 、eoeAnd
  6. android设置鼠标速度
  7. Android解析Json速度最快的库:json-smart
  8. 【转】Android 加速度传感器 (G-Sensor)

随机推荐

  1. PHP == 和 === 区别
  2. PHP之curl_multi并发详解方法
  3. 入阶PHP-FPM
  4. PHP还能开发什么?
  5. php简单图形面积计算器的实现
  6. 直击PHP的异常和错误处理
  7. php如何实现图片上传的封装
  8. PHP中如何形成static::与new static()的
  9. 【设计模式】PHP单例模式的应用场景和实
  10. PHP中$是什么意思?