问题
Gradle Sync或Build越来越慢,已经快不能忍受了,硬件配置并不差呀!
分析
两个方面:1,项目越来越大,依赖越来越多;2,Gradle本身为了兼容配置太中庸。
解决办法
针对1,将公用代码分离出来,以aar格式导出,使用时加本地aar或网络引用 。
2,对Gradle进行优化配置。
升级gradle版本,此法向前向后兼容
现在Android Studio默认的Gradle版本为2.4,而最新的Gradle版本为2.7,稳妥起见,升级到次新版2.6
build.gradle
添加下边的代码到project的build.gradle
在Android Studio的Terminal中运行
或在Android Studio的Gradle Panel展开Project->Project(root)->Tasks->other,找见wrapper任务,单击执行。
Project属性
快捷键⌘+;打开项目属性,更新Gradle版本
配置Gradle
Gradle运行期环境增强配置
在Project根目录下的gradle.properties文件中添加
Daemon,守护进程,避免冷启动,Andorid Studio已默认开启,添加确保在Terminal下使用gradlew也使用。更多http://gradle.org/docs/current/userguide/gradle_daemon.html#when_should_i_not_use_the_gradle_daemon
Parallel,并发,充分利用硬件的多核性能,可能会让你的项目Build失败,那是因为项目结构没有解藕。更多http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
jvmargs,grovvy寄宿在jvm中运行,加大jvm的内存,给gradle更大的展现空间,比如-Xmx将heap size加大到2g,
java.home,使用与项目不同的java运行时,通常是Android开发使用JDK7,Gradle使用JDK8获得更好的性能。
Gradle的完整配置可以参考http://gradle.org/docs/current/userguide/userguide_single.html#sec:gradle_configuration_properties
这个配置同样可做为全局配置,添加到
~/.gradle/gradle.properties
Gradle Build增量模式
在Module的build.gradle中添加
指定APK的DEX环节使用增量模式。
后记
还不够快,你该升级你的硬件设备了!
One more thing
Gradle wrapper是如何工作的?
gradle作为一个独立的软件,之前都需要自己安装,像上边的过程中怎么只改了下数字,就全部搞定了呢?
如下图,Android Studio的Project中除了build.gradle,gradle.settings,gradle.properties之外,还有一个gradle目录。
这个jar文件只是一个钩子,每个project都有,调用功能时,由钩子调用实际的本地应用,位置如下:
而这些版本是全局共享的,我们升级版本,Android Studio会自动下载本地没有的版本到这里。
更新20151205
Gradle 最新版本为2.9
升级 Android Plugin
|
|
开发使用SDK=21
|
|
原理:API>=21,使用 ART,在 Build 时只做 class to dex,不做 mergeing dex,省时间。