配置 Android Studio

Android Studio 提供了向导和模板,可验证您的系统要求(例如 Java 开发工具包 (JDK) 和可用 RAM),并配置默认设置(例如优化的默认 Android 虚拟设备 (AVD) 模拟和更新的系统映像)。本文档介绍了可自定义 Android Studio 用法的其他配置设置。

Android Studio 通过帮助菜单提供对两个配置文件的访问权限:

  • studio.vmoptions:自定义 Android Studio 的 Java 虚拟机 (JVM) 选项,例如堆大小和缓存大小。请注意,在 Linux 机器上,此文件可能名为 studio64.vmoptions,具体取决于您的 Android Studio 版本。
  • idea.properties:自定义 Android Studio 属性,例如插件文件夹路径或支持的最大文件大小。

有关模拟器和设备设置及使用的具体文档,请参阅以下主题:

查找您的配置文件

这两个配置文件都存储在 Android Studio 的配置目录中。如需查找配置目录,请参阅目录

您可以使用以下环境变量指向其他位置的特定覆盖文件:

  • STUDIO_VM_OPTIONS:设置 .vmoptions 文件的名称和位置。
  • STUDIO_PROPERTIES:设置 .properties 文件的名称和位置。

您可以访问Android 构建中的 Java 版本来配置要使用的 JDK。

自定义您的 VM 选项

studio.vmoptions 文件允许您自定义 Android Studio 的 Java 虚拟机 (JVM) 选项。为提高 Android Studio 的性能,最常见的调整选项是最大堆大小,但您也可以使用 studio.vmoptions 文件来覆盖其他默认设置,例如初始堆大小、缓存大小和 Java 垃圾回收开关。

要创建新的 studio.vmoptions 文件或打开现有文件,请按以下步骤操作:

  1. 依次点击 Help > Edit Custom VM Options(帮助 > 编辑自定义 VM 选项)。如果您之前从未编辑过 Android Studio 的 VM 选项,IDE 会提示您创建新的 studio.vmoptions 文件。点击 Create(创建)以创建文件。
  2. studio.vmoptions 文件会在 Android Studio 的编辑器窗口中打开。编辑该文件以添加您自定义的 VM 选项。如需查看可自定义的 JVM 选项的完整列表,请参阅 Oracle 的Java HotSpot VM Options 页面

您创建的 studio.vmoptions 文件会添加到默认的 studio.vmoptions 文件中,该文件位于 Android Studio 安装文件夹内的 bin/ 目录中。

请勿直接修改 Android Studio 程序文件夹中的 studio.vmoptions 文件。虽然您可以访问该文件以查看 Android Studio 的默认 VM 选项,但仅修改您自己的 studio.vmoptions 文件可确保您不会覆盖 Android Studio 的重要默认设置。因此,在您的 studio.vmoptions 文件中,只覆盖您关心的属性,对于未更改的任何属性,让 Android Studio 继续使用默认值。

最大堆大小

默认情况下,Android Studio 的最大堆大小为 1280MB。如果您正在处理大型项目,或者您的系统有大量 RAM,则可以通过增加 Android Studio 进程(例如核心 IDE、Gradle 守护程序和 Kotlin 守护程序)的最大堆大小来提高性能。

Android Studio 会自动检查可能的堆大小优化,并在检测到性能可以提高时通知您。

The memory settings, which let you configure maximum amount of RAM
          for Android Studio processes.

图 1. 有关建议内存设置的通知。

如果您使用的是至少有 5 GB RAM 的 64 位系统,您还可以手动调整项目的堆大小。为此,请按照以下步骤操作:

  1. 在菜单栏中依次点击 File > Settings(文件 > 设置)(在 macOS 上,依次点击 Android Studio > Preferences)。
  2. 依次点击 Appearance & Behavior > System Settings > Memory Settings(外观和行为 > 系统设置 > 内存设置)。

    The memory settings, which let you configure maximum amount of RAM
   for Android Studio processes.

    图 2. 在“内存设置”中配置最大 RAM 量。

  3. 调整堆大小。

  4. 点击 Apply(应用)。

    如果您更改了 IDE 的堆大小,则必须重启 Android Studio 才能应用新的内存设置。

导出和导入 IDE 设置

您可以导出 Settings.jar 文件,其中包含项目的所有或部分首选 IDE 设置。然后,您可以将 JAR 文件导入到您的其他项目和/或将 JAR 文件提供给您的同事,以便他们导入到自己的项目中。

如需了解详情,请参阅 IntelliJ IDEA 中的共享 IDE 设置

