配置 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 的 JVM 选项。为了提高 Android Studio 的性能,最常调整的选项是最大堆大小,但您也可以使用studio.vmoptions文件覆盖其他默认设置,例如初始堆大小、缓存大小和 Java 垃圾回收开关。

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

  1. 点击帮助 > 编辑自定义 VM 选项。如果您以前从未编辑过 Android Studio 的 VM 选项,IDE 会提示您创建一个新的studio.vmoptions文件。点击创建以创建文件。
  2. studio.vmoptions文件将在 Android Studio 的编辑器窗口中打开。编辑文件以添加您自定义的 VM 选项。有关可自定义 JVM 选项的完整列表,请参阅 Oracle 的Java HotSpot VM 选项页面

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

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

最大堆大小

默认情况下,Android Studio 的最大堆大小为 1280 MB。如果您正在处理大型项目,或者您的系统有大量 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. 从菜单栏中点击文件 > 设置(在 macOS 上,点击Android Studio > 首选项)。
  2. 点击外观 & 行为 > 系统设置 > 内存设置

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

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

  3. 调整堆大小。

  4. 点击应用

    如果您更改了 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. 点击帮助 > 编辑自定义属性。如果您以前从未编辑过 IDE 属性,Android Studio 会提示您创建一个新的idea.properties文件。点击以创建文件。
  2. idea.properties文件将在 Android Studio 的编辑器窗口中打开。编辑文件以添加您自定义的 IDE 属性。

以下idea.properties文件包含常用的自定义 IDE 属性。有关属性的完整列表,请阅读有关idea.properties用于 IntelliJ IDEA 的文件

#---------------------------------------------------------------------
# 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 插件发行说明
  • 启用省电模式:启用省电模式以关闭许多内存和电池密集型后台操作,包括错误突出显示和即时检查、自动弹出代码完成以及自动增量后台编译。要打开省电模式,请点击文件 > 省电模式
  • 禁用不必要的 lint 检查:要更改 Android Studio 对代码运行哪些 lint 检查,请执行以下操作

    1. 点击文件 > 设置(在 macOS 上,点击Android Studio > 首选项)以打开设置对话框。
    2. 在左侧窗格中,展开编辑器部分,然后点击检查
    3. 点击复选框以根据您的项目选择或取消选择 lint 检查。
    4. 点击应用确定以保存更改。
  • 在物理设备上调试:通过在物理设备上调试来提高 Android Studio 的整体性能。在模拟器上调试比在物理设备上调试使用更多的内存。

  • 仅包含必要的 Google Play 服务作为依赖项:仅在您的项目中包含必要的 Google Play 服务作为依赖项。依赖项会增加所需的内存量,因此限制它们可以提高内存使用率和性能。有关更多信息,请参阅为 Google Play 服务声明依赖项

  • 减少 Gradle 可用的最大堆大小:通过覆盖gradle.properties文件中的org.gradle.jvmargs属性,将其默认值 1,536 MB 减少到 Gradle 的最大堆大小,如所示

    # 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. 点击文件 > 设置(在 macOS 上,点击Android Studio > 首选项)以打开设置对话框。
    2. 在左侧窗格中,展开构建、执行、部署,然后点击编译器
    3. 确保并行编译独立模块选项未选中。
    4. 如果您进行了更改,请点击应用确定以使更改生效。

设置代理设置

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

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

当从命令行或在未安装 Android Studio 的机器(例如持续集成服务器)上运行 Android Gradle 插件时,请在 Gradle 构建文件中设置代理设置。

设置 Android Studio 代理

Android Studio 支持 HTTP 代理设置,因此您可以在防火墙或安全网络后面运行 Android Studio。要在 Android Studio 中设置 HTTP 代理设置

  1. 从菜单栏中,点击文件 > 设置(在 macOS 上,点击Android Studio > 首选项)。
  2. 在左侧窗格中,点击外观 & 行为 > 系统设置 > HTTP 代理。将出现 HTTP 代理页面。
  3. 选择自动检测代理设置以使用代理设置的自动代理配置 URL,或选择手动代理配置以自己输入每个设置。有关这些设置的详细说明,请参阅HTTP 代理
  4. 点击应用确定以使更改生效。

用于 Gradle HTTP 代理设置的 Android 插件

当从命令行或在未安装 Android Studio 的机器上运行 Android 插件时,请在 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 性能

Windows 上的 Android Studio 性能可能会受到各种因素的影响。本节介绍如何优化 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 中,打开“设置”对话框(在 macOS 上为“首选项”),然后导航到“外观与行为 > 系统设置 > Android SDK”。

  2. 将“Android SDK 位置”的值更改为 C:\WorkFolder\AndroidSDK

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

Android Studio 系统文件

按照以下步骤自定义位置

  1. 在 Android Studio 中,点击“帮助 > 编辑自定义属性”。

    如果尚未创建 idea.properties 文件,Android Studio 会提示您创建。

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

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