优化Android Studio/Gradle构建

优化Android Studio/Gradle构建

       使用Android Studio进行开,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。

开启gradle单独的守护进程

在下面的目录下面创建gradle.properties文件:

  • /home/<username>/.gradle/ (Linux)
  • /Users/<username>/.gradle/ (Mac)
  • C:\Users\<username>\.gradle (Windows)
  • 把下面配置复制gradle.properties文件也可以优化:
    1. # Project-wide Gradle settings.
    2. # IDE (e.g. Android Studio) users:
    3. # Settings specified in this file will override any Gradle settings
    4. # configured through the IDE.
    5. # For more details on how to configure your build environment visit
    6. # http://www.gradle.org/docs/current/userguide/build_environment.html
    7. # The Gradle daemon aims to improve the startup and execution time of Gradle.
    8. # When set to true the Gradle daemon is to run the build.
    9. # TODO: disable daemon on CI, since builds should be clean and reliable on servers
    10. org.gradle.daemon=true
    11. # Specifies the JVM arguments used for the daemon process.
    12. # The setting is particularly useful for tweaking memory settings.
    13. # Default value: -Xmx10248m -XX:MaxPermSize=256m
    14. org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    15. # When configured, Gradle will run in incubating parallel mode.
    16. # This option should only be used with decoupled projects. More details, visit
    17. # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
    18. org.gradle.parallel=true
    19. # Enables new incubating mode that makes Gradle selective when configuring projects. 
    20. # Only relevant projects are configured which results in faster builds for large multi-projects.
    21. # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
    22. org.gradle.configureondemand=true

    复制代码 同时上面的这些参数也可以配置到前面的用户目录下的gradle.properties文件里,那样就不是针对一个项目生效,而是针对所有项目生效。 上面的配置文件主要就是做, 增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以平行的运行。 1.申请大内存 installation path\studio64.exe.vmoptions or studio.exe.vmoptions 使用文本编辑器打开,找到起始两行,如下 -Xms128m -Xmx750m 修改最小值和最大值,建议为 -Xms256m -Xmx2048m

    2 优化编译

     file->setting->compile

     勾选除第二项之外的其他选项,并在VM options里填入:

     -Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

经过测试,编译速度有很大提升,比较大的项目从之前的5-8分钟可以减少到1-2分钟。

用命令行Build

可以参考这个讨论串

https://plus.google.com/u/0/+RicardoAmaral/posts/e9PG6vSN5w3

gradle assembleDebug

实测速度快50%左右 原理不明

回头写个脚本 build完成再自动安装运行应该就好了

我觉得TMD还是把公司的破电脑扔了换个新的才能从根本上解决问题

来源: <http://bbs.itheima.com/thread-204217-1-1.html>

第二篇:

已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。

开启gradle单独的守护进程

在下面的目录下面创建gradle.properties文件:

  • /home/<username>/.gradle/ (Linux)
  • /Users/<username>/.gradle/ (Mac)
  • C:\Users\<username>\.gradle (Windows)

并在文件中增加:

org.gradle.daemon=true

同时修改项目下的gradle.properties文件也可以优化:

# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users: # Settings specified in this file will override any Gradle settings # configured through the IDE.

# For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle. # When set to true the Gradle daemon is to run the build. # TODO: disable daemon on CI, since builds should be clean and reliable on servers org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx10248m -XX:MaxPermSize=256m org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects.  # Only relevant projects are configured which results in faster builds for large multi-projects. # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand org.gradle.configureondemand=true

同时上面的这些参数也可以配置到前面的用户目录下的gradle.properties文件里,那样就不是针对一个项目生效,而是针对所有项目生效。

上面的配置文件主要就是做, 增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以平行的运行。

修改android studio配置

在android studio的配置中,开启offline模式,以及修改配置。实际上的配置和上面的一大段一样,主要是在这个地方配置的只会在ide构建的时候生效,命令行构建不会生效。

命令行构建

基于上面的配置,命令行构建时在命令后面加上这个参数即可 --daemon --parallel --offline

引入依赖库时使用aar

使用网上第三方的依赖库时尽量使用aar,可以在mavenhttp://gradleplease.appspot.com/或者githuhttps://github.com/Goddchen/mvn-repo搜索。

自己的库模块也可以打包成aar,关于这个可以参考 http://www.linuxidc.com/Linux/2015-03/115242.htm。

后记

经过这样一番折腾,我原来需要4,5分钟才能构建完成的项目,现在只需要30秒左右就可以构建完成了。当然了,如果你这样还是不可以的话,那么,你应该换电脑了,ssd的硬盘,更大的内存,必须的上了。

Ubuntu 12.04(64位)安装Android Studio 全过程 http://www.linuxidc.com/Linux/2013-05/84812.htm

Android Studio v0.1尝鲜 http://www.linuxidc.com/Linux/2013-05/84681.htm

Android Studio使用教程 http://www.linuxidc.com/Linux/2013-05/84579.htm

Android Studio开发指南 http://www.linuxidc.com/Linux/2013-05/84543.htm

Android Studio设置主题 和 不支持中文的问题解决方法 http://www.linuxidc.com/Linux/2013-05/84488.htm

Android Studio 下载安装以及不能打开的解决办法 http://www.linuxidc.com/Linux/2013-05/84409.htm

Android Studio安装使用图文教程 http://www.linuxidc.com/Linux/2014-09/106914.htm

Android Studio 的详细介绍:请点这里 Android Studio 的下载地址:请点这里

更多Android相关信息见Android 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=11

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-03/115241.htm

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Rainbond开源「容器云平台」

边做边学,基于Spring Cloud的微服务架构最佳实践

1604
来自专栏Android知识点总结

SpringBoot-04-之模板引擎--thymeleaf

1663
来自专栏杂烩

springmvc http异步请求 原

    servlet3.0开始支持异步请求,springmvc3.2引入支持异步http。相比于servlet2.5,异步后的程序在系统性能,尤其是吞吐量,资...

1003
来自专栏Java技术栈

Spring Boot国际化支持

本章将讲解如何在Spring Boot和Thymeleaf中做页面模板国际化的支持,根据系统语言环境或者session中的语言来自动读取不同环境中的文字。 国际...

7056
来自专栏Java技术栈

Junit5新功能一览

Java的JUnit测试框架已经来到了5这个版本,与以前的版本不同的是JUnit5具有来自多个子项目的模块,其中包括: 1、Platform,用于在JVM上启动...

3427
来自专栏13blog.site

运行shell脚本时报错"[[ : not found"解决方法

问题描述 在运行shell脚本时报错,命令为: sh test.sh 报错如图: ? 脚本代码如下: #!/bin/bash # file:test.sh...

2803
来自专栏Youngxj

emlog添加人体艺术时钟组件

1654
来自专栏屈定‘s Blog

Alfred插件开发--了解Alfred的数据流动

最近发现要记住的长命令太多了,因此打算开发一款Alfred插件帮助自己记录. 先展示下成品,大概就是输入关键词->搜索展示->复制到指定位置这一流程,借此开分析...

1663
来自专栏IT笔记

Spring3+Hibernate3升级为Spring4+Hibernate4

写在开始 今天,把当前项目做了一下升级,特此记录一下。 由于历史原因,项目本身并不是Maven项目,所以升级JAR包都是手动从Maven库中下载,然后load进...

3126
来自专栏电光石火

获得PHP版本信息及版本比较

version_compare是一个版本比较工具,当然也可以作为其他的版本比较工具:

843

扫码关注云+社区

领取腾讯云代金券