随着Android Studio的不断完善,其安卓开发者阵营也基本从Eclipse转移到了Android Studio,毕竟Android Studio是谷歌亲力亲为开发的官方开发软件。不过其最重要的原因应该还是Android从14年开始不再对Eclipse插件支持的缘故吧。刚开始学Android用的是Eclipse,现在工作中使用的是Android Studio,前段时间推出了3.0.0,然后现在更新到了3.0.1。要说和2.3有什么区别,直观上来说就是风格吧,升级到3.0以后有点醉,以前2.3好好的项目,3.0编译不过了,需要做一些调整才能顺利编译,另外一个就是明显感觉编译速度变慢了,既然出现了问题,那就开始着手解决问题吧。终于把话题扯回来了,今天要说的是Android Studio优化的事情。

在网上查阅资料以及亲身实践以后发现了可行的办法,现总结如下:

  1. 开启gradle单独守护进程,开启并行编译,启用新的孵化模式

    ① 在以下目录下创建gradle.properties文件:

    - /home/<username>/.gradle/ (Linux)

    - /Users/<username>/.gradle/ (Mac)

    - C:\User\<username>/.gradle/ (Windows)

    ② 在gradle.properties文件中填写以下配置


    #开启守护进程 org.gradle.damen=true ##开启并行编译 org.gradle.parallel=true ##启用新的孵化模式 org.gradle.configureondemand=true

    说明:以上的配置是全局生效,如果只是想让单个程序编译速度加快,可以在项目中的gradle.properties配置。

  2. 为Android Studio申请更大的内存。

    相信现在很多人的内存都在8G或者更高。因此可以顺便为Android Studio分配更多的内存供其使用。

    ① 在Android Studio的安装目录下找到bin文件夹,如果是32位的系统,打开studio.exe.vmoptions配置文件,如果是64位系统,打开studio64.exe.vmoptions配置文件。

    ② 找到如下文字信息(根据电脑配置不同,初始化数据有所差异):

    -Xms256m
    -Xmx1280m

    这是软件安装时候默认 分配的大小。JVM初始分配的堆内存由-Xms指定,JVM最大分配的堆内存由-Xmx指定。JVM 中最大堆在32位系统下,一般限制在1.5G~2G,64为操作系统对内存无限制,另外原本在Settings里面设置的VM Options也可以在这里配置。其他一些参数也是关于JVM相关设置的,MaxPermSize(非堆内存最大值),HeapDumpOnOutOfMemoryError(当首次遭遇OOM时导出此时堆中相关信息)。其中我们只需要修改这些参数就可以了,注意,在每一行后面一定不要留空格。如果感兴趣的话可以参考以下文章:VM调优总结 -Xms -Xmx -Xmn -Xss。我的电脑为12G内存,我就其设置为(关于设置依据,没找到合适的参考文章,就感性的设置了一个):

    -Xms512m
    -Xmx4096m
    -XX:MaxPermSize=2048m
    -XX:+HeapDumpOnOutOfMemoryError
    -Dfile.encoding=UTF-8
  3. 优化编译

    在Android Studio中,依次选择File -> Settings -> Build,Execution,Deployment -> Compiler中设置如下:



    说明:勾选的第一项为并行设置,第二项为离线工作设置,这个后面会再提到。第三项为开启自动编译,第四项为配置守护进程。设置完后点击应用。在3.0中,将原本的VM Options移除了,使用2.3的读者注意下这个细节。

    可以在gradle.properties中配置:

    org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8  // 配置编译时的虚拟机大小

    也可以在Command-line Options配置:

    -Xmx4096m
    -XX:MaxPermSize=2048m
    -XX:+HeapDumpOnOutOfMemoryError
    -Dfile.encoding=UTF-8

    为了保持统一,就在studio64.exe.vmoptions配置了,所谓条条大路通罗马。

  4. 配置gradle离线工作

    在Android Studio中,依次选择File -> Settings -> Build,Execution,Deployment -> gradle中设置如下:



    第一个为选择本地gradle版本,默认选中的是上一个默认值,其位置在C:\User\<username>\.gradle\wrapper\dists\ (Windows)下,在Android Studio下也有相应的gradle,选择这个比较方便。在这里顺便提供下前段时间从官网扒下来的gradle,方便各位读者下载:

    链接:https://pan.baidu.com/s/1gfbAWKV 密码:lr8k

    勾选gradle会使得速度更快,但同时存在一个问题,如果需要从网上加载第三方库,会无法下载,所以酌情使用。前面的Command-line Options与这里相对应。

