Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.

配置 Android Studio

Android Studio 提供诸多向导和模板,可用于验证系统要求(例如 Java 开发工具包 (JDK) 和可用内存)和配置默认设置(例如优化的默认 Android Virtual Device (AVD) 模拟和更新的系统映像)。本文件介绍了您可能想要使用的其他配置设置,以便您自定义对 Android Studio 的使用方式。

Android Studio 通过 Help 菜单提供对两个配置文件的访问:

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

有关模拟器和设备设置与使用的特定文档,请参阅管理虚拟设备使用硬件设备OEM USB 驱动程序

查找配置文件

两个配置文件都存储在 Android Studio 的配置文件夹中。文件夹名称取决于 Studio 版本。例如,Android Studio 2.2 的文件夹名称为 AndroidStudio2.2。此文件夹的位置取决于您的操作系统:

  • Windows:%USERPROFILE%\.<CONFIGURATION_FOLDER>/
  • Mac:~/Library/Preferences/<CONFIGURATION_FOLDER>/
  • Linux:~/.<CONFIGURATION_FOLDER>/

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

  • STUDIO_VM_OPTIONS:设置 .vmoptions 文件的名称和位置
  • STUDIO_PROPERTIES:设置 .properties 文件的名称和位置
  • STUDIO_JDK:设置运行 Studio 所使用的 JDK

自定义 VM 选项

通过 studio.vmoptions 文件,您可以自定义适用于 Android Studio 的 JVM 的选项。为了提高 Studio 的性能,最常用的调节选项是最大堆内存,但您也可以使用 studio.vmoptions 文件替换其他默认设置,如初始堆内存、缓存大小和 Java 垃圾回收开关。

要新建 studio.vmoptions 文件或打开现有文件,请执行以下步骤:

  1. 点击 Help > Edit Custom VM Options。如果您之前从未编辑过适用于 Android Studio 的 VM 选项,IDE 将提示您新建一个 studio.vmoptions 文件。点击 Yes 创建文件。
  2. 此时 studio.vmoptions 文件将在 Android Studio 的编辑器窗口中打开。编辑文件以添加您自己的自定义 VM 选项。如需可自定义 JVM 选项的完整列表,请参阅 Oracle 的 Java HotSpot VM 选项页

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

请注意,切勿直接编辑 Android Studio 程序文件夹内的 studio.vmoptions 文件。尽管您可以访问该文件来查看 Studio 的默认 VM 选项,但仅编辑自己的 studio.vmoptions 文件可确保您不会替换 Android Studio 的重要默认设置。因此,在您的 studio.vmoptions 文件中,请仅替换您关注的属性,使 Android Studio 可以继续使用未更改的任何属性的默认值。

最大堆内存

默认情况下,Android Studio 的最大堆内存为 1280MB。如果您要处理大项目,或者您的系统有大量 RAM 可用,您可以通过在 Android Studio 的 VM 选项中增加最大堆内存来提高性能。如果系统的内存有限,您可能希望降低最大堆内存。

要更改最大堆内存,请执行以下步骤:

  1. 点击 Help > Edit Custom VM Options 以打开您的 studio.vmoptions 文件。
  2. studio.vmoptions 文件添加一个行,使用语法 -XmxheapSize 设置最大堆内存。您选择的大小应该基于项目大小以及机器上的可用 RAM。作为基准,如果您有 4GB 以上的 RAM 和中等大小的项目,则应该将最大堆内存设置为 2GB 或更高。以下行可将最大堆内存设置为 2GB:
    -Xmx2g
  3. 保存对 studio.vmoptions 文件所做的更改,然后重新启动 Android Studio 以使更改生效。
  4. 要确认新的最大堆内存,请打开命令行,然后键入以下命令:
    jps -lvm

    您将看到机器上正在运行的工具 JVM 的列表,包括每台 JVM 的完整包名称和传入的参数。找到与您的 Android Studio 实例对应的项。该项应该以 -Didea.paths.selector=AndroidStudio[Version] 结尾。对于此 JVM,您应该看到两个以 -Xmx 开头的参数:一个采用默认值 1280mb,另一个采用新值,如图 1 所示。

    图 1. 显示 Android Studio JVM 当前参数的终端输出。

    1. -Xmx 参数显示默认最大堆内存,在本例中为 1280m。
    2. -Didea.paths.selector 显示目前正在运行的 Android Studio 版本。
    3. -Xmx 参数显示新的自定义最大堆内存。请注意,该参数后跟您之前创建的自定义 studio.vmoptions 文件的位置。

导出和导入 IDE 设置

您可以导出一个设置 JAR 文件 (Settings.jar),其中包含项目的所有或部分首选 IDE 设置。然后,您可以将 JAR 文件导入其他项目和/或使 JAR 文件可供您的同事导入至其项目。

如需了解详细信息,请参阅 IntelliJ IDEA 中的导出和导入设置

