Android Studio优化编译速度
随着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优化的事情。
在网上查阅资料以及亲身实践以后发现了可行的办法,现总结如下:
开启
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
配置。为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优化编译
在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
配置了,所谓条条大路通罗马。配置
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优化编译速度的更多相关文章
- 加快Android Studio的编译速度
从Eclipse切换到Android Studio后,感觉Android Studio的build速度比Eclipse慢很多,以下几个方法可以提高Android Studio的编译速度 使用Gradl ...
- 加速 Android Studio 的编译速度 2.2
Android studio 2.2 当中有一项新的功能:Dex In Process. 这项功能可以动态的加快编译速度,以及提高Instant Run 的效率. 那么怎么来使用这项新功能呢?你只需要 ...
- Android studio 加速编译方法
JRebel for Android 是一个Android Studio的插件,可以大大加速Android Studio的编译速度,对于小项目来说或许不明显:但是当项目达到一定的规模时,它对于Andr ...
- Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度
原文:Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 嫌项目编译太慢?不一定是 Visual Studio 的问题,有可能 ...
- Android Studio gradle编译 NullPointerException(no error message)解决
原文:Android Studio gradle编译 NullPointerException(no error message)解决 1.关闭Android Studio 2.找到工程目录下的 . ...
- Android提升Gradle编译速度或减少Gradle编译时间.md
目录 Android如何提升Gradle编译速度或减少Gradle编译时间 最终优化方案 优化效果比对 将所有项目源码,各种缓存临时目录都移动到高性能SSD磁盘上 gradle.properties ...
- 我的Android Studio 优化之路
改动keymap 改动经常使用的快捷键 代码补全(Eclipse: ALT+/) Android Studio中默认用的是Ctrl+Space, 这跟输入法切换冲突.找到Keymap->Main ...
- Android Studio Gradle编译项目报错
Gradle project sync failed Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing Gradl ...
- Android开发学习之路--Android Studio cmake编译ffmpeg
最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...
随机推荐
- WiredTiger 4.1.0 发布,MongoDB 存储引擎
WiredTiger 4.1.0 发布了.WiredTiger 是一个开源的.高性能.可伸缩的 MongoDB 数据存储引擎. 下面是一些性能比较图表: 该版本暂未提供更新内容. 下载地址: Sour ...
- CF891C Envy【最小生成树】
题目链接 我们知道,根据Kruskal的贪心,对于最小生成树,每一种权值的边数是一样的,而且如果将\(\leq x\)的边做最小生成树,合法方案的联通性是一样的.所以我们可以对于所有边分开考虑. 对于 ...
- [Shell]Redis未授权访问反弹shell
原作者:Cream 文章出处: 贝塔安全实验室 0x01 Redis未授权访问反弹shell Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value ...
- dp之斜率优化
前几天想练练思维,所以从cf上随便找了一道dp题,看完题意后第一感觉很简单,就是简单的区间dp题,但是看到数据范围的我顿时就懵了,(1≤n≤105) emmmmmmmm,按照普通的思路肯定会超时的.. ...
- 【转】Eclipse MAT内存分析工具(Memory Analyzer Tool)
Eclipse MAT内存分析工具(Memory Analyzer Tool) MAT内存分析工具# MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器.可以用于查找 ...
- Integer面试连环炮以及源码分析(转)
场景: 昨天有位朋友去面试,我问他面试问了哪些问题,其中问了Integer相关的问题,以下就是面试官问的问题,还有一些是我对此做了扩展. 问:两个new Integer 128相等吗? 答:不.因 ...
- ORACLE数据库误删恢复
一.表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: 1.从flash back里查询被删除的表 select * from r ...
- 使用spring profile实现多环境切换
第一步: applicationContext.xml <!--环境配置开始--> <beans profile="production"> <con ...
- IOS开发环境搭建
前置条件 1. 必要:一台装有Mac OS X操作系统的电脑:经济允许的话可以买一部Mac book:否则的话,可以试试黑苹果或虚拟机. 2.必要:一个有可用的Apple ID:免费,在Apple的官 ...
- 更换镜像加快python pip 安装扩展库的速度
一些镜像源: 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科 ...