Android Studio 3.6(2020 年 2 月)

Android Studio 3.6 是一个主要版本,包含各种新功能和改进。

我们还要感谢所有帮助我们发布此版本的 社区贡献者

3.6.3(2020 年 4 月)

此小更新包含各种错误修复。要查看重要错误修复列表,请阅读 版本更新博客 上的相关文章。

3.6.2(2020 年 3 月)

此小更新包含各种错误修复。要查看重要错误修复列表,请阅读 版本更新博客 上的相关文章。

3.6.1(2020 年 2 月)

此小更新包含各种错误修复。要查看重要错误修复列表,请阅读 版本更新博客 上的相关文章。

设计工具

此版本的 Android Studio 包含对多个设计工具的更新,包括布局编辑器和资源管理器。

设计编辑器中的分屏视图和缩放

split view shows both the design and text views at the same time

此版本包含以下对可视化设计编辑器的更新

  • 布局编辑器和导航编辑器等设计编辑器现在提供分屏视图,使您可以同时查看 UI 的设计视图和代码视图。在编辑器窗口的右上角,现在有三个按钮 视图图标 用于在查看选项之间切换

    • 要启用分屏视图,请点击分屏图标 分屏视图图标
    • 要启用 XML 源代码视图,请点击源代码图标 源代码视图图标
    • 要启用设计视图,请点击设计图标 设计视图图标
  • 设计编辑器内缩放和平移的控件已移动到编辑器窗口右下角的浮动面板。

要了解更多信息,请参阅 使用布局编辑器构建 UI

颜色选择器资源选项卡

为了帮助您在 XML 或设计工具中使用颜色选择器时快速更新应用中的颜色资源值,IDE 现在会为您填充颜色资源值。

Color picker with populated color values

资源管理器

资源管理器包含以下更新

  • 资源管理器现在支持大多数资源类型。
  • 搜索资源时,资源管理器现在会显示所有项目模块的结果。以前,搜索仅返回所选模块的结果。
  • 使用过滤器按钮,您可以查看来自本地依赖模块、外部库和 Android 框架的资源。您还可以使用过滤器来显示主题属性。
  • 您现在可以通过点击资源上方的文本框来在导入过程中重命名资源。

要了解更多信息,请参阅 使用资源管理器管理应用的 UI 资源

对 Android Gradle 插件的更新

最新版本的 Android Gradle 插件包含许多更新,包括构建速度优化、对 Maven 发布插件的支持以及对视图绑定的支持。要了解更多信息,请阅读 完整发行说明

视图绑定

视图绑定 允许您通过为每个 XML 布局文件生成绑定类来更轻松地编写与视图交互的代码。这些类包含对在相应布局中具有 ID 的所有视图的直接引用。

因为它替换了 findViewById(),所以视图绑定消除了由于无效视图 ID 而导致的空指针异常的风险。

要启用视图绑定,您需要使用 Android Gradle 插件 3.6.0 或更高版本,并在每个模块的 build.gradle 文件中包含以下内容

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

应用更改

您现在可以添加一个类,然后通过点击应用代码更改应用更改并重新启动 Activity来将该代码更改部署到正在运行的应用中。

要了解这两个操作之间的区别,请参阅应用更改

重构菜单选项以启用 Instant Apps 支持

现在,您可以在创建应用项目后随时启用您的基础模块,方法如下:

  1. 从菜单栏中选择查看 > 工具窗口 > 项目打开项目面板。
  2. 右键单击您的基础模块(通常命名为“app”),然后选择重构 > 启用 Instant Apps 支持
  3. 在出现的对话框中,从下拉菜单中选择您的基础模块。
  4. 单击确定

注意:已移除从创建新项目向导中立即启用您的基础应用模块的选项。

要了解更多信息,请阅读Google Play Instant 概述

在 APK Analyzer 中反混淆类和方法字节码

