Android Studio 4.2(2021 年 4 月)

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

4.2.2(2021 年 6 月)

本次要更新包含多项 bug 修复。如需查看重要 bug 修复列表,请参阅版本更新博客上的相关博文。

4.2.1(2021 年 5 月)

这是一个次要更新,纳入了 Kotlin 插件 1.5.0 并包含各种 bug 修复。如需查看重要 bug 修复列表,请参阅版本更新博客上的相关博文。

Android Gradle 插件 4.2.0

最新版本的 Android Gradle 插件包含许多更新。如需了解详情,请阅读完整的 Android Gradle 插件版本说明

Gradle 兼容性和配置变更

在 Android Studio 中运行时,Gradle 构建工具会使用 Studio 所捆绑的 JDK。 在之前的版本中,与 Studio 捆绑的是 JDK 8。但在 4.2 中,现在捆绑的版本为 JDK 11。在使用所捆绑的新 JDK 运行 Gradle 时,由于垃圾回收器的变更,这可能会导致某些不兼容问题或影响 JVM 性能。AGP 版本说明对这些问题进行了介绍。

优化 Gradle 同步时间的选项

为了提高 Gradle Sync 性能,Android Studio 会在同步期间跳过构建任务列表。这可让 Gradle Sync 更快地完成,并提高大型项目的界面响应速度。在 Android Studio 4.2 中,此选项默认处于启用状态。若要关闭此选项,请依次点击 File > Settings > Experimental(在 Mac 上,请依次点击 Preferences > Experimental),然后取消选中 Do not build Gradle task list during Gradle sync

Database Inspector

查询编辑器改进

Database Inspector 进行了一些改进,可帮助您编写和执行自定义 SQL 语句。当您打开检查器并打开一个 New query 标签页时,应该会看到一个更大、可调整大小的编辑器界面,用于编写查询和设置查询格式,如下所示。

Database Inspector 编辑器

此外,我们现在还提供您的先前查询的历史记录。点击 Show query history “Show query history”按钮{: .inline-icon} 按钮时,您应该会看到先前针对当前所选数据库运行的查询列表。点击列表中的某个查询便可在编辑器中查看完整查询的预览,然后按 Enter 将其复制到编辑器中。接着,点击 Run 以执行语句。

在查询编辑器中运行命令

离线模式

在旧版 Android Studio 中,在使用 Database Inspector 时断开与应用进程的连接会导致关闭检查器及其数据。在 Android Studio 4.2 中,我们添加了在进程断开连接后继续检查应用数据库的功能,以便在发生崩溃后更轻松地调试应用。

如果发生断开连接的情况,Database Inspector 会下载您的数据库,然后供您在离线模式下使用这些数据库。您可以在离线模式下打开表格并运行查询。

请注意,当您重新连接至实时应用进程时,Database Inspector 会返回到实时模式,并仅显示设备上的数据。也就是说,重新连接到应用进程后,系统不会保留离线模式下显示的数据。 因此,Database Inspector 不允许在离线模式下编辑或运行修改语句。

适用于 AGP 的升级助理

适用于 Android Gradle 插件的升级助理可帮助您更新项目的 AGP 版本。

“Android Gradle plugin Upgrade Assistant”对话框

该工具以现有的 AGP 升级功能为基础构建,可指导您完成整个项目级更新/重构工作,并包含更新预览,有助于防止在执行 AGP 升级之前发生潜在的重大更改。

升级助理要执行的更改的预览

System Trace:改进了内存和图形的指标

在 CPU 性能分析器中,System Trace 功能添加了用于分析应用性能的新指标,其中包括:

  • “事件”表格。列出当前所选线程中的所有跟踪事件。

  • BufferQueue。在“Display”部分中,这一新跟踪记录会显示应用 Surface BufferQueue 的缓冲区计数(0、1 或 2),以便帮助您了解图像缓冲区在 Android 图形组件之间切换时的状态。

    System Trace 的缓冲区队列

  • CPU 频率。在“CPU cores”部分中,这一新跟踪记录会按核心显示 CPU 频率,以指示每个核心的运行状况。

    System Trace 的 CPU 频率

  • Process Memory (RSS)。 这一新窗口会显示应用当前使用的物理内存量。

    System Trace 的“Process Memory (RSS)”

如需了解详情,请参阅使用 CPU 性能分析器检查 CPU 活动

新增布局检查器刷新操作

布局检查器是在 Android Studio 4.0 中引入的,旨在对正在运行的应用的界面堆栈进行实时检查。不过,您可能并不总是希望布局检查器立即反映应用发生的情况,因为您可能希望在特定时间点检查应用布局的快照,或最大限度降低实时更新对应用性能的影响。

如需从应用手动加载界面数据快照,请先停用 Live updates 选项。然后,您可以点击 Refresh {:.inline-icon} 按钮,以截取界面堆栈的新快照以进行检查。布局检查器现在会记住您的偏好设置,以便在会话之间保持启用或停用 Live updates

对 Safe Args 的支持

