Android 11 開發者預覽版現已推出;快來測試并分享您的反饋吧

配置 Android Studio

Android Studio 提供諸多向導和模板,可用于驗證系統要求(例如 Java 開發工具包 (JDK) 和可用 RAM)和配置默認設置(例如經過優化的默認 Android Virtual Device (AVD) 模擬和更新后的系統映像)。本文檔介紹了您可能需要使用的其他配置設置,以便您自定義對 Android Studio 的使用方式。

您可以通過 Android Studio 的 Help 菜單訪問下面這兩個配置文件:

  • studio.vmoptions:自定義 Studio 的 Java 虛擬機 (JVM) 選項,例如堆大小和緩存大小。請注意,在 Linux 計算機上,此文件可能會命名為 studio64.vmoptions,具體取決于您的 Android Studio 版本。
  • idea.properties:自定義 Android Studio 的屬性,例如插件文件夾路徑或支持的文件大小上限。

如需模擬器和設備的設置及使用方式的相關文檔,請參閱以下主題:

查找配置文件

兩個配置文件都存儲在 Android Studio 的配置文件夾中。文件夾名稱取決于您的 Studio 版本。例如,Android Studio 3.3 的文件夾名稱為 AndroidStudio3.3。此文件夾的位置取決于您的操作系統:

  • Windows:%USERPROFILE%\.CONFIGURATION_FOLDER
  • macOS:~/Library/Preferences/CONFIGURATION_FOLDER
  • Linux:~/.CONFIGURATION_FOLDER

您也可以使用以下環境變量指向其他位置的特定替換文件:

  • STUDIO_VM_OPTIONS:設置 .vmoptions 文件的名稱和位置
  • STUDIO_PROPERTIES:設置 .properties 文件的名稱和位置
  • STUDIO_JDK:設置運行 Studio 所使用的 JDK

自定義虛擬機選項

通過 studio.vmoptions 文件,您可以自定義 Android Studio 的 JVM 的選項。為了提高 Studio 的性能,最常用的調節選項是最大堆大小,但您也可以使用 studio.vmoptions 文件替換其他默認設置(例如初始堆大小、緩存大小和 Java 垃圾回收開關)。

要創建新的 studio.vmoptions 文件或打開現有文件,請按以下步驟操作:

  1. 依次點擊 Help > Edit Custom VM Options。如果您之前從未修改過 Android Studio 的虛擬機選項,Android Studio 將提示您新建一個 studio.vmoptions 文件。點擊 Yes 以創建文件。
  2. studio.vmoptions 文件會在 Android Studio 的編輯器窗口中打開。修改該文件以添加您自己的自定義虛擬機選項。如需可自定義 JVM 選項的完整列表,請參閱 Oracle 的 Java HotSpot 虛擬機選項頁面。

您創建的 studio.vmoptions 文件將添加到默認的 studio.vmoptions 文件中,后者位于 Android Studio 安裝文件夾內的 bin/ 目錄中。

請注意,切勿直接修改 Android Studio 程序文件夾內的 studio.vmoptions 文件。盡管您可以訪問該文件來查看 Studio 的默認虛擬機選項,但僅修改自己的 studio.vmoptions 文件可確保您不會替換 Android Studio 的重要默認設置。因此,在您的 studio.vmoptions 文件中,請僅替換您關注的屬性,以便 Android Studio 可繼續為您未更改的所有屬性使用默認值。

最大堆大小

默認情況下,Android Studio 的最大堆大小為 1280MB。如果您處理的是大項目,或者您的系統有大量 RAM 可用,您可以通過增大 Android Studio 進程(例如核心 IDE、Gradle 守護進程和 Kotlin 守護進程)的最大堆大小來提升性能。

Android Studio 會自動檢查可采取的堆大小優化措施,并在檢測到性能可以提升時通知您。

內存設置,可讓您為 Android Studio 進程配置最大 RAM 容量。

圖 1. 關于推薦的內存設置的通知。

如果您使用的是 64 位系統并配有不少于 5 GB 的 RAM,您還可以手動調整項目的堆大小。為此,請按以下步驟操作:

  1. 從菜單欄中依次點擊 File > Settings(或在 macOS 上,依次點擊 Android Studio > Preferences)。
  2. 依次點擊 Appearance & Behavior > System Settings > Memory Settings

    內存設置,可讓您為 Android Studio 進程配置最大 RAM 容量。

  3. 調整堆大小以匹配所需的容量。

  4. 點擊 Apply

    如果您更改了 Android Studio 的堆大小,則必須重啟 Android Studio 才能讓新的內存設置生效。