自定义 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 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 和适用于 Gradle 的 Android 插件:更新至最新版本的 Gradle 和适用于 Gradle 的 Android 插件,确保您能利用最新的性能改进。如需了解有关更新 Gradle 和适用于 Gradle 的 Android 插件的详细信息,请参阅适用于 Gradle 的 Android 插件版本说明
  • 启用节能模式:启用节能模式会关闭一系列消耗大量内存和电池的后台操作,包括错误突出显示和动态检查、自动弹出式代码完成和自动增量式后台编译。要打开节能模式,请点击 File > Power Save Mode
  • 停用不必要的 lint 检查:要更改 Android Studio 在您的代码上运行的 lint 检查,请继续执行以下操作:
    1. 点击 File > Settings(在 Mac 中,点击 Android Studio > Preferences)以打开 Settings 对话框。
    2. 在左侧窗格中,展开 Editor 部分并点击 Inspections
    3. 点击复选框以选择或取消选择项目适用的 lint 检查。
    4. 点击 ApplyOK 以保存所做的更改。
  • 在物理设备上调试:在模拟器上调试使用的内存比在物理设备上调试使用的内存更多,因此您可以通过在物理设备上调试来提高 Android Studio 的总体性能。
  • 仅将必要的 Google Play 服务作为依赖项包括在内:将 Google Play 服务作为依赖项包括在项目中可提高必要的内存量。仅包括必要的依赖项以提高内存利用率和性能。如需了解详细信息,请参阅将 Google Play 服务添加到您的项目
  • 打开 Gradle 的离线模式:如果您的带宽有限,请打开离线模式,以防 Gradle 在您构建期间尝试下载丢失的依赖项。离线模式打开时,Gradle 会在丢失任何依赖项时发布构建故障,而不会尝试下载它们。要打开离线模式,请继续执行以下操作:
    1. 点击 File > Settings(在 Mac 中,点击 Android Studio > Preferences)以打开 Settings 对话框。
    2. 在左侧窗格中,展开 Build, Execution, Deployment,然后点击 Gradle
    3. 在 Global Gradle 设置下,选中 Offline work 复选框。
    4. 点击 ApplyOK 以使更改生效。
  • 不要启用并行编译:Android Studio 可以并行编译独立模块,但如果您具有低内存系统,则不应启用此功能。要选中此设置,请继续执行以下操作:
    1. 点击 File > Settings(在 Mac 中,点击 Android Studio > Preferences)以打开 Settings 对话框。
    2. 在左侧窗格中,展开 Build, Execution, Deployment,然后点击 Compiler
    3. 确保 Compile independent modules in parallel 选项未选中。
    4. 如果您进行了更改,请点击 ApplyOK 以使更改生效。

针对 Instant Run 配置您的项目

Instant Run 是 Run Debug 命令的行为,可以大幅缩短应用更新的间隔时间。尽管首次构建可能需要花费较长的时间,Instant Run 在向应用推送后续更新时则无需构建新的 APK,因此,这样可以更快地看到更改。

默认情况下,Android Studio 会为使用适用于 Gradle 的 Android 插件 2.0.0 及更高版本构建的项目启用 Instant Run。您可以通过修改项目的一些设置提高使用 Instant Run 的构建性能。有关针对 Instant Run 配置项目的详细信息,请参阅针对 Instant Run 配置和优化您的项目

设置 JDK 版本

最新 OpenJDK 的副本与 Android Studio 2.2 和更高版本捆绑提供,这是我们建议用于 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 客户端和 Web 服务器之间的中间连接点,可提高互联网连接的安全性和隐私性。

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

若从命令行或在未安装 Android Studio 的机器(例如持续性集成服务器)上运行适用于 Gradle 的 Android 插件,则应在 Gradle 构建文件中设置代理设置。

:在初始安装 Android Studio 程序包后,可以通过互联网访问或脱机运行 Android Studio。但是,Android Studio 设置向导同步、第三方库访问、访问远程存储库、Gradle 初始化和同步以及 Android Studio 版本更新需要互联网连接。

设置 Android Studio 代理

Android Studio 支持 HTTP 代理设置,因此您可以在防火墙后面或使用安全网络运行 Android Studio。要在 Android Studio 中设置 HTTP 代理,请执行以下操作:

  1. 从菜单栏中点击 File > Settings(在 Mac 中,点击 Android Studio > Preferences)。
  2. 在左侧窗格中,点击 Appearance & Behavior > System Settings > HTTP Proxy。此时将出现 HTTP Proxy 页面。
  3. 选择 Auto-detect proxy settings 以使用自动代理配置 URL 来配置代理设置,或选择 Manual proxy configuration 以自行输入每一项设置。有关这些设置的详细说明,请参阅 HTTP 代理
  4. 点击 ApplyOK 以使更改生效。

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

若从命令行或在未安装 Android Studio 的机器上运行 Android 插件,则应在 Gradle 构建文件中设置适用于 Gradle 的 Android 插件代理设置。

对于应用程序特定的 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 用户指南

:在使用 Android Studio 时,Android Studio IDE HTTP 代理设置页面中的设置将重写 gradle.properties 文件中的 HTTP 代理设置。