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 包含对多个设计工具的更新,其中包括布局编辑器和 Resource Manager。

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

拆分视图同时显示设计视图和文本视图

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

  • 设计编辑器(如布局编辑器和 Navigation Editor)现在提供了 Split 视图,可让您同时查看界面的 Design 视图和 Code 视图。在编辑器窗口的右上角,现在提供三个按钮 视图图标,可用于在视图选项之间切换以启用相应视图:

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

如需了解详情,请参阅使用布局编辑器构建界面

颜色选择器 Resource 标签页

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

填充了颜色值的颜色选择器

Resource Manager

Resource Manager 包含以下更新:

  • Resource Manager 现在支持大多数资源类型。
  • 在搜索资源时,Resource Manager 现在会显示所有项目模块中的搜索结果。以前,该工具只会返回已选定模块中的搜索结果。
  • 借助过滤器按钮,您可以查看本地相关模块、外部库和 Android 框架中的资源。您还可以使用该过滤器来显示主题背景属性。
  • 现在,您可以在导入过程中点击资源上方的文本框来重命名相应资源。

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

Android Gradle 插件的更新

最新版 Android Gradle 插件包含许多更新,其中包括针对构建速度的优化、对 Maven 发布插件的支持以及对视图绑定的支持。如需了解详情,请参阅完整的版本说明

视图绑定

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

由于视图绑定取代了 findViewById(),因此可以消除因视图 ID 无效而引发 null 指针异常的风险。

如需启用视图绑定,您需要使用 Android Gradle 插件 3.6.0 或更高版本,并在每个模块的 build.gradle 文件中添加以下代码:

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Apply Changes

您现在可以添加一个类,然后将该代码更改部署到正在运行的应用,方法是点击 Apply Code ChangesApply Changes and Restart Activity

如需详细了解这两项操作之间的区别,请参阅 Apply Changes

重构菜单选项以启用免安装应用支持

现在,您可以在创建应用项目后随时使基础模块支持免安装体验,具体操作步骤如下:

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

注意:已移除 Create New Project 向导中用于使基础应用模块支持免安装体验的选项。

如需了解详情,请参阅 Google Play 免安装体验概览

在 APK 分析器中对类和方法字节码进行去混淆处理

使用 APK 分析器检查 DEX 文件时,您可以对类和方法字节码进行去混淆处理,操作步骤如下所示:

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

原生工具

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

Kotlin 支持

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

  • 从 JNI 声明前往 C/C++ 中的对应实现函数。只需将鼠标悬停在托管源代码文件中的行号附近的 C 或 C++ 项标记上方,即可查看此映射。

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

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

  • 如果您重命名(重构)某个原生实现函数,所有对应的 JNI 声明都会更新。重命名 JNI 声明可更新原生实现函数。

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

其他关于 JNI 的改进

Android Studio 中的代码编辑器现在支持更顺畅的 JNI 开发流程,包括改进后的类型提示、自动补全、检查和代码重构。

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

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

附加纯 Kotlin APK 源代码

现在,当您对预构建的 APK 进行性能分析和调试时,可以附加纯 Kotlin 外部 APK 源代码。如需了解详情,请参阅附加 Kotlin/Java 源代码

内存分析器中的泄漏检测

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

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

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

附加纯 Kotlin APK 源代码

现在,当您对预构建的 APK 进行性能分析和调试时,可以附加纯 Kotlin 外部 APK 源代码。如需了解详情,请参阅附加 Kotlin/Java 源代码

内存分析器中的泄漏检测

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

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

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

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

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

如需使用此功能,请先捕获堆转储将堆转储文件导入 Android Studio。如需显示可能泄漏内存的 fragment 和 activity,请勾选内存分析器的堆转储窗格中的 Activity/Fragment Leaks 复选框。

内存分析器:内存泄漏检测

过滤堆转储以检测内存泄漏。

模拟器

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

改进了位置信息支持

Android 模拟器 29.2.7 及更高版本为模拟 GPS 坐标和路线信息提供了额外的支持。打开模拟器的 Extended controls 时,您会发现“Location”标签页下的选项现在位于 Single pointsRoutes 这两个标签页下。

Single points

Single points 标签页中,您可以使用 Google 地图 WebView 搜索地图注点,就像在手机或浏览器中使用 Google 地图一样。当您在地图上搜索或点击某个地点时,可以通过选择地图底部附近的“Save point”来保存该地点。您保存的所有地点都会列在 Extended controls 窗口的右侧。

如需将模拟器位置设置为您在地图上选择的地点,请点击 Extended controls 窗口右下角附近的 Set location 按钮。

