1.加快AS启动速度

“Help”-"Edit Custom Properties...",在文件中输入

# custom Android Studio properties
disable.android.first.run=true

PS:AS在第一次打开的时候会连网更新(翻樯),我们的目的就是把联网下载操作屏蔽掉,实测在AS 3.3.1中效果不明显。

2.增加运行环境内存

“Help”-"Edit Custom VM Options...",在文件中输入

# custom Android Studio VM options, see https://developer.android.com/studio/intro/studio-config.html
-Xms512m
-Xmx4096m
-XX:MaxPermSize=2048m
-XX:ReservedCodeCacheSize=1024m

PS:-Xms是AS初始分配的堆内存大小,-Xmx是AS最大分配的堆内存大小。AS运行越久,内存越不足的时候,就会频繁的触发GC,AS就自然会卡起来了,严重的直接黑屏,所以,我们把对应的所需内存都配置大一些。笔者使用的是8G内存,修改后效果还算明显。

3.取消一些联网操作或使用离线模式

打开“File-Settings-Appearance&Behavior-System Settings-Update”,取消选择“Automatically check updates for”和“Use secure connection”

打开“File-Settings-Build,Execution,Deployment-Gradle”,选择“Use local gradle distribution”,勾选“Offline work”

PS:有时候没有必要使gradle进行联网操作,勾选gradle会使得速度更快,但同时存在一个问题:如果项目中用到了一些其它的第三方库,会无法下载,所以可酌情使用。

4.优化编译方案(推荐)

新建“gradle.properties”文件。

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

打开 gradle.properties 文件,添加下列代码:

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-
org.gradle.parallel=true
org.gradle.configureondemand=true

PS:上面的代码主要是给gradle单独开启了一个守护线程,并且指定使用并行编译。上面的配置是针对全局的,如果只想针对单个项目,可以只修改这个项目下的gradle.properties文件。另外,AS本身也提供了一些编译优化选项:

打开“File-Settings-Build,Execution,Deployment-Compiler”,勾选下列复选框

PS:勾选的第一项为并行设置,第二项为离线工作设置。第三项为开启自动编译,第四项为配置守护进程。

5.优化项目结构

尽量将第三方库的jar、aar文件导入自己的项目,或者将第三方库下载到本地,然后当做一个本地模块导入自己的项目,不要再使用gradle中的maven依赖了(使用offline模式就会报错)。

6.其它

有条件的话最好还是升级下硬件。上SSD,升级内存(最好在8G以上,我公司项目涵盖多个模块,平时开个AS,项目文档,再打开个虚拟机,浏览器,过一会内存就吃紧,不得不关闭一些暂时不用的窗口,很浪费时间)。

加快android studio 编译速度(已更新至Android Studio 3.3.1)的更多相关文章

  1. 加快android studio 编译速度

    工程build一次太慢  经过各种搜索 整合以下 仅供参考 1.在下列目录中新建 gradle.properties 文件 /home//.gradle/ (Linux) /Users//.gradl ...

  2. Android Sutido 编译速度优化

    虽然Android Studio 此时已经更新到了Android Studio 2.1版本,build 版本android-studio-bundle-143.2739321.但是在安装该版本都是根据 ...

  3. 使用ant优化android项目编译速度,提高工作效率

    1.Android项目编译周期长,编译项目命令取消困难 2.在进行Android项目的编译的同时,Eclipse锁定工作区不能进行修改操作 3.在只进行资源文件的修改时,Eclipse对资源文件的修改 ...

  4. 加快QT工程编译速度

    转载:学海方舟 利用Qt Creator编译工程大家都觉得慢,特别是整个工程重新编译时,那问题来了怎么加快编译速度呢 ,其实方法很简单,利用我们的强大的多核CPU来实现多核编译: 在编译参数中加入“- ...

  5. 加速Android Studio编译速度

    一.修改运行内存 进入项目,菜单栏-help-Edit Custom VM Option   Paste_Image.png 添加或修改为: -Xms2048m -Xmx2048m -XX:MaxPe ...

  6. 加快QT工程编译速度(还可给Qt for Android设置)

    一.多核编译 环境:win10, Qt 5.4.1,编译器mingw32 项目: Qt for Android Qt Creator 在编译android项目时不支持预编译,默认cpu单核编译,工程稍 ...

  7. Android Source 源码已下载但 Android Studio 找不到的解决办法

    Android Studio 2.1 reporting in: solved the issue by resetting SDK. Preferences -> Appearance &am ...

  8. unbutu下wireshark编译安装(已更新)

    今天下午在ubuntu下进行编译安装wireshark,过程中出了很多错误,但最终安装成功了,这里写下自己的安装步骤和方法,有参考博文的安装编译方法,也有自己的总结和心得. 1 安装编译工具 $sud ...

  9. android sdk 编译--如何将源代码加入android.jar,以及make原理

    首先是这个问题如何修改. 在/frameworks/base/Android.mk中,找到如下行:packages_to_document :=在该变量的赋值语句最后添加xxxxx (这里是你的包的名 ...

随机推荐

  1. __set() __get() _isset() __unset() 在__unset() 在类中没有事先声明和已经声明过的属性调用unset的区别

    <?php //echo strtr("I Love Mysql, Love PHP", "Mysql","MYSQL"); //$a ...

  2. 【win7 + win server 2008】设置定时任务,设置.bat 文件去执行php脚本 == 用来配合爬虫程序简直不要太爽

    Windows Server 2008中使用计划任务定时执行BAT bat进行PHP脚本的执行 一.首先进行任务管理器设置  每隔1分钟执行.BAT 文件配置 首先Windows Server 200 ...

  3. sqlserver查询数据表中每个类别最新的一条记录

    表tariff_info, 原始数据: 想要的结果:以start_time时间倒序排序, 以code分类, 查询每一类最新的一条记录 sql: SELECT a.* FROM TARIFF_INFO ...

  4. 【java】java开发中的23种设计模式详解

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  5. 【struts2】Action的生命周期

    Struts2的Action的生命周期是:Struts2为每个请求都重新初始化一个Action的实例.可以稍微改造一下代码来验证一下. 给HelloWorldAction加上一个public无参的构造 ...

  6. 专注做好一件事(转) focus---这个世界上最成功的人,他们在某一领域获得成功之后,可通过经营杠杆进入任何他们想要涉足的领域。而这都得依赖于他们曾极致的专注在做好一件事情上。

  7. Python endswith() 函数

    函数:endswith() 作用:判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型 相关函数:判断字符串开头 startswith() 一.函数说明语法:string.endswith(st ...

  8. JPA之@GeneratedValue注解(转)

    JPA的@GeneratedValue注解,在JPA中,@GeneratedValue注解存在的意义主要就是为一个实体生成一个唯一标识的主键(JPA要求每一个实体Entity,必须有且只有一个主键), ...

  9. 大家来找茬:富连网今天中午抢购二手iPhone时网站无法访问的问题

    前几天在新闻区看到富士康卖二手iPhone的新闻,今天又看到说今天中午12点开抢.一大早就发现富连网无法访问了.前几天刚看到新闻的时候注册了个账号进去看了看,发现页面加载速度非常慢,今天中午基本无法打 ...

  10. windows 环境使用 kafka

    近来学习 kafka,网上搜的教程好多不好用.在此开一贴记录一下学习过程.推荐官网,是最好的教程 http://kafka.apache.org/quickstart 官网上是linux 环境,我用的 ...