文章摘要
1、配置文件路徑
2、自定義配置VM
3、配置最大堆內(nèi)存
4、導(dǎo)出和導(dǎo)入 IDE 設(shè)置
5、自定義 IDE 屬性
6、針對低內(nèi)存機(jī)器配置 IDE
7、針對 Instant Run 配置您的項目
8、設(shè)置 JDK 版本
9、設(shè)置代理設(shè)置
Android Studio 提供諸多向?qū)Ш湍0澹捎糜隍炞C系統(tǒng)要求(例如 Java 開發(fā)工具包 (JDK) 和可用內(nèi)存)和配置默認(rèn)設(shè)置(例如優(yōu)化的默認(rèn) Android Virtual Device (AVD) 模擬和更新的系統(tǒng)映像)。本文件介紹了您可能想要使用的其他配置設(shè)置,以便您自定義對 Android Studio 的使用方式。
Android Studio 通過 Help 菜單提供對兩個配置文件的訪問:
studio.vmoptions:自定義 Studio Java 虛擬機(jī) (JVM) 的選項,如堆內(nèi)存和緩存大小。請注意,對于 Linux 機(jī)器,此文件可能命名為 studio64.vmoptions,具體取決于您的 Android Studio 版本。
idea.properties:自定義 Android Studio 的屬性,如插件文件夾路徑或最大支持文件大小。
一、查找配置文件
兩個配置文件都存儲在 Android Studio 的配置文件夾中。文件夾名稱取決于 Studio 版本。例如,Android Studio 2.2 的文件夾名稱為 AndroidStudio2.2。此文件夾的位置取決于您的操作系統(tǒng):
Windows:%USERPROFILE%.<CONFIGURATION_FOLDER>/
Mac:~/Library/Preferences/<CONFIGURATION_FOLDER>/
Linux:~/.<CONFIGURATION_FOLDER>/
您也可以使用以下環(huán)境變量指向其他位置的特定替換文件:
STUDIO_VM_OPTIONS:設(shè)置 .vmoptions 文件的名稱和位置
STUDIO_PROPERTIES:設(shè)置 .properties 文件的名稱和位置
STUDIO_JDK:設(shè)置運(yùn)行 Studio 所使用的 JDK
二、自定義 VM 選項
通過 studio.vmoptions 文件,您可以自定義適用于 Android Studio 的 JVM 的選項。為了提高 Studio 的性能,最常用的調(diào)節(jié)選項是最大堆內(nèi)存,但您也可以使用 studio.vmoptions 文件替換其他默認(rèn)設(shè)置,如初始堆內(nèi)存、緩存大小和 Java 垃圾回收開關(guān)。
要新建 studio.vmoptions 文件或打開現(xiàn)有文件,請執(zhí)行以下步驟:
- 1、點(diǎn)擊 Help > Edit Custom VM Options。如果您之前從未編輯過適用于 Android Studio 的 VM 選項,IDE 將提示您新建一個 studio.vmoptions文件。點(diǎn)擊 Yes 創(chuàng)建文件。
- 2、此時 studio.vmoptions 文件將在 Android Studio 的編輯器窗口中打開。編輯文件以添加您自己的自定義 VM 選項。如需可自定義 JVM 選項的完整列表,請參閱 Oracle 的 Java HotSpot VM 選項頁。
您創(chuàng)建的 studio.vmoptions 文件將添加至默認(rèn) studio.vmoptions 文件,后者位于 Android Studio 安裝文件夾內(nèi)的 bin/ 目錄中。
請注意,切勿直接編輯 Android Studio 程序文件夾的 studio.vmoptions
文件。盡管您可以訪問該文件來查看 Studio 的默認(rèn) VM 選項,但僅編輯自己的 studio.vmoptions 文件可確保您不會替換 Android Studio 的重要默認(rèn)設(shè)置。因此,在您的 studio.vmoptions 文件中,請僅替換您關(guān)注的屬性,使 Android Studio 可以繼續(xù)使用未更改的任何屬性的默認(rèn)值。
三、最大堆內(nèi)存
默認(rèn)情況下,Android Studio 的最大堆內(nèi)存為 1280MB。如果您要處理大項目,或者您的系統(tǒng)有大量 RAM 可用,您可以通過在 Android Studio 的 VM 選項中增加最大堆內(nèi)存來提高性能。如果系統(tǒng)的內(nèi)存有限,您可能希望降低最大堆內(nèi)存。
要更改最大堆內(nèi)存,請執(zhí)行以下步驟:
- 1、點(diǎn)擊 Help > Edit Custom VM Options 以打開您的 studio.vmoptions 文件。
- 2、向 studio.vmoptions 文件添加一個行,使用語法 -XmxheapSize 設(shè)置最大堆內(nèi)存。您選擇的大小應(yīng)該基于項目大小以及機(jī)器上的可用 RAM。作為基準(zhǔn),如果您有 4GB 以上的 RAM 和中等大小的項目,則應(yīng)該將最大堆內(nèi)存設(shè)置為 2GB 或更高。以下行可將最大堆內(nèi)存設(shè)置為 2GB:
-Xmx2g
- 3、保存對 studio.vmoptions 文件所做的更改,然后重新啟動 Android Studio 以使更改生效。
- 4、要確認(rèn)新的最大堆內(nèi)存,請打開命令行,然后鍵入以下命令:
jps -lvm
您將看到機(jī)器上正在運(yùn)行的工具 JVM 的列表,包括每臺 JVM 的完整包名稱和傳入的參數(shù)。找到與您的 Android Studio 實例對應(yīng)的項。該項應(yīng)該以 -Didea.paths.selector=AndroidStudio[Version] 結(jié)尾。對于此 JVM,您應(yīng)該看到兩個以 -Xmx 開頭的參數(shù):一個采用默認(rèn)值 1280mb,另一個采用新值,如圖 1 所示。
- 圖 1. 顯示 Android Studio JVM 當(dāng)前參數(shù)的終端輸出。
四、導(dǎo)出和導(dǎo)入 IDE 設(shè)置
您可以導(dǎo)出一個設(shè)置 JAR 文件 (Settings.jar),其中包含項目的所有或部分首選 IDE 設(shè)置。然后,您可以將 JAR 文件導(dǎo)入其他項目和/或使 JAR 文件可供您的同事導(dǎo)入至其項目。
五、自定義 IDE 屬性
通過 idea.properties 文件,您可以自定義 Android Studio 的 IDE 屬性,如用戶安裝插件的路徑以及 IDE 支持的最大文件大小。idea.properties 文件與 IDE 的默認(rèn)屬性合并,以便您可以僅指定替換屬性。
要新建 idea.properties 文件或打開現(xiàn)有文件,請執(zhí)行以下步驟:
- 1、點(diǎn)擊 Help > Edit Custom Properties。如果您之前從未編輯過 IDE屬性,Android Studio 將提示您新建一個 idea.properties 文件。點(diǎn)擊Yes 創(chuàng)建文件。
- 2、此時 idea.properties 文件將在 Android Studio 的編輯器窗口中打開。編輯文件以添加您自己的自定義 IDE 屬性。
以下 idea.properties 文件包括通常自定義的 IDE 屬性。如需獲得屬性的完整列表,請參閱 IntelliJ IDEA 的 idea.properties 文件。
#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to user installed plugins folder. Make sure
# you're using forward slashes.
#---------------------------------------------------------------------
# idea.plugins.path=${idea.config.path}/plugins
#---------------------------------------------------------------------
# Maximum file size (kilobytes) IDE should provide code assistance for.
# The larger file is the slower its editor works and higher overall system memory requirements are
# if code assistance is enabled. Remove this property or set to very large number if you need
# code assistance for any files available regardless their size.
#---------------------------------------------------------------------
idea.max.intellisense.filesize=2500
#---------------------------------------------------------------------
# This option controls console cyclic buffer: keeps the console output size not higher than the
# specified buffer size (Kb). Older lines are deleted. In order to disable cycle buffer use
# idea.cycle.buffer.size=disabled
#---------------------------------------------------------------------
idea.cycle.buffer.size=1024
#---------------------------------------------------------------------
# Configure if a special launcher should be used when running processes from within IDE.
# Using Launcher enables "soft exit" and "thread dump" features
#---------------------------------------------------------------------
idea.no.launcher=false
#---------------------------------------------------------------------
# To avoid too long classpath
#---------------------------------------------------------------------
idea.dynamic.classpath=false
#---------------------------------------------------------------------
# There are two possible values of idea.popup.weight property: "heavy" and "medium".
# If you have WM configured as "Focus follows mouse with Auto Raise" then you have to
# set this property to "medium". It prevents problems with popup menus on some
# configurations.
#---------------------------------------------------------------------
idea.popup.weight=heavy
#---------------------------------------------------------------------
# Use default anti-aliasing in system, i.e. override value of
# "Settings|Editor|Appearance|Use anti-aliased font" option. May be useful when using Windows
# Remote Desktop Connection for instance.
#---------------------------------------------------------------------
idea.use.default.antialiasing.in.editor=false
#---------------------------------------------------------------------
# Disabling this property may lead to visual glitches like blinking and fail to repaint
# on certain display adapter cards.
#---------------------------------------------------------------------
sun.java2d.noddraw=true
#---------------------------------------------------------------------
# Removing this property may lead to editor performance degradation under Windows.
#---------------------------------------------------------------------
sun.java2d.d3d=false
#---------------------------------------------------------------------
# Workaround for slow scrolling in JDK6
#---------------------------------------------------------------------
swing.bufferPerWindow=false
#---------------------------------------------------------------------
# Removing this property may lead to editor performance degradation under X Window.
#---------------------------------------------------------------------
sun.java2d.pmoffscreen=false
#---------------------------------------------------------------------
# Workaround to avoid long hangs while accessing clipboard under Mac OS X.
#---------------------------------------------------------------------
# ide.mac.useNativeClipboard=True
#---------------------------------------------------------------------
# Maximum size (kilobytes) IDEA will load for showing past file contents -
# in Show Diff or when calculating Digest Diff
#---------------------------------------------------------------------
# idea.max.vcs.loaded.size.kb=20480
六、針對低內(nèi)存機(jī)器配置 IDE
如果您正在低于建議規(guī)格(請參閱系統(tǒng)要求)的機(jī)器上運(yùn)行 Android Studio,則可以按如下方式自定義 IDE 以提高機(jī)器性能:
1、減小 Android Studio 可用的最大堆內(nèi)存:將 Android Studio 的最大堆內(nèi)存減小至 512Mb。如需了解有關(guān)更改最大堆內(nèi)存的詳細(xì)信息,請參閱最大堆內(nèi)存。
2、更新 Gradle 和適用于 Gradle 的 Android 插件:更新至最新版本的 Gradle 和適用于 Gradle 的 Android 插件,確保您能利用最新的性能改進(jìn)。如需了解有關(guān)更新 Gradle 和適用于 Gradle 的 Android 插件的詳細(xì)信息,請參閱適用于 Gradle 的 Android 插件版本說明。
3、啟用節(jié)能模式:啟用節(jié)能模式會關(guān)閉一系列消耗大量內(nèi)存和電池的后臺操作,包括錯誤突出顯示和動態(tài)檢查、自動彈出式代碼完成和自動增量式后臺編譯。要打開節(jié)能模式,請點(diǎn)擊 File > Power Save Mode。
-
4、停用不必要的 lint 檢查:要更改 Android Studio 在您的代碼上運(yùn)行的 lint 檢查,請繼續(xù)執(zhí)行以下操作:
- 點(diǎn)擊 File > Settings(在 Mac 中,點(diǎn)擊 Android Studio > Preferences)以打開 Settings 對話框。
- 在左側(cè)窗格中,展開 Editor 部分并點(diǎn)擊 Inspections。
- 點(diǎn)擊復(fù)選框以選擇或取消選擇項目適用的 lint 檢查。
- 點(diǎn)擊 Apply 或 OK 以保存所做的更改。
在物理設(shè)備上調(diào)試:在模擬器上調(diào)試使用的內(nèi)存比在物理設(shè)備上調(diào)試使用的內(nèi)存更多,因此您可以通過在物理設(shè)備上調(diào)試來提高 Android Studio 的總體性能。
僅將必要的 Google Play 服務(wù)作為依賴項包括在內(nèi):將 Google Play 服務(wù)作為依賴項包括在項目中可提高必要的內(nèi)存量。僅包括必要的依賴項以提高內(nèi)存利用率和性能。如需了解詳細(xì)信息,請參閱將 Google Play 服務(wù)添加到您的項目。
-
打開 Gradle 的離線模式:如果您的帶寬有限,請打開離線模式,以防 Gradle 在您構(gòu)建期間嘗試下載丟失的依賴項。離線模式打開時,Gradle 會在丟失任何依賴項時發(fā)布構(gòu)建故障,而不會嘗試下載它們。要打開離線模式,請繼續(xù)執(zhí)行以下操作:
- 點(diǎn)擊 File > Settings(在 Mac 中,點(diǎn)擊 Android Studio > Preferences)以打開 Settings 對話框。
- 在左側(cè)窗格中,展開 Build, Execution, Deployment,然后點(diǎn)擊 Gradle。
- 在 Global Gradle 設(shè)置下,選中 Offline work 復(fù)選框。
- 點(diǎn)擊 Apply 或 OK 以使更改生效。
減小 DEX 文件編譯可用的最大堆內(nèi)存:將用于 DEX 文件編譯的 javaMaxHeapSize 設(shè)置為 200m。如需了解詳細(xì)信息,請參閱通過配置 DEX 資源縮短構(gòu)建時間。
-
不要啟用并行編譯:Android Studio 可以并行編譯獨(dú)立模塊,但如果您具有低內(nèi)存系統(tǒng),則不應(yīng)啟用此功能。要選中此設(shè)置,請繼續(xù)執(zhí)行以下操作:
- 點(diǎn)擊 File > Settings(在 Mac 中,點(diǎn)擊 Android Studio > Preferences)以打開 Settings 對話框。
- 在左側(cè)窗格中,展開 Build, Execution, Deployment,然后點(diǎn)擊 Compiler。
- 確保 Compile independent modules in parallel 選項未選中。
- 如果您進(jìn)行了更改,請點(diǎn)擊 Apply 或 OK 以使更改生效。
七、針對 Instant Run 配置您的項目
Instant Run 是 Run 和 Debug 命令的行為,可以大幅縮短應(yīng)用更新的間隔時間。盡管首次構(gòu)建可能需要花費(fèi)較長的時間,Instant Run 在向應(yīng)用推送后續(xù)更新時則無需構(gòu)建新的 APK,因此,這樣可以更快地看到更改。
默認(rèn)情況下,Android Studio 會為使用適用于 Gradle 的 Android 插件 2.0.0 及更高版本構(gòu)建的項目啟用 Instant Run。您可以通過修改項目的一些設(shè)置提高使用 Instant Run 的構(gòu)建性能。有關(guān)針對 Instant Run 配置項目的詳細(xì)信息,請參閱針對 Instant Run 配置和優(yōu)化您的項目。
八、設(shè)置 JDK 版本
最新 OpenJDK 的副本與 Android Studio 2.2 和更高版本捆綁提供,這是我們建議用于 Android 項目的 JDK 版本。要使用捆綁的 JDK,請繼續(xù)執(zhí)行以下操作:
- 1、在 Android Studio 中打開您的項目,然后在菜單欄中選擇 File > Project Structure。
- 2、在 SDK Location 頁面中的 JDK location 下方,選中 Use embedded JDK 復(fù)選框。
- 3、點(diǎn)擊 OK。
默認(rèn)情況下,用于編譯項目的 Java 語言版本基于項目的 compileSdkVersion (因為不同 Android 版本支持不同版本的 Java)。如有必要,您可以通過將以下 CompileOptions {} 代碼塊添加到 build.gradle 文件來替換此默認(rèn) Java 版本:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
}
九、設(shè)置代理設(shè)置
代理作為 HTTP 客戶端和 Web 服務(wù)器之間的中間連接點(diǎn),可提高互聯(lián)網(wǎng)連接的安全性和隱私性。
要支持在防火墻后面運(yùn)行 Android Studio,請為 Android Studio IDE 設(shè)置代理設(shè)置。使用 Android Studio IDE HTTP 代理設(shè)置頁面設(shè)置 Android Studio 的 HTTP 代理。
若從命令行或在未安裝 Android Studio 的機(jī)器(例如持續(xù)性集成服務(wù)器)上運(yùn)行適用于 Gradle 的 Android 插件,則應(yīng)在 Gradle 構(gòu)建文件中設(shè)置代理設(shè)置。
注:在初始安裝 Android Studio 程序包后,可以通過互聯(lián)網(wǎng)訪問或脫機(jī)運(yùn)行 Android Studio。但是,Android Studio 設(shè)置向?qū)健⒌谌綆煸L問、訪問遠(yuǎn)程存儲庫、Gradle 初始化和同步以及 Android Studio 版本更新需要互聯(lián)網(wǎng)連接。
9.1、設(shè)置 Android Studio 代理
Android Studio 支持 HTTP 代理設(shè)置,因此您可以在防火墻后面或使用安全網(wǎng)絡(luò)運(yùn)行 Android Studio。要在 Android Studio 中設(shè)置 HTTP 代理,請執(zhí)行以下操作:
- 1、從菜單欄中點(diǎn)擊 File > Settings(在 Mac 中,點(diǎn)擊 Android Studio > Preferences)。
- 2、在左側(cè)窗格中,點(diǎn)擊 Appearance & Behavior > System Settings > HTTP Proxy。此時將出現(xiàn) HTTP Proxy 頁面。
- 3、選擇 Auto-detect proxy settings 以使用自動代理配置 URL 來配置代理設(shè)置,或選擇 Manual proxy configuration 以自行輸入每一項設(shè)置。有關(guān)這些設(shè)置的詳細(xì)說明,請參閱 HTTP 代理。
- 4、點(diǎn)擊 Apply 或 OK 以使更改生效。
9.2、適用于 Gradle 的 Android 插件 HTTP 代理設(shè)置
若從命令行或在未安裝 Android Studio 的機(jī)器上運(yùn)行 Android 插件,則應(yīng)在 Gradle 構(gòu)建文件中設(shè)置適用于 Gradle 的 Android 插件代理設(shè)置。
對于應(yīng)用程序特定的 HTTP 代理設(shè)置,請根據(jù)各應(yīng)用程序模塊的要求在 build.gradle 文件中設(shè)置代理設(shè)置。
apply plugin: 'com.android.application'
android {
...
defaultConfig {
...
systemProp.http.proxyHost=proxy.company.com
systemProp.http.proxyPort=443
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.auth.ntlm.domain=domain
}
...
}
對于整個項目的 HTTP 代理設(shè)置,請在 gradle/gradle.properties 文件中設(shè)置代理設(shè)置。
# Project-wide Gradle settings.
...
systemProp.http.proxyHost=proxy.company.com
systemProp.http.proxyPort=443
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=password
systemProp.http.auth.ntlm.domain=domain
systemProp.https.proxyHost=proxy.company.com
systemProp.https.proxyPort=443
systemProp.https.proxyUser=username
systemProp.https.proxyPassword=password
systemProp.https.auth.ntlm.domain=domain
...