Safe Args 是一个 Gradle 插件,可生成简单的对象和构建器类,以实现类型安全的导航和访问任何关联参数。使用 Safe Args 时,Android Studio 现在扩大了支持范围,如下所述:

  • 支持针对 Directions、Args 和各种构建器类的自动填充功能
  • 支持 Java 和 Kotlin Safe Args 插件
  • 支持从源代码到 XML 的导航

现在,R8 retrace 包含在命令行工具中

R8 retrace 现包含在 4.0 版命令行工具中。这是一个独立的工具,用于从经过混淆处理的堆栈轨迹获取原始堆栈轨迹。

您可以使用 SDK 管理器下载此软件包,这样会在 android_sdk/cmdline-tools 中安装 R8 retrace。 或者,您也可以下载独立的命令行工具软件包

如需了解使用信息,请参阅用户指南中的 R8 retrace

部署到多个设备

为了帮助简化跨设备和 API 级别的应用测试,您现在可以执行以下步骤,将应用同时部署到多个设备或模拟器:

  1. 在目标设备下拉菜单(位于 IDE 的正上方)中选择 Select Multiple Devices

    目标设备下拉菜单

  2. 选择目标设备,然后点击 OK

    “Modify device set”对话框

  3. 运行应用。

用于功能模块的新 removable 设置

Android Gradle 插件 4.2 使用 bundletool 1.0.0,后者为使用功能模块的应用引入了一项行为变更:指定为 dist:install-time 但未明确标记为 dist:removable 的任何功能模块都将默认为不可移动。这项新设置优化了安装时间模块与基本模块的融合,这可能会提高某些应用的性能。

如需使功能模块保持可移除,请在要卸载的任何模块上设置 dist:removable="true"

如需详细了解这项新设置,请参阅功能模块清单文档中有关 dist:removable 标记的文档。

Apply Changes

为了帮助您更高效地迭代应用,我们针对搭载 Android 11 或更高版本的设备对 Apply Changes 进行了以下增强:

支持其他代码更改

对于搭载 Android 11 或更高版本的设备,您现在可以添加静态最终基元字段,然后通过点击以下任一按钮将这些更改部署到正在运行的应用中:Apply Code Changes Apply Code Changes 图标Apply Changes and Restart Activity “Apply Changes and Restart Activity”图标

在 Android 11 设备上,您现在还可以添加资源,然后通过点击 Apply Changes and Restart Activity 图标 “Apply Changes and Restart Activity”图标,将这些更改部署到正在运行的应用。

更新了“New Project”向导和“New Module”向导

更新了 New Project 向导和 New Module 向导,以便更轻松地浏览、选择模板以及输入新项目或新模块的相关信息。

此外,还从 New Module 向导中移除了 Import .JAR/.AAR Package 选项。如需将 JAR 或 AAR 导入项目,请改为使用“Project Structure”对话框

Kotlin 1.4.31

Android Studio 4.2 捆绑了 Kotlin 1.4.31。查看 Kotlin 1.4.0 变更记录,了解主要变更。

ANDROID_SDK_HOME 环境变量已废弃

ANDROID_SDK_HOME 环境变量已废弃,取而代之的是 ANDROID_PREFS_ROOT。如需了解详情,请参阅模拟器环境变量

Android Studio 4.2 的已知问题

本部分将介绍 Android Studio 4.2 中存在的已知问题。如需查看完整列表,请转到已知问题页面。

Android Studio 4.2.0 生成的项目使用错误的 Kotlin 版本:“1.5.0-release-764”

如果您使用的是 Android Studio 4.2.0 并已升级到 Kotlin 插件 1.5.0,Studio 创建的新 Kotlin 项目会因以下 Gradle 同步错误而无法构建:

Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0-release-764.

若要解决此问题,请在项目的 build.gradle 文件中将 1.5.0-release-764 替换为 1.5.0

对密钥和密钥库使用不同的密码时出错

从 4.2 版本开始,Android Studio 现在将在 JDK 11 上运行。此变更会导致与签名密钥相关的底层行为发生变更。

在您依次转到 Build > Generate Signed Bundle / APK 并尝试为 app bundle 或 APK 配置应用签名时,如果对密钥和密钥库输入不同的密码,就可能会导致以下错误:

Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores

若要解决此问题,请为密钥和密钥库输入相同的密码。

安装 4.2 版本后,Android Studio 无法启动

Studio 会尝试导入之前版本的 .vmoptions 并对其进行清理,以便与 JDK 11 使用的垃圾回收器配合使用。如果此进程失败,对于在 .vmoptions 文件中设置了自定义虚拟机选项的用户,Android Studio 可能不会启动。

为了解决此问题,我们建议在 .vmoptions 中注释掉自定义选项(使用 # 字符)。.vmoptions 文件位于以下位置:

Windows

C:\Users\YourUserName\AppData\<var>[Local|Roaming]</var>\Google\AndroidStudio4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

Linux

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

如果尝试过此权宜解决方法后 Studio 仍未启动,请参阅下面的 Studio 在升级后没有启动