Android工作室Gradle构build加速
自从上次更新(从6月25日开始构build)以来,Android Studio Gradle中的任何更改都非常缓慢。 当你编辑文件并在keyup上重新编译时,它似乎也会自动跟踪更改。
我的i5上的每个更改都需要几分钟的时间。
任何想法如何我可以加快我的Gradle的变化?
开发人员正在努力。 就像我在这个答案中发布的那样,现在最快的解决scheme是从命令行使用gradle,并且您应该切换到所有您不开发的模块的二进制库。 在g +上有关于开发人员的讨论 。
绝对有所作为: 如何…加快Gradle构build时间
只需在以下目录中创build一个名为gradle.properties
的文件:
/home/<username>/.gradle/ (Linux) /Users/<username>/.gradle/ (Mac) C:\Users\<username>\.gradle (Windows)
将此行添加到文件中:
org.gradle.daemon=true
改变这个设置后,我编译时间10分钟缩短到10秒。
步骤1:
设置(Ctrl + Alt + S) – >
构build,执行,部署 – >
编译器 – >
在命令行选项框中键入“
--offline
”。
第2步:
检查“并行编译独立模块”checkbox。
点击应用 – >确定
更新:
如果您使用Android Studio 2.0或更高版本,请尝试即时运行
设置→构build,执行,部署→即时运行→启用即时运行。
有关即时运行的更多信息 – https://developer.android.com/studio/run/index.html#instant-run
通过将以下内容添加到android studio的gradle.properties文件中,我可以将我的gradle版本从43秒减less到25秒(在我的旧core2duo笔记本电脑上运行linux mint)
org.gradle.parallel=true org.gradle.daemon=true
来源为什么守护进程设置使构build更快: https : //www.timroes.de/2013/09/12/speed-up-gradle/
以下步骤将使其速度提高10倍,减less构build时间90%
首先在以下目录中创build一个名为gradle.properties的文件:
/home/<username>/.gradle/ (Linux) /Users/<username>/.gradle/ (Mac) C:\Users\<username>\.gradle (Windows)
将此行添加到文件中:
org.gradle.daemon=true org.gradle.parallel=true
并检查Android Studio中的这个选项
有一个更新版本的gradle(ver 2.4)。
您可以通过从“文件”菜单打开“项目结构”对话框来设置项目,
Project Structure -> Project -> Gradle version
并将其设置为“2.4”。
您可以在此链接阅读更多关于提升性能的信息。
使用Android Studio 2.1,您可以启用“Dex In Process”以加快应用程序的构build。
你可以在这里获得更多的信息: https : //medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.vijksflyn
这就是我所做的,我的gradle build速度显着提高! 从1分钟到20秒,第一次构build和后续构build从40秒到5秒。
在gradle.properties文件中添加这个:
org.gradle.jvmargs=-Xmx8192M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
在命令行参数中,通过转至文件>其他设置>默认设置>构build,执行,部署>编译器,并将以下参数添加到命令行参数
加这个:
--debug --stacktrace -a, --no-rebuild -q, --quiet --offline
-
启用离线工作
-
通过在
gradle.properties
添加以下代码来提高Gradle性能
org.gradle.daemon =真
org.gradle.parallel =真
逐步指导: http : //www.viralandroid.com/2015/08/how-to-make-android-studio-fast.html
dexOptions { incremental true javaMaxHeapSize "4g" }
您也可以使用命令行来获得更好的性能。您可以使用命令./gradlew <task name>
从您的项目的根文件夹内部或使用gradlew.bat文件,如gradlew <task name>
。当您第一次运行对于给定的Gradle版本,上面的命令将下载相应的Gradle发行版,并使用它来执行构build。
当通过其包装器导入Gradle项目时,IDE可能会要求使用Gradle“all”分发。 这非常好,可以帮助IDE为构build文件提供代码完成。 这不仅意味着你不必手动安装Gradle,但是你也一定要使用Gradle的版本。 这使您的历史build设更可靠。 有关更多信息,请参阅使用包装执行构build
要获得更快的构build,请将Gradle守护进程的最大堆大小增加到2048 MB以上。
要做到这一点
org.gradle.jvmargs=-Xmx2048M
在项目gradle.properties中 。
添加一个build.gradle
文件:
android { ... dexOptions { javaMaxHeapSize "4g" //specify the heap size for the dex process } ... }
我希望它有帮助。
我正在运行与Windows 10和1TB固态第五代i7。 我压缩了Android Studio Projects文件夹,获得了大约80%的提升。 希望这可以帮助。
然后我把它与上面的解决scheme,即(org.gradle.parallel = true,org.gradle.daemon = true)。 性能提升相当可观。
另外:
以上所有的答案都是完全正确的,但是我必须声明Android开发者(4年半)的经验:没有Android / Gradle开发者应该使用微调驱动器在机器上工作,你需要为固体状态。 我们每天都在IDE 100s的时间点击播放button。 当我从Spinner转到SSD(Post Gradle)时,我的速度和效率竟然快了2到4倍,我向你保证我不会在这里夸大。
现在我不是说有一台小型SSD和一个大型微调机器,我说的是一个大SSD。 如果您已经拥有一台具有小型SSD和大型微调控制器的计算机,则可以将小型微调控制台升级为500GB SSD,并将SSD设置为您的主要操作系统驱动器,同时安装开发人员工具。
所以如果你在快节奏的环境下工作,请把这个post给老板。 一个体面的1TB固态硬盘会让你回到约300英镑(含增值税),或约500英镑的500GB固态硬盘。 根据您是初级或高级Android开发人员,如果您投资较小的开发人员,开发人员将在1-2个工作周内为自己支付工资(工资费用),或者大约2个半到5个工作日; 说500GB的SSD。
许多开发人员可能会认为事实并非如此,但对于Gradle来说,Gradle系统在直接访问磁盘上非常困难。 如果您使用.NET / C#/ VB Net或其他开发工具,您将不会注意到很多差异,但Gradle中的差异很大。 如果你在这个岗位上行动,我向你保证,你不会失望的。 就我个人而言,我使用的第五代i7 8GB内存,最初来了1TB微调,我升级到三星SSD 840 EVO 1TB,我从来没有回头看。 我从https://www.aria.co.uk购买了我的产品。;
希望这可以帮助。 另外我必须说明,这不是一个商业动机的post,我只是推荐Aria,因为我已经使用过很多次了,他们一直都很可靠。
根据维基媒体应用程序Android团队的这个页面 ,优化Gradle构build的一个好方法就是将这些行添加到〜/ .gradle / gradle.properties
org.gradle.daemon=true org.gradle.parallel=true org.gradle.configureondemand=true org.gradle.jvmargs=-Xmx2048M
对于那些没有这个文件的人来说,有两种方法可以做到这一点:
-
通过在项目根目录中创build一个名为gradle.properties的文件,在本地添加文件,
-
您可以通过在主目录中创build相同的文件( Windows上的%UserProfile%.gradle, Linux和Mac OS X上的〜/ .gradle)来为全部项目设置它们。
在主目录中而不是在项目级别上设置属性是个好习惯 。
尽量避免使用只有8 GB内存的Mac / PC进行Android开发。 只要启动一个仿真器(Genymotion或其他),您的构build时间就会在Android Studio中使用gradle构build变得非常慢。 即使您对1个源文件进行简单的单行更改,也会发生这种情况。
closures模拟器并使用真实的设备会有很大帮助,但这当然是非常有限的,而且不太灵活。 减less模拟器的内存使用率设置可能有所帮助,但最好的方法是确保您的笔记本电脑至less有12-16 GB的内存。
更新(2017年6月):现在有几个很好的medium.com文章解释了如何加速Android Studio gradle build的细节,甚至可以在8 GB的机器上运行:
- 如何减less65%的Gradle构build时间 : https : //medium.com/@kevalpatel2106/how-to-decrease-your-gradle-build-time-by-65-310b572b0c43
- 让你的Gradle再次build立起来! : https : //medium.com/@wasyl/make-your-gradle-builds-fast-again-ea323ce6a435
总结的共识是:
创build一个gradle.properties文件(全局或本地项目),并添加以下几行:
org.gradle.daemon=true org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.configureondemand=true