使用APK Analyzer 检查 DEX 文件时,您可以按如下方式反混淆类和方法字节码:

  1. 从菜单栏中选择构建 > 分析 APK
  2. 在出现的对话框中,导航到要检查的 APK 并选择它。
  3. 单击打开
  4. 在 APK Analyzer 中,选择要检查的 DEX 文件。
  5. 在 DEX 文件查看器中,加载您正在分析的 APK 的 ProGuard 映射文件
  6. 右键单击要检查的类或方法,然后选择显示字节码

原生工具

以下更新支持 Android Studio 中的原生 (C/C++) 开发。

Kotlin 支持

Android Studio 中以前在 Java 中支持的以下 NDK 功能现在也支持 Kotlin:

  • 从 JNI 声明导航到相应的 C/C++ 实现函数。通过将鼠标悬停在托管源代码文件行号附近的 C 或 C++ 项目标记上查看此映射。

  • 自动为 JNI 声明创建存根实现函数。先定义 JNI 声明,然后在 C/C++ 文件中键入“jni”或方法名称以激活。

  • 未使用的原生实现函数在源代码中突出显示为警告。缺少实现的 JNI 声明也突出显示为错误。

  • 重命名(重构)原生实现函数时,所有相应的 JNI 声明都会更新。重命名 JNI 声明以更新原生实现函数。

  • 隐式绑定 JNI 实现的签名检查。

其他 JNI 改进

Android Studio 中的代码编辑器现在支持更无缝的 JNI 开发工作流程,包括改进的类型提示、自动完成、检查和代码重构。

