Android Studio 3.6(2020 年 2 月)

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

我们还要感谢为本次发布做出贡献的所有社区贡献者

3.6.3 (2020 年 4 月)

本次小版本更新包含各种 bug 修复。要查看显著 bug 修复列表,请阅读 版本更新博客上的相关文章。

3.6.2 (2020 年 3 月)

本次小版本更新包含各种 bug 修复。要查看显著 bug 修复列表,请阅读 版本更新博客上的相关文章。

3.6.1 (2020 年 2 月)

本次小版本更新包含各种 bug 修复。要查看显著 bug 修复列表,请阅读 版本更新博客上的相关文章。

设计工具

此版本的 Android Studio 包含对多个设计工具(包括 Layout Editor 和 Resource Manager)的更新。

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

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

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

  • 设计编辑器(如 Layout Editor 和 Navigation Editor)现在提供了拆分视图,让您可以同时查看界面文件的设计视图和代码视图。在编辑器窗口的右上角,现在有三个按钮 视图图标 用于在查看选项之间切换

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

要了解详情,请参阅使用 Layout Editor 构建界面

颜色选择器资源标签页

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

Color picker with populated color values

资源管理器

资源管理器包含以下更新

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

要了解详情,请参阅使用 Resource Manager 管理应用界面资源

Android Gradle 插件更新

最新版本的 Android Gradle 插件包含许多更新,包括构建速度优化、支持 Maven 发布插件以及支持 View Binding。要了解详情,请阅读完整版本说明

视图绑定 (View binding)

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

因为它取代了 findViewById(),所以视图绑定消除了因无效视图 ID 导致 null 指针异常的风险。

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

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

应用更改 (Apply Changes)

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

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

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

创建应用项目后,您现在可以随时通过以下方式将基本模块设置为 instant-enabled

  1. 从菜单栏中选择 View > Tool Windows > Project,打开项目面板。
  2. 右键点击您的基本模块(通常命名为“app”),然后选择 Refactor > Enable Instant Apps Support
  3. 在出现的对话框中,从下拉菜单中选择您的基本模块。
  4. 点击 OK

注意:创建新项目向导中即时启用基本应用模块的选项已被删除。

要了解详情,请阅读Google Play Instant 概览

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

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

  1. 从菜单栏中选择 Build > Analyze APK
  2. 在出现的对话框中,导航到您要检查的 APK 并选择它。
  3. 点击 Open
  4. 在 APK Analyzer 中,选择您要检查的 DEX 文件。
  5. 在 DEX 文件查看器中,加载您正在分析的 APK 的 ProGuard 映射文件
  6. 右键点击您要检查的类或方法,然后选择 Show bytecode

原生工具

以下更新支持 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 源文件

Memory Profiler 中的内存泄漏检测

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

过滤器显示的数据类型包括以下内容

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

附加仅 Kotlin APK 源文件

现在,当您分析和调试预构建 APK 时,可以附加仅 Kotlin 外部 APK 源文件。要了解详情,请参阅附加 Kotlin/Java 源文件

Memory Profiler 中的内存泄漏检测

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

过滤器显示的数据类型包括以下内容

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

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

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

要使用此功能,首先捕获堆转储或将堆转储文件导入到 Android Studio。要在 Memory Profiler 的堆转储面板中显示可能发生内存泄漏的片段和活动,请选中Activity/Fragment Leaks复选框。

Profiler: Memory Leak Detection

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

模拟器

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

改进的位置支持

Android Emulator 29.2.7 及更高版本为模拟 GPS 坐标和路线信息提供了额外支持。当您打开模拟器的扩展控件时,位置选项卡中的选项现在组织在两个标签页下:单点路线

单点

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

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

Single Points tab in Emulator Extended Controls..

路线

单点标签页类似,路线标签页提供一个 Google 地图网页视图,您可以使用它创建两个或多个位置之间的路线。要创建和保存路线,请执行以下操作

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

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

Routes tab in Emulator Extended Controls..

要连续模拟模拟器沿指定路线行驶,请启用重复播放旁边的开关。要更改模拟器沿指定路线行驶的速度,请从播放速度下拉列表中选择一个选项。

多显示屏支持

Android 模拟器现在允许您将应用部署到多个显示屏,这些显示屏支持自定义尺寸,并可以帮助您测试支持多窗口多显示屏的应用。在虚拟设备运行时,您可以按照以下步骤添加最多两个额外的显示屏

  1. 打开扩展控件并导航到显示屏标签页。

  2. 点击添加辅助显示屏以添加另一个显示屏。

  3. 辅助显示屏下的下拉菜单中,执行以下操作之一

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

  5. 选择自定义并为您的自定义显示屏设置高度宽度dpi

  6. (可选)点击添加辅助显示屏以添加第三个显示屏。

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

Add multiple displays Emulator Extended Controls Display tab.

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

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

Selecting an Android Automotive project template..

此外,您现在可以通过在虚拟设备配置向导的汽车标签页中选择以下选项之一,为 Android Automotive OS 设备创建 Android 虚拟设备 (AVD)

  1. Polestar 2:创建一个模拟 Polestar 2 主机的 AVD。
  2. 汽车(1024p 横向):为通用 1024 x 768 像素 Android Automotive 主机创建一个 AVD。

Selecting an Android Automotive virtual device..

可续传的 SDK 下载

使用 SDK Manager 下载 SDK 组件和工具时,Android Studio 现在允许您继续下载中断的任务(例如,由于网络问题),而无需从头开始重新下载。当网络连接不稳定时,此增强功能对于大型下载(例如 Android 模拟器或系统映像)特别有用。

此外,如果您在后台运行 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 Sync 期间会检索所有 Gradle 任务的列表。对于大型项目,检索任务列表可能会导致同步时间变慢。

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

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

切换 Gradle 离线模式的新位置

要启用或禁用 Gradle 的离线模式,首先从菜单栏中选择 View > Tool Windows > 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
  • 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 He
  • Yenchi Lin
  • Zac Sweers