本文主要总结了module name/app/build.gradle
文件中用到的配置属性。
1. 资源文件目录
在Android Studio中新建一个项目时,默认情况下资源文件均放在src/main/res
目录内,而我们可以根据自己的需求修改默认资源文件目录或增加多个资源文件目录。
默认资源文件目录
默认情况,可以不写,不同版本的res默认路径可能会有差异
android {
sourceSets {
main {
res.srcDirs = ['src/main/res']
}
}
}
修改资源文件目录
修改默认的res
目录为src/main/res-new
- 在
src/main
路径下新建res-new
文件夹 - 修改build.gradle配置如下
android {
sourceSets {
main {
res.srcDirs = ['src/main/res-new']
}
}
}
修改之后同步gradle配置,默认的资源文件目录将改变为res-new
,而res
中的资源文件将不再被加载。
增加资源文件目录
增加两个资源文件目录src/main/res-new
和res-other
- 在
src/main
路径下新建res-new
文件夹,在app
目录下新建res-other文件夹 - 修改build.gradle配置如下
android {
sourceSets {
main {
res.srcDirs = ['src/main/res', 'src/main/res-new', 'res-other']
}
}
}
修改之后同步gradle配置,资源文件将拥有三个目录,如图1所示,编译时会将这三个目录中的资源合并,如果有重复的资源将会编译报错。
2. 配置DEX资源缩短构建时间
Android Studio 2.0 开始引入了Instant Run,可以大幅缩短更新时间,但确定是首次构建需要花费较长的时间,而适当配置下面两个DEX资源则可以有效缩短构建时间。
-
maxProcessCount
设置可以并行启动的 DEX 进程的最大数量。如果 Gradle 后台进程已在运行,您需要先停止此进程,然后使用新的最大进程数进行初始化。您可以从 Terminal 窗口中调用下面的一种函数来终止 Gradle 后台进程:
在 Windows 上,请调用 gradlew --stop
在 Linux/Mac OSX 上,请调用 ./gradlew --stop -
javaMaxHeapSize
设置 dex 操作的最大内存分配池大小。传递值时,您可以附加字母“k”来表示千字节,附加“m”表示兆字节,或者附加“g”表示千兆字节。
配置示例
android {
dexOptions {
maxProcessCount 4 // 默认值
javaMaxHeapSize "2g"
}
}
增加maxProcessCount
和javaMaxHeapSize
可以缩短构建时间,但分配过多可能会导致性能下降,可以通过调试以在当前机器上配置合适的值。