原生库的 APK 重新加载 {:#3.6-reload-apk}

项目中的 APK 在 IDE 外部更新时,您不再需要创建新项目。Android Studio 会检测 APK 中的更改,并为您提供重新导入它的选项。

附加仅限 Kotlin 的 APK 源代码

现在,在分析和调试预构建的 APK 时,可以附加仅限 Kotlin 的外部 APK 源代码。要了解更多信息,请参阅附加 Kotlin/Java 源代码

内存分析器中的内存泄漏检测

在内存分析器中分析堆转储时,您现在可以过滤 Android Studio 认为可能指示应用中ActivityFragment 实例内存泄漏的分析数据。

过滤器显示的数据类型包括:

  • Activity 实例已被销毁,但仍在被引用。
  • Fragment 实例没有有效的FragmentManager,但仍在被引用。

附加仅限 Kotlin 的 APK 源代码

现在,在分析和调试预构建的 APK 时,可以附加仅限 Kotlin 的外部 APK 源代码。要了解更多信息,请参阅附加 Kotlin/Java 源代码

内存分析器中的内存泄漏检测

在内存分析器中分析堆转储时,您现在可以过滤 Android Studio 认为可能指示应用中ActivityFragment 实例内存泄漏的分析数据。

过滤器显示的数据类型包括:

  • Activity 实例已被销毁,但仍在被引用。
  • Fragment 实例没有有效的FragmentManager,但仍在被引用。

在某些情况下,例如以下情况,过滤器可能会产生误报:

  • 已创建Fragment,但尚未使用。
  • Fragment 正在被缓存,但不是作为FragmentTransaction 的一部分。

要使用此功能,请首先捕获堆转储导入堆转储文件到 Android Studio。要显示可能泄漏内存的片段和活动,请在内存分析器的堆转储窗格中选中Activity/Fragment 泄漏复选框。

Profiler: Memory Leak Detection

过滤堆转储以查找内存泄漏。

模拟器

Android Studio 3.6 可帮助您利用 Android Emulator 29.2.7 和更高版本中包含的多个更新,如下所述。

改进的位置支持

Android Emulator 29.2.7 和更高版本提供了更多支持,用于模拟 GPS 坐标和路线信息。打开模拟器的扩展控件时,“位置”选项卡中的选项现在组织在两个选项卡下:“单点”和“路线”。

单点

在“单点”选项卡中,您可以使用 Google Maps 网页视图搜索兴趣点,就像在手机或浏览器上使用 Google Maps 一样。当您在地图中搜索或点击某个位置时,您可以通过选择地图底部附近的“保存点”来保存该位置。所有已保存的位置都列在“扩展控件”窗口的右侧。

要将模拟器的位置设置为地图上选择的位置,请点击“扩展控件”窗口右下角的“设置位置”按钮。

Single Points tab in Emulator Extended Controls..

路线

与“单点”选项卡类似,“路线”选项卡提供了一个 Google Maps 网页视图,您可以使用它在两个或多个位置之间创建路线。要创建和保存路线,请执行以下操作:

  1. 在地图视图中,使用文本字段搜索路线中的第一个目的地。
  2. 从搜索结果中选择位置。
  3. 选择“导航”按钮。
  4. 从地图中选择路线的起点。
  5. (可选)点击“添加目的地”向路线添加其他停靠点。
  6. 在地图视图中点击“保存路线”保存路线。
  7. 指定路线名称,然后点击“保存”。

要模拟模拟器遵循您保存的路线,请从“已保存路线”列表中选择路线,然后点击“扩展控件”窗口右下角的“播放路线”。要停止模拟,请点击“停止路线”。

Routes tab in Emulator Extended Controls..

要连续模拟模拟器遵循指定的路线,请启用“重复播放”旁边的开关。要更改模拟器遵循指定路线的速度,请从“播放速度”下拉菜单中选择一个选项。

多显示器支持

Android Emulator 现在允许您将应用部署到多个显示器,这些显示器支持可自定义的尺寸,可以帮助您测试支持多窗口多显示器的应用。虚拟设备运行时,您可以最多添加两个附加显示器,方法如下:

  1. 打开扩展控件并导航到“显示器”选项卡。

  2. 点击“添加辅助显示器”添加另一个显示器。

  3. 从“辅助显示器”下的下拉菜单中执行以下操作之一:

  4. 选择一个预设的长宽比

  5. 选择“自定义”并为自定义显示器设置高度宽度dpi

  6. (可选)点击“添加辅助显示器”添加第三个显示器。

  7. 点击“应用更改”将指定的显示器添加到正在运行的虚拟设备。

Add multiple displays Emulator Extended Controls Display tab.

适用于 Android Automotive OS 的新虚拟设备和项目模板

使用 Android Studio 创建新项目时,您现在可以从“创建新项目”向导的“Automotive”选项卡中选择三个模板:“无 Activity”、“媒体服务”和“消息服务”。对于现有项目,您可以通过从菜单栏中选择文件 > 新建 > 新模块,然后选择Automotive 模块来添加对 Android Automotive 设备的支持。“创建新模块”向导将指导您使用 Android Automotive 项目模板之一创建新模块。

Selecting an Android Automotive project template..

此外,您现在还可以创建 Android 虚拟设备 (AVD),用于 Android Automotive OS 设备,方法是在“虚拟设备配置”向导的“Automotive”选项卡中选择以下选项之一。

  1. Polestar 2:创建模拟 Polestar 2 主机的 AVD。
  2. Automotive (1024p 横向):为通用的 1024 x 768 px Android Automotive 主机创建 AVD。

Selecting an Android Automotive virtual device..

可恢复的 SDK 下载

使用 SDK Manager 下载 SDK 组件和工具时,Android Studio 现在允许您恢复中断的下载(例如,由于网络问题),而不是从头开始重新启动下载。此增强功能对于大型下载(例如 Android Emulator 或系统映像)尤其有用,在这种情况下,互联网连接不可靠。

此外,如果后台有 SDK 下载任务正在运行,您现在可以使用状态栏中的控件暂停或恢复下载。

A background download task in the status bar with new controls that
            let you pause or resume the download.

状态栏中的后台下载任务,带有新的控件,可让您暂停或恢复下载。

Win32 已弃用

Android Studio 的 Windows 32 位版本将于 2019 年 12 月之后不再接收更新,并将于 2020 年 12 月之后不再接收支持。您可以继续使用 Android Studio。但是,要接收其他更新,请将您的工作站升级到 64 位版本的 Windows。

要了解更多信息,请阅读Windows 32 位弃用博客

优化 Gradle 同步时间的新选项

在之前的版本中,Android Studio 在 Gradle 同步期间会检索所有 Gradle 任务的列表。对于大型项目,检索任务列表可能会导致同步时间变慢。

要提高 Gradle 同步性能,请转到文件 > 设置 > 实验性,然后选择“在 Gradle 同步期间不构建 Gradle 任务列表”。

启用此选项后,Android Studio 会在同步期间跳过构建任务列表,从而使 Gradle 同步更快完成并提高 UI 响应速度。请记住,当 IDE 跳过构建任务列表时,Gradle 面板中的任务列表为空,并且构建文件中的任务名称自动完成不起作用。

切换 Gradle 脱机模式的新位置

要启用或禁用 Gradle 的脱机模式,请首先从菜单栏中选择查看 > 工具窗口 > Gradle。然后,在Gradle窗口顶部附近,点击切换脱机模式Gradle 面板中的 Gradle 脱机按钮。

IntelliJ IDEA 2019.2

核心 Android Studio IDE 已通过2019.2 版本更新了 IntelliJ IDEA 的改进。

要了解包含在 2019.2 版本中的其他 IntelliJ 版本的改进(累积),请参阅以下页面:

社区贡献者

感谢所有帮助我们发现错误以及改进 Android Studio 3.6 的其他方法的社区贡献者。特别是,我们要感谢以下报告错误的人员:

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • David Burström
  • Deepanshu
  • Egor Andreevici
  • Eli Graber
  • Emin Kokalari
  • Evan Tatarka
  • Frantisek Nagy
  • Greg Moens
  • Hannes Achleitner
  • Hans Petter Eide
  • Henning Bunk
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Joe Rogers
  • 克里斯托弗·丹尼尔森 (Kristoffer Danielsson)
  • 利兰·巴尔西萨 (Liran Barsisa)
  • 路易斯·CAD (Louis CAD)
  • 洛兰特·平特尔 (Lóránt Pintér)
  • 卢卡什·瓦西尔科夫斯基 (Łukasz Wasylkowski)
  • 卢克·菲尔克 (Luke Fielke)
  • 马尔文·苏坦托 (Malvin Sutanto)
  • 久保出雅敏 (Masatoshi Kubode)
  • 马修·温特斯 (Mathew Winters)
  • 迈克尔·贝利 (Michael Bailey)
  • 米哈尔·戈尼 (Michał Górny)
  • 米哈伊·尼亚库 (Mihai Neacsu)
  • 迈克·斯卡梅尔 (Mike Scamell)
  • 蒙特·克里索尔 (Monte Creasor)
  • 内尔森·奥萨基 (Nelson Osacky)
  • 内尔森·奥萨基 (Nelson Osacky)
  • 尼克·费尔马尼 (Nick Firmani)
  • 尼克拉斯·安斯曼·吉尔茨 (Nicklas Ansman Giertz)
  • 尼克拉斯·克隆 (Niclas Kron)
  • 尼古拉斯·利希特迈尔 (Nicolás Lichtmaier)
  • 尼克·哈尔曼 (Niek Haarman)
  • 尼尔斯·范·霍夫 (Niels van Hove)
  • 尼克拉斯·鲍迪 (Niklas Baudy)
  • 雷纳托·冈萨尔维斯 (Renato Goncalves)
  • 罗尔·格伦莫 (Roar Grønmo)
  • 鲁斯兰·巴拉托夫 (Ruslan Baratov)
  • 西南·科扎克 (Sinan Kozak)
  • 斯瓦沃米尔·切尔文斯基 (Slawomir Czerwinski)
  • 斯特凡·沃尔夫 (Stefan Wolf)
  • 斯蒂芬·达米科 (Stephen D'Amico)
  • 王涛 (Tao Wang)
  • 托马斯·赫拉德克 (Tomas Chladek)
  • 托马什·普罗哈兹卡 (Tomáš Procházka)
  • 托尼·罗巴利克 (Tony Robalik)
  • 托比约恩·索里 (Torbjørn Sørli)
  • 何 Warren (Warren He)
  • 林延琪 (Yenchi Lin)
  • 扎克·斯威尔斯 (Zac Sweers)