自定义您的 IDE 属性

idea.properties 文件允许您自定义 Android Studio 的 IDE 属性,例如用户安装的插件路径和 IDE 支持的最大文件大小。idea.properties 文件会与 IDE 的默认属性合并,因此您只能指定要覆盖的属性。

要创建新的 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 the 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

为低内存机器配置 IDE

如果您的机器运行 Android Studio 的内存低于建议规格(请参阅系统要求),您可以按以下方式自定义 IDE 以提高机器性能:

  • 减小 Android Studio 的最大堆大小:将 Android Studio 的最大堆大小减小到 512MB。如需详细了解如何更改最大堆大小,请参阅最大堆大小
  • 更新 Gradle 和 Android Gradle 插件:更新到最新版本的 Gradle 和 Android Gradle 插件,以利用最新的性能改进。如需详细了解如何更新 Gradle 和 Android Gradle 插件,请参阅 Android 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.properties 文件中覆盖 org.gradle.jvmargs 属性,将 Gradle 的最大堆大小从默认的 1536 MB 减小,如下所示:

    # Make sure to gradually decrease this value and note
    # changes in performance. Allocating too little memory can
    # 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. 如果您已进行更改,请点击 Apply(应用)或 OK(确定)以使更改生效。

设置代理设置

代理充当 HTTP 客户端和 Web 服务器之间的中间连接点,为互联网连接增加安全性和隐私性。

为支持在防火墙后运行 Android Studio,请使用 Android Studio IDE HTTP 代理设置页面来设置 HTTP 代理。

当从命令行运行 Android Gradle 插件或在未安装 Android Studio 的机器上(例如持续集成服务器)运行时,请在 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 代理)。HTTP 代理页面随即显示。
  3. 选择 Auto-detect proxy settings(自动检测代理设置)以使用代理设置的自动代理配置网址,或者选择 Manual proxy configuration(手动代理配置)以自行输入每个设置。如需详细了解这些设置,请参阅HTTP 代理
  4. 点击 Apply(应用)或 OK(确定)以使更改生效。

Gradle HTTP 代理设置的 Android 插件

当从命令行运行 Android 插件或在未安装 Android Studio 的机器上运行时,请在 Gradle 构建文件中设置 Android Gradle 插件代理。

对于应用特定的 HTTP 代理设置,请在 build.gradle 文件中为每个应用模块按需设置代理设置:

plugins {
  id '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 性能

Android Studio 在 Windows 上的性能可能受到多种因素的影响。本部分介绍如何优化 Android Studio 设置以在 Windows 上获得最佳性能。

最大限度地减少防病毒软件对构建速度的影响

某些防病毒软件可能会干扰 Android Studio 的构建过程,导致构建速度明显变慢。当您在 Android Studio 中运行构建时,Gradle 会编译您应用的资源和源代码,然后将编译后的资源打包到 APK 或 AAB 中。在此过程中,您的计算机上会创建许多文件。如果您的防病毒软件启用了实时扫描,则防病毒软件可能会在每次创建文件时强制构建过程暂停以扫描该文件。

为了避免此问题,您可以在防病毒软件中将某些目录从实时扫描中排除。对于 Windows,构建分析器可以帮助您识别应从主动扫描中排除的目录并将其排除。

以下列表显示了您可以从实时扫描中排除的每个 Android Studio 目录的默认位置:

Gradle 缓存
%USERPROFILE%\.gradle
Android Studio 项目
%USERPROFILE%\AndroidStudioProjects
Android SDK
%USERPROFILE%\AppData\Local\Android\SDK

Android Studio 系统文件

语法:%LOCALAPPDATA%\Google\<product><version>

示例:C:\Users\YourUserName\AppData\Local\Google\AndroidStudio4.1

为受组策略控制的环境自定义目录位置

如果组策略限制了您可以在计算机上排除实时扫描的目录,您可以将 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(外观和行为 > 系统设置 > Android SDK)。

  2. Android SDK Location(Android SDK 位置)的值更改为 C:\WorkFolder\AndroidSDK

    为避免再次下载 SDK,请将默认位于 %USERPROFILE%\AppData\Local\Android\SDK 的现有 SDK 目录复制到新位置。

Android Studio 系统文件

请按照以下步骤自定义位置:

  1. 在 Android Studio 中,依次点击 Help > Edit Custom Properties(帮助 > 编辑自定义属性)。

    如果您还没有 idea.properties 文件,Android Studio 会提示您创建一个。

  2. 将以下行添加到您的 idea.properties 文件中:

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