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
}
}