導出和導入 IDE 設置

您可以導出一個 Settings.jar 文件,其中包含項目的全部或部分首選 IDE 設置。然后,您可以將該 JAR 文件導入其他項目,并/或將該文件共享給同事,以便他們將其導入到自己的項目中。

如需了解詳情,請參閱 IntelliJ IDEA 中的導出和導入設置

自定義 IDE 屬性

通過 idea.properties 文件,您可以自定義 Android Studio 的 IDE 屬性,例如用戶所安裝插件的路徑以及 Android Studio 支持的文件大小上限。idea.properties 文件會與 Android Studio 的默認屬性合并,以便您可以僅指定要替換的屬性。

要創建新的 idea.properties 文件或打開現有文件,請按以下步驟操作:

  1. 依次點擊 Help > Edit Custom Properties。如果您之前從未修改過 IDE 屬性,Android Studio 將提示您新建一個 idea.properties 文件。點擊 Yes 以創建文件。
  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
    

針對低內存計算機配置 Android Studio

如果您要在低于建議規格(請參閱系統要求)的計算機上運行 Android Studio,則可以按如下方式自定義 Android Studio 以提升它在計算機上的性能:

  • 減小 Android Studio 可用的最大堆大小:將 Android Studio 的最大堆大小減小至 512Mb。要詳細了解如何更改最大堆大小,請參閱最大堆大小
  • 更新 Gradle 和 Android Plugin for Gradle:更新至最新版本的 Gradle 和 Android Plugin for Gradle,以確保您能利用最新的性能改進。要詳細了解如何更新 Gradle 和 Android Plugin for Gradle,請參閱 Android Plugin for Gradle 版本說明
  • 啟用節能模式:啟用節能模式會關閉一系列消耗大量內存和電池的后臺操作,包括錯誤突出顯示和動態檢查、自動彈出式代碼完成和自動增量式后臺編譯。要開啟節能模式,請依次點擊 File > Power Save Mode
  • 停用不必要的 lint 檢查:要更改 Android Studio 在您的代碼上運行的 lint 檢查,請執行以下操作:

    1. 依次點擊 File > Settings(在 macOS 上,依次點擊 Android Studio > Preferences)以打開 Settings 對話框。
    2. 在左側窗格中,展開 Editor 部分,然后點擊 Inspections
    3. 點擊相應的復選框以選中或取消選中適合項目的 lint 檢查。
    4. 點擊 Apply 或 OK 以保存所做的更改。
  • 在實際設備上調試:在模擬器上調試使用的內存比在實際設備上調試使用的內存更多,因此您可以通過在實際設備上調試來提升 Android Studio 的總體性能。

  • 僅將必要的 Google Play 服務作為依賴項包含在內:將 Google Play 服務作為依賴項包含在項目中會增加所需的內存量。僅添加必要的依賴項以提高內存利用率和性能。如需了解詳情,請參閱將 Google Play 服務添加到您的項目中

  • 開啟 Gradle 的離線模式:如果您的帶寬有限,請開啟離線模式,以防 Gradle 在您編譯期間嘗試下載缺失的依賴項。離線模式開啟時,Gradle 會在您缺少任何依賴項時發出編譯故障,而不會嘗試下載它們。要開啟離線模式,請執行以下操作:

    1. 依次點擊 File > Settings(在 macOS 上,依次點擊 Android Studio > Preferences)以打開 Settings 對話框。
    2. 在左側窗格中,展開 Build, Execution, Deployment,然后點擊 Gradle
    3. 在 Global Gradle 設置下,選中 Offline work 復選框。
    4. 點擊 ApplyOK 以保存所做的更改。
  • 減少可用于 Gradle 的最大堆大小:Gradle 的默認最大堆大小為 1536 MB。您可以通過替換 gradle.properties 文件中的 org.gradle.jvmargs 屬性來減小此值,如下所示:

    # Make sure to gradually decrease this value and note
        # changes in performance. Allocating too lttle memory may
        # also decrease performance.
        org.gradle.jvmargs = -Xmx1536m
        
  • 不要啟用并行編譯:Android Studio 可以并行編譯獨立模塊,但如果您使用的是低內存系統,則不應啟用此功能。要檢查此設置,請執行以下操作:

    1. 依次點擊 File > Settings(在 macOS 上,依次點擊 Android Studio > Preferences)以打開 Settings 對話框。
    2. 在左側窗格中,展開 Build, Execution, Deployment,然后點擊 Compiler
    3. 確保 Compile independent modules in parallel 選項未選中。
    4. 如果您進行了更改,請點擊 ApplyOK 以使更改生效。

