配置 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 文件或打开现有文件,请执行以下步骤:

  • 点击 Help > Edit Custom VM Options。如果您之前从未编辑过适用于 Android Studio 的 VM 选项,IDE 将提示您新建一个
    studio.vmoptions
    文件。点击 Yes 创建文件。
  • 此时 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 选项中增加最大堆内存来提高性能。如果系统的内存有限,您可能希望降低最大堆内存。

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

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

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

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

导出和导入 IDE 设置

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

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

自定义 IDE 属性

通过 idea.properties 文件,您可以自定义 Android Studio 的 IDE 属性,如用户安装插件的路径以及 IDE 支持的最大文件大小。idea.properties 文件与 IDE 的默认属性合并,以便您可以仅指定替换属性。

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

  • 点击 Help > Edit Custom Properties。如果您之前从未编辑过 IDE 属性,Android Studio 将提示您新建一个 idea.properties 文件。点击 Yes 创建文件。
  • 此时 idea.properties 文件将在 Android Studio 的编辑器窗口中打开。编辑文件以添加您自己的自定义 IDE 属性。
    以下 idea.properties 文件包括通常自定义的 IDE 属性。如需获得属性的完整列表,请参阅 IntelliJ IDEA 的 idea.properties 文件
  1. #---------------------------------------------------------------------
  2. # Uncomment this option if you want to customize path to user installed plugins folder. Make sure
  3. # you're using forward slashes.
  4. #---------------------------------------------------------------------
  5. # idea.plugins.path=${idea.config.path}/plugins
  6. #---------------------------------------------------------------------
  7. # Maximum file size (kilobytes) IDE should provide code assistance for.
  8. # The larger file is the slower its editor works and higher overall system memory requirements are
  9. # if code assistance is enabled. Remove this property or set to very large number if you need
  10. # code assistance for any files available regardless their size.
  11. #---------------------------------------------------------------------
  12. idea.max.intellisense.filesize=2500
  13. #---------------------------------------------------------------------
  14. # This option controls console cyclic buffer: keeps the console output size not higher than the
  15. # specified buffer size (Kb). Older lines are deleted. In order to disable cycle buffer use
  16. # idea.cycle.buffer.size=disabled
  17. #---------------------------------------------------------------------
  18. idea.cycle.buffer.size=1024
  19. #---------------------------------------------------------------------
  20. # Configure if a special launcher should be used when running processes from within IDE.
  21. # Using Launcher enables "soft exit" and "thread dump" features
  22. #---------------------------------------------------------------------
  23. idea.no.launcher=false
  24. #---------------------------------------------------------------------
  25. # To avoid too long classpath
  26. #---------------------------------------------------------------------
  27. idea.dynamic.classpath=false
  28. #---------------------------------------------------------------------
  29. # There are two possible values of idea.popup.weight property: "heavy" and "medium".
  30. # If you have WM configured as "Focus follows mouse with Auto Raise" then you have to
  31. # set this property to "medium". It prevents problems with popup menus on some
  32. # configurations.
  33. #---------------------------------------------------------------------
  34. idea.popup.weight=heavy
  35. #---------------------------------------------------------------------
  36. # Use default anti-aliasing in system, i.e. override value of
  37. # "Settings|Editor|Appearance|Use anti-aliased font" option. May be useful when using Windows
  38. # Remote Desktop Connection for instance.
  39. #---------------------------------------------------------------------
  40. idea.use.default.antialiasing.in.editor=false
  41. #---------------------------------------------------------------------
  42. # Disabling this property may lead to visual glitches like blinking and fail to repaint
  43. # on certain display adapter cards.
  44. #---------------------------------------------------------------------
  45. sun.java2d.noddraw=true
  46. #---------------------------------------------------------------------
  47. # Removing this property may lead to editor performance degradation under Windows.
  48. #---------------------------------------------------------------------
  49. sun.java2d.d3d=false
  50. #---------------------------------------------------------------------
  51. # Workaround for slow scrolling in JDK6
  52. #---------------------------------------------------------------------
  53. swing.bufferPerWindow=false
  54. #---------------------------------------------------------------------
  55. # Removing this property may lead to editor performance degradation under X Window.
  56. #---------------------------------------------------------------------
  57. sun.java2d.pmoffscreen=false
  58. #---------------------------------------------------------------------
  59. # Workaround to avoid long hangs while accessing clipboard under Mac OS X.
  60. #---------------------------------------------------------------------
  61. # ide.mac.useNativeClipboard=True
  62. #---------------------------------------------------------------------
  63. # Maximum size (kilobytes) IDEA will load for showing past file contents -
  64. # in Show Diff or when calculating Digest Diff
  65. #---------------------------------------------------------------------
  66. # idea.max.vcs.loaded.size.kb=20480
  67.  

