zoukankan      html  css  js  c++  java
  • 加速Android Studio/Gradle构建

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

    开启gradle单独的守护进程

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

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

    并在文件中增加:

    1
    org.gradle.daemon=true

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    # 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,关于这个可以参考stormzhang的文章http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/

    后记

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

    另外

    修改idea.xxx.vmoptions/studio.xxx.vmoptions 文件,它在你的idea/android studio 安装目录下的bin 文件夹中


    我的值
    -Xms512m
    -Xmx2048m
    -XX:MaxPermSize=768m
    -XX:ReservedCodeCacheSize=768m
    -XX:+UseCompressedOops
     

    Android stuido作为google主推的IDE,配合gradle编译,有很多的优点和便捷性。唯一使用过程中不舒服的地方就是莫名其妙的卡顿,经常在coding的时候卡死,非常无语,不知道是不是我的机器也比较烂,总之IDE优化还需要google加油。以及非常慢的编译速度。尝试了很多优化方案,将我的发现和大家分享一下。

    以PC 端为例,MAC大同小异

    1.申请大内存

    installation pathstudio64.exe.vmoptions or studio.exe.vmoptions

    使用文本编辑器打开,找到起始两行,如下

    -Xms128m
    -Xmx750m

    修改最小值和最大值,建议为

    -Xms256m
    -Xmx2048m

    2 优化编译

    a:

    file->setting->compile

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

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

    b:

    C:Usersyourname.gradle

    用文本编辑器打开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

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

    一、将用不到的插件全部禁用掉,方法如下:

    启动你的 Android Studio,然后选择菜单 File -> Settings... 以打开配置界面,然后在左侧 IDE Settings 栏位里找到 Plugins 配置项,

    此时右侧出现相应的插件选项,把用不到的选项勾选去掉即可,例如:CVS Integration、Git Integration、GitHub、Google Cloud Tools

    For Android Studio、Google Login、Python、Subversion Integration、TestNG-J 等。勾选好后单击右下方的 Apply 按钮以便使你的配置

    生效,最后按提示重启 Android Studio 即可。(这样配置后,你的 Studio 速度至少成倍提升!!)

    二、为 Gradle 提速,方法就是让 Gradle 使用 daemon(守护进程)方式进行 build(构建)项目,方法如下:

    1、创建一个名为 gradle.properties 的文件到以下目录:

    · Windows 7 系统---C:Users<username>.gradle

    · Linux 系统---/home/<username>/.gradle/

    · Mac 系统---/Users/<username>/.gradle/

    然后在该文件中加入一行配置项如下:

    org.gradle.daemon=true

    2、让 Gradle 不要老是访问网络,而改用离线方式进行构建,方法如下:

    启动你的 Android Studio,然后选择菜单 File -> Settings... 以打开配置界面,然后在左侧 Project Settings [your_project_name] 栏

    位里找到 Gradle 配置项,此时右侧出现相应的选项,再找到 Global Gradle settings 下方的 Offline work 选项,把勾选去掉即可。勾选

    好后单击右下方的 Apply 按钮以便使你的配置生效,最后按提示重启 Android Studio 即可。(这样配置后,再次构建项目时,速度至少成

    倍提升!!)

  • 相关阅读:
    java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 *&* 解决方法
    一个罕见的MSSQL注入漏洞案例
    工具推荐:ATSCAN,功能强大的Perl脚本扫描器
    突破XSS字符限制执行任意JS代码
    用Nginx分流绕开Github反爬机制
    浅析XSS与XSSI异同
    IE安全系列之——RES Protocol
    跨站请求伪造(CSRF)攻击原理解析:比你所想的更危险
    SQL注入攻击和防御
    SQL 注入,永不过时的黑客技术
  • 原文地址:https://www.cnblogs.com/dongweiq/p/5526848.html
Copyright © 2011-2022 走看看