設置 JDK 版本

Android Studio 2.2 及更高版本捆綁提供了最新版本的 OpenJDK,這是我們建議用于 Android 項目的 JDK 版本。要使用捆綁的 JDK,請執行以下操作:

  1. 在 Android Studio 中打開您的項目,然后在菜單欄中依次選擇 File > Project Structure
  2. SDK Location 頁面中的 JDK location 下方,選中 Use embedded JDK 復選框。
  3. 點擊 OK

默認情況下,用于編譯項目的 Java 語言版本基于項目的 compileSdkVersion(因為不同版本的 Android 支持不同版本的 Java)。如有必要,您可以通過將以下 CompileOptions {}代碼塊添加到 build.gradle 文件來替換此默認 Java 版本:

android {
        compileOptions {
            sourceCompatibility JavaVersion.VERSION\_1\_6
            targetCompatibility JavaVersion.VERSION\_1\_6
        }
    }
    

要詳細了解 compileSdkVersion 在何處定義,請參閱模塊級編譯文件

設置代理設置

代理作為 HTTP 客戶端和網絡服務器之間的中間連接點,可提高互聯網連接的安全性和隱私性。

要支持在防火墻后面運行 Android Studio,請為 Android Studio IDE 設置代理設置。使用 Android Studio IDE HTTP 代理設置頁面可為 Android Studio 設置 HTTP 代理設置。

若從命令行或在未安裝 Android Studio 的計算機(例如持續集成服務器)上運行 Android Plugin for Gradle,請在 Gradle 編譯文件中設置代理設置。

設置 Android Studio 代理

Android Studio 支持 HTTP 代理設置,因此您可以在防火墻后面或使用安全網絡運行 Android Studio。要在 Android Studio 中設置 HTTP 代理設置,請執行以下操作:

  1. 在菜單欄中,依次點擊 File > Settings(在 macOS 上,依次點擊 Android Studio > Preferences)。
  2. 在左側窗格中,依次點擊 Appearance & Behavior > System Settings > HTTP Proxy。此時將顯示 HTTP Proxy 頁面。
  3. 選擇 Auto-detect proxy settings 以使用自動代理配置網址來配置代理設置,或選擇 Manual proxy configuration 以自行輸入每一項設置。有關這些設置的詳細說明,請參閱 HTTP 代理
  4. 點擊 ApplyOK 以保存所做的更改。

Android Plugin for Gradle HTTP 代理設置

若從命令行或在未安裝 Android Studio 的計算機上運行 Android 插件,則應在 Gradle 編譯文件中設置 Android Plugin for Gradle 代理設置。

對于特定于應用的 HTTP 代理設置,請根據各應用模塊的要求在 build.gradle 文件中設置代理設置。

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 代理設置,請在 gradle/gradle.properties 文件中設置代理設置。

# 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

    ...
    

如需了解如何使用 Gradle 屬性進行代理設置,請參閱 Gradle 用戶指南

在 Windows 上優化 Android Studio 性能

Windows 上的 Android Studio 性能可能會受多種因素的影響。本節將介紹如何優化 Android Studio 設置以在 Windows 上獲得最佳性能。

最大限度地降低防病毒軟件對編譯速度的影響

某些防病毒軟件會干擾 Android Studio 編譯流程,從而導致編譯版本運行速度明顯變慢。當您在 Android Studio 中運行編譯版本時,Gradle 會編譯應用的資源和源代碼,然后將編譯后的資源打包在一個 APK 中。在此流程中,系統會在計算機上創建多個文件。如果您的防病毒軟件啟用了實時掃描功能,那么在每次創建一個文件后,防病毒軟件都會掃描該文件,并強制要求暫停編譯流程。

要避免此問題,您可以在防病毒軟件中排除對某些目錄的實時掃描。

以下列表顯示了您應從實時掃描中排除的每個 Android Studio 目錄的默認位置:

Gradle 緩存
%USERPROFILE%\.gradle
Android Studio 項目
%USERPROFILE%\AndroidStudioProjects
Android SDK
%USERPROFILE%\AppData\Local\Android\SDK
Android Studio 系統文件
%USERPROFILE%\.AndroidStudio<version>\system

為組策略受控環境自定義目錄位置

如果組策略會限制您可以從計算機中排除實時掃描的目錄,您可以將 Android Studio 目錄移至集中式組策略已排除的某個位置。

以下列表顯示了如何自定義每個 Android Studio 目錄的位置,其中 C:\WorkFolder 是您的組策略已排除的目錄:

Gradle 緩存
GRADLE_USER_HOME 環境變量定義為指向C:\WorkFolder\.gradle
Android Studio 項目
將項目目錄移到 C:\WorkFolder 的相應子目錄中或在其中創建項目目錄。例如:C:\WorkFolder\AndroidStudioProjects
Android SDK

請按以下步驟操作:

  1. 在 Android Studio 中,打開 Settings 對話框(在 macOS 上,打開 Preferences),然后依次轉到 Appearance & Behavior > System Settings > Android SDK

  2. Android SDK Location 的值更改為 C:\WorkFolder\AndroidSDK

    為避免再次下載該 SDK,請確保將默認位于 %USERPROFILE%\AppData\Local\Android\SDK 下的現有 SDK 目錄復制到新位置。

Android Studio 系統文件

請按以下步驟操作:

  1. 在 Android Studio 中,依次點擊 Help > Edit Custom Properties

    Android Studio 會提示您創建一個 idea.properties 文件(如果尚未創建)。

  2. 將以下行添加到 idea.properties 文件中:

        idea.system.path=c:/workfolder/studio/caches/trunk-system
        

配置離線編譯依賴項

如果您想在沒有網絡連接的情況下編譯項目,請按照以下步驟配置 Android Studio,以使用 Android Gradle 插件和 Google Maven 依賴項的離線版本。

如果您尚未下載的話,請從下載頁面下載離線組件

下載并解壓縮離線組件

下載離線組件后,將其內容解壓縮到以下目錄中,如果該目錄尚不存在,您可能需要創建該目錄:

  • 在 Windows 上:%USER_HOME%/.android/manual-offline-m2/
  • 在 macOS 和 Linux 上:~/.android/manual-offline-m2/

要更新離線組件,請按以下步驟操作:

  1. 刪除 manual-offline-m2/ 目錄中的內容。
  2. 重新下載離線組件
  3. 將所下載的 ZIP 文件的內容解壓縮到 manual-offline-m2/ 目錄中。

在 Gradle 項目中添加離線組件

要告知 Android 編譯系統使用您已下載并解壓縮的離線組件,您需要創建一個腳本(如下所述)。請注意,即使在更新離線組件之后,您也只需創建并保存此腳本一次。

  1. 使用以下路徑和文件名創建一個空文本文件:
    • 在 Windows 上:%USER_HOME%/.gradle/init.d/offline.gradle
    • 在 macOS 和 Linux 上:~/.gradle/init.d/offline.gradle
  2. 打開該文本文件并添加以下腳本:

    def reposDir = new File(System.properties['user.home'], ".android/manual-offline-m2")
        def repos = new ArrayList()
        reposDir.eachDir {repos.add(it) }
        repos.sort()
    
        allprojects {
          buildscript {
            repositories {
              for (repo in repos) {
                maven {
                  name = "injected_offline_${repo.name}"
                  url = repo.toURI().toURL()
                }
              }
            }
          }
          repositories {
            for (repo in repos) {
              maven {
                name = "injected_offline_${repo.name}"
                url = repo.toURI().toURL()
              }
            }
          }
        }
        
  3. 保存該文本文件。

  4. (可選)如果您想要驗證離線組件是否運行正常,請從項目的 build.gradle 文件中移除在線代碼庫(如下所示)。在確認項目不使用這些代碼庫也能正確編譯之后,您可以將它們放回到 build.gradle 文件中。

    buildscript {
            repositories {
                // Hide these repositories to test your build against
                // the offline components. You can include them again after
                // you've confirmed that your project builds ‘offline’.
                // google()
                // jcenter()
            }
            ...
        }
        allprojects {
            repositories {
                // google()
                // jcenter()
            }
            ...
        }