模拟器“Extended Controls”窗口中的“Single points”标签页。

Routes

Single points 标签页类似,Routes 标签页提供的 Google 地图 WebView 可用于在两个或多个地点之间创建路线。如需创建并保存路线,请执行以下操作:

  1. 在地图视图中,使用文本字段搜索路线中的第一个目的地。
  2. 从搜索结果中选择地点。
  3. 选择 Navigate 按钮。
  4. 从地图中选择路线的出发地。
  5. (可选)点击 Add destination 可向路线添加其他地点。
  6. 点击地图视图中的 Save route 以保存路线。
  7. 指定路线的名称,然后点击 Save

如需让模拟器模拟您保存的路线,请从 Saved routes 列表中选择路线,然后点击 Extended controls 窗口右下角附近的 Play route。如需停止模拟,请点击 Stop route

模拟器“Extended Controls”窗口中的“Routes”标签页。

如需继续让模拟器模拟指定的路线,请打开 Repeat playback 旁边的开关。如需更改模拟器模拟指定路线的速度,请从 Playback speed 下拉菜单中选择一个选项。

多显示屏支持

借助 Android 模拟器,您现在可以将应用部署到多个显示屏,这些显示屏支持自定义尺寸,而且可以帮助您测试支持多窗口模式多显示屏的应用。在虚拟设备运行时,您最多可以添加两个额外的屏幕,如下所示:

  1. 打开 Extended controls,然后前往 Displays 标签页。

  2. 如需添加其他屏幕,请点击 Add secondary display

  3. Secondary displays 下的下拉菜单中,执行以下任一操作:

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

  5. 选择 custom,然后为自定义屏幕设置高度宽度dpi

  6. (可选)点击 Add secondary display 可添加第三个屏幕。

  7. 点击 Apply changes,将指定的屏幕添加到正在运行的虚拟设备。

在模拟器“Extended Controls”窗口“Display”标签页中添加多个屏幕。

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

使用 Android Studio 创建新项目时,您现在可以从 Create New Project 向导的 Automotive 标签页中选择三个模板:No ActivityMedia serviceMessaging service。对于现有项目,您可以添加对 Android Automotive 设备的支持,方法是从菜单栏中依次选择 File > New > New Module,然后选择 Automotive Module。然后,Create New Module 向导会引导您使用其中一个 Android Automotive 项目模板创建新模块。

选择 Android Automotive 项目模板。

此外,您现在可以为 Android Automotive OS 设备创建 Android 虚拟设备 (AVD),方法是在 Virtual Device Configuration 向导中的Automotive 标签页下选择以下其中一个选项。

  1. Polestar 2:创建一个可模拟 Polestar 2 音响主机的 AVD。
  2. Automotive (1024p landscape):创建一个适用于通用 1024 x 768 像素 Android Automotive 音响主机的 AVD。

选择 Android Automotive 虚拟设备。

可恢复的 SDK 下载

使用 SDK 管理器下载 SDK 组件和工具时,Android Studio 现在允许您恢复已中断的下载(例如,由于网络问题),而不是从头开始重新下载。当互联网连接不可靠时,此增强功能对大量数据的下载(如 Android 模拟器或系统映像)特别有用。

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

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

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

Win32 版本已废弃

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

如需了解详情,请参阅关于废弃 Windows 32 位版本的博文

用于优化 Gradle 同步时间的新选项

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

如需提高 Gradle 同步性能,请依次选择 File > Settings > Experimental,然后选择“Do not build Gradle task list during Gradle sync”。

启用此选项后,Android Studio 在同步期间便不会构建任务列表,这样可以更快地完成 Gradle 同步并提高界面响应能力。请注意,当 Android Studio 跳过构建任务列表时,Gradle 面板中的任务列表为空,并且 build 文件中的任务名称自动补全功能不起作用。

用于切换 Gradle 离线模式的新位置

如需启用或停用 Gradle 离线模式,请先从菜单栏中依次选择 View > Tool Windows > Gradle。然后,在 Gradle 窗口顶部附近,点击 Toggle Offline Mode 图标 Gradle 面板中的 Gradle 离线按钮。

IntelliJ IDEA 2019.2

核心 Android Studio IDE 已通过 2019.2 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进。

如需详细了解版本 2019.2 累积的其他 IntelliJ 版本的改进,请参阅以下页面:

社区贡献者

感谢所有帮助我们发现 bug 及通过其他方式改进 Android Studio 3.6 的社区贡献者。特别要感谢以下报告 bug 的人士:

  • 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