最后,重启Android Studio,你会发现便宜速度大幅提升,瞬间心情就好很多了。

以上属于个人体验心得总结,若有不足之处,还望不吝赐教,欢迎批评指正,共同进步。

Android Studio优化编译速度的更多相关文章

  1. 加快Android Studio的编译速度

    从Eclipse切换到Android Studio后,感觉Android Studio的build速度比Eclipse慢很多,以下几个方法可以提高Android Studio的编译速度 使用Gradl ...

  2. 加速 Android Studio 的编译速度 2.2

    Android studio 2.2 当中有一项新的功能:Dex In Process. 这项功能可以动态的加快编译速度,以及提高Instant Run 的效率. 那么怎么来使用这项新功能呢?你只需要 ...

  3. Android studio 加速编译方法

    JRebel for Android 是一个Android Studio的插件,可以大大加速Android Studio的编译速度,对于小项目来说或许不明显:但是当项目达到一定的规模时,它对于Andr ...

  4. Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度

    原文:Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 嫌项目编译太慢?不一定是 Visual Studio 的问题,有可能 ...

  5. Android Studio gradle编译 NullPointerException(no error message)解决

    原文:Android Studio gradle编译 NullPointerException(no error message)解决 1.关闭Android Studio  2.找到工程目录下的 . ...

  6. Android提升Gradle编译速度或减少Gradle编译时间.md

    目录 Android如何提升Gradle编译速度或减少Gradle编译时间 最终优化方案 优化效果比对 将所有项目源码,各种缓存临时目录都移动到高性能SSD磁盘上 gradle.properties ...

  7. 我的Android Studio 优化之路

    改动keymap 改动经常使用的快捷键 代码补全(Eclipse: ALT+/) Android Studio中默认用的是Ctrl+Space, 这跟输入法切换冲突.找到Keymap->Main ...

  8. Android Studio Gradle编译项目报错

    Gradle project sync failed Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing Gradl ...

  9. Android开发学习之路--Android Studio cmake编译ffmpeg

      最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...

随机推荐

  1. 067_查看 KVM 虚拟机中的网卡信息(不需要进入启动或进入虚拟机)

    #!/bin/bash #该脚本使用 guestmount 工具,可以将虚拟机的磁盘系统挂载到真实机文件系统中#Centos7.2 中安装 libguestfs-tools-c 可以获得 guestm ...

  2. BZOJ 1576 树剖+LCT

    题意:给定一张图,保证 $1$ 号点到其他所有点的最短路径是唯一的,求:对于点 $i$,不经过 $1$ 到 $i$ 最短路径上最后一条边的最短路. 题解:可以先建出最短路树,然后枚举每一条非树边. 对 ...

  3. python 时间等待

    #coding=utf- import time t1=time.time() time.sleep() t2=time.time() print(t2-t1) 输出 3.00304102898

  4. python生成二维码(简易)

    首先要的配置: pillow image qrcode zxing 然后直接上代码: import PIL import qrcode # 实例化二维码生成类 qr = qrcode.QRCode( ...

  5. JRebel for IntelliJ激活

    好久没用jrebel了,跟前端进行项目联调总是有些许改动,还是热部署方便. 目前用的idea版本:IntelliJ IDEA 2019.2 JRebel插件版本:JRebel for IntelliJ ...

  6. 小程序can't read property 'push' of undefined

    在某些情况下是因为没有初始化,所以初始化一下就好了

  7. js对元素判断

    $("input[type='text']").attr("readonly","readonly"); $("textarea& ...

  8. 使用 Nexus3 Repository Manager 搭建 npm 私服

    公司里一般都有自己的私服,用于管理封装的工具插件等,Nexus2主要是用于maven/gralde仓库的统一管理,Nexus3则添加了npm插件,可以对npm提供支持,其实用于npm仓库管理的还有一个 ...

  9. SDK评测

    这个作业属于哪个课程 这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2019FZUSEZ/homework/10081 这个作业的目标 每个人发表一篇随笔, ...

  10. java 通过runtime 调用python 不显示python运行内容的bug

    先说下上面问题的原因,上面问题是因为python中用到了第三方的类库,你的电脑上没有那个类库,所以程序没有运行,在控制台也就看不到输出.只要导入那个类库就好... python 导入类库,可以单独下载 ...