1.显示内存 在设置中
设置完成后,展示出的效果在屏幕右下角,具体是这样的
2.修改内存
打开Android Studio
的安装目录,找到虚拟机的配置文件,进行修改,如下:
Windows
编辑安装目录下的bin\studio64.exe.vmoptions
macOS Catalina(10.15.4)
$ sudo vim /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions
|
原始内容如下:
我们需要修改如下参数:
-Xms256m # 最低分配内存
-Xmx1280m # 最高分配内存
-XX:ReservedCodeCacheSize=240m # 代码缓存保留空间
-XX:+UseConcMarkSweepGC # GC
|
建议修改成的参数
-server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是:
当虚拟机运行在-client模式的时候,使用的是一个代号为C1的轻量级编译器,
而-server模式启动的虚拟机采用相对重量级,代号为C2的编译器.
C2比C1编译器编译的相对彻底,服务起来之后,性能更高.
-server # 服务器模式
-Xms2048m # 最低分配内存
-Xmx4096m # 最高分配内存
-XX:ReservedCodeCacheSize=1024m # 代码缓存保留空间
UseConcMarkSweepGC
CMS,全称Concurrent Low Pause Collector
主要适合场景是对响应时间的重要性需求大于对吞吐量的要求,
能够承受垃圾回收线程和应用线程共享处理器资源,
并且应用中存在比较多的长生命周期的对象的应用
-XX:+UseParNewGC:设置年轻代为多线程收集。
可与CMS收集同时使用。在serial基础上实现的多线程收集器。
-XX:+UseParNewGC # GC
|
修改后的结果 (macOS Catalina(10.15.4)),如下图:
打开idea.properties文件,找到idea.max.intellisense.filesize,默认是2500,改为25000(数值仅供参考,具体数值根据自己文件大小来定)
|
$ sudo vim /Applications/Android\ Studio.app/Contents/bin/idea.properties
|
2. Android Studio 3.6.3设置自动编译工程
打开Android Studio的设置,找到如图所示,打上勾即可。如图:
3. 打开dex增量编译
在Module的build.gradle中添加如下代码
|
dexOptions {
// incremental选项已经过期,现在已经用不到了,默认已经自动启用
// incremental true
//预编译库文件,如果库没有改动,就不需要更新了
preDexLibraries = true
}
|
4. 修改gradle设置
在Project的gradle.properties中添加
下面注释掉的两项在实际编译的时候,不一定能正常,因此我们暂时不启用
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
5. 使用本地gradle
在Android Studio
的Gradle
每次编译的时候,每次都会联网检查依赖库,如果网速比较慢,会比较耗时。我们可以暂时禁用Gradle
的联网检查,如下图:
6. 启用 Gradle Caching
Gradle Caching 是 Gradle 3.5 的新特性,顾名思义能通过缓存来加速 build 过程。
在 Android Studio 3.0 中更据此做出了许多优化,因此我们可以这样来启用:
gradle.properties
Set this in gradle.properties
org.gradle.caching=true
7. 尽可能使用最新版本的 Android Gradle Plugin
Android 的 tool team 一直都在不断改进 Android Gradle Plugin,提高构建速度。所以第一条是最简单的,始终使用最新版本的 Android Gradle Plugin。
build.gradle
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}