针对低内存机器配置 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 检查,请继续执行以下操作:
    • 点击 File > Settings(在 Mac 中,点击 Android Studio > Preferences)以打开 Settings 对话框。
    • 在左侧窗格中,展开 Editor 部分并点击 Inspections
    • 点击复选框以选择或取消选择项目适用的 lint 检查。
    • 点击 ApplyOK 以保存所做的更改。
  • 在物理设备上调试:在模拟器上调试使用的内存比在物理设备上调试使用的内存更多,因此您可以通过在物理设备上调试来提高 Android Studio 的总体性能。
  • 仅将必要的 Google Play 服务作为依赖项包括在内:将 Google Play 服务作为依赖项包括在项目中可提高必要的内存量。仅包括必要的依赖项以提高内存利用率和性能。如需了解详细信息,请参阅将 Google Play 服务添加到您的项目
  • 打开 Gradle 的离线模式:如果您的带宽有限,请打开离线模式,以防 Gradle 在您构建期间尝试下载丢失的依赖项。离线模式打开时,Gradle 会在丢失任何依赖项时发布构建故障,而不会尝试下载它们。要打开离线模式,请继续执行以下操作:
    • 点击 File > Settings(在 Mac 中,点击 Android Studio > Preferences)以打开 Settings 对话框。
    • 在左侧窗格中,展开 Build, Execution, Deployment,然后点击 Gradle
    • 在 Global Gradle 设置下,选中 Offline work 复选框。
    • 点击 ApplyOK 以使更改生效。
  • 不要启用并行编译:Android Studio 可以并行编译独立模块,但如果您具有低内存系统,则不应启用此功能。要选中此设置,请继续执行以下操作:
    • 点击 File > Settings(在 Mac 中,点击 Android Studio > Preferences)以打开 Settings 对话框。
    • 在左侧窗格中,展开 Build, Execution, Deployment,然后点击 Compiler
    • 确保 Compile independent modules in parallel 选项未选中。
    • 如果您进行了更改,请点击 ApplyOK 以使更改生效。

针对 Instant Run 配置您的项目

Instant Run 是 Run配置 Android Studio - Configure the IDE - 图2Debug配置 Android Studio - Configure the IDE - 图3 命令的行为,可以大幅缩短应用更新的间隔时间。尽管首次构建可能需要花费较长的时间,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,请继续执行以下操作:

  • 在 Android Studio 中打开您的项目,然后在菜单栏中选择 File > Project Structure
  • SDK Location 页面中的 JDK location 下方,选中 Use embedded JDK 复选框。
  • 点击 OK
    默认情况下,用于编译项目的 Java 语言版本基于项目的 compileSdkVersion (因为不同 Android 版本支持不同版本的 Java)。如有必要,您可以通过将以下 CompileOptions {} 代码块添加到 build.gradle 文件来替换此默认 Java 版本:
  1. android {
  2. compileOptions {
  3. sourceCompatibility JavaVersion.VERSION_1_6
  4. targetCompatibility JavaVersion.VERSION_1_6
  5. }
  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 代理,请执行以下操作:

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

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

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

对于应用程序特定的 HTTP 代理设置,请根据各应用程序模块的要求在 build.gradle 文件中设置代理设置。

  1. apply plugin: 'com.android.application'
  2.  
  3. android {
  4. ...
  5.  
  6. defaultConfig {
  7. ...
  8. systemProp.http.proxyHost=proxy.company.com
  9. systemProp.http.proxyPort=443
  10. systemProp.http.proxyUser=userid
  11. systemProp.http.proxyPassword=password
  12. systemProp.http.auth.ntlm.domain=domain
  13. }
  14. ...
  15. }

对于整个项目的 HTTP 代理设置,请在 gradle/gradle.properties 文件中设置代理设置。

  1. # Project-wide Gradle settings.
  2. ...
  3.  
  4. systemProp.http.proxyHost=proxy.company.com
  5. systemProp.http.proxyPort=443
  6. systemProp.http.proxyUser=username
  7. systemProp.http.proxyPassword=password
  8. systemProp.http.auth.ntlm.domain=domain
  9.  
  10. systemProp.https.proxyHost=proxy.company.com
  11. systemProp.https.proxyPort=443
  12. systemProp.https.proxyUser=username
  13. systemProp.https.proxyPassword=password
  14. systemProp.https.auth.ntlm.domain=domain
  15.  
  16. ...

有关使用 Gradle 属性进行代理设置的信息,请参阅 Gradle 用户指南

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