Google 致力于为黑人社区推动种族平等。查看具体举措

Android Studio 预览版中的新功能

Android Studio 4.1 已发布稳定版。 您可以在此处下载

Android Studio 4.2 目前已发布 Canary 版和开发者版。

如需了解与各版本有关的最新资讯,包括每个版本中的重要修正的列表,另请参阅版本更新

如果您在使用 Android Studio 预览版时遇到任何问题,请与我们联系。您的错误报告有助于我们改进 Android Studio。

Android Studio 4.2

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

在 CPU 性能剖析器中,System Trace 功能现在包含用于分析应用性能的新指标。

“Events”表格

“Events”表格是 Analysis 窗格右侧的一个新标签页。此表格列出了当前选定的线程中的所有跟踪事件。

System Trace 的“Events”表格

新跟踪记录和跟踪记录组

System Trace 现提供更多数据,用于跟踪在搭载 Android 9 或更高版本的设备上使用的应用。

BufferQueue(在“Display”部分)

此新跟踪记录显示应用 Surface BufferQueue 的缓冲区计数(0、1 或 2)。它可帮助您了解图片缓冲区在 Android 图形组件之间切换时的状态。例如,值 2 表示该应用当前处于三重缓冲状态,这可能会导致额外的输入延迟。

System Trace 的缓冲区队列

CPU 频率(在“CPU cores”部分中)

除了 CPU 调度数据外,我们还加入了按核心记录的 CPU 频率。显示了每个核心的运行状况,让您可以了解哪些是现代移动处理器中的“大”核心或“小”核心

System Trace CPU 频率

Process Memory (RSS)

新的 Process Memory (RSS) 显示应用当前使用的物理内存量。

System Trace 的“Process Memory (RSS)”

Total

这是您的进程当前使用的物理内存总量。在基于 Unix 的系统上,这被称为“驻留集大小”,是匿名分配(由交换文件支持)、文件映射(向内存一次加载一页的文件)和共享内存分配(由多个进程访问,通过各种机制分配)所使用的所有内存的组合。

对于 Windows 开发者,驻留集大小类似于工作集大小。

Allocated

此计数器跟踪进程的正常内存分配目前占用了多少物理内存。这些分配均匿名(不由特定文件支持)且不公开(不共享)。

File Mappings

此计数器跟踪进程拥有的任何文件映射占用了多少物理内存。

Shared

此计数器跟踪在此进程和系统中的其他进程之间共享内存所需使用的物理内存量。

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

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

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

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

布局检查器中新增了刷新操作

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

暂停实时更新并在布局检查器中刷新屏幕截图。

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

Jetpack Compose 的 Android Gradle 插件支持

从 Android Gradle 插件 4.2 Canary 13 开始,将仅支持 Jetpack Compose 编译器 1.0.0-alpha-04 及更高版本。

适用于 AGP 的升级助理

从 Android Studio 4.2 Canary 5 开始,适用于 Android Gradle 插件的升级助理可帮助您更新项目的 AGP 版本。

“Android Gradle plugin Upgrade Assistant”对话框

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

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

对 Safe Args 的支持

Safe Args 是一个 Gradle 插件,可生成简单的对象和构建器类,以实现类型安全的导航和访问任何关联参数。使用 Safe Args 时,Android Studio 4.2 Canary 9 及更高版本包含特殊支持,如下所述:

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

用于布局编辑器的无障碍功能扫描仪

Android Studio 现与 Android 无障碍功能测试框架集成,可帮助您查找布局中的无障碍功能问题。使用布局编辑器时,点击 Accessibility Scanner “Accessibility Scanner”按钮 按钮以启动该扫描仪。此工具还会针对一些常见问题(例如缺少内容说明)提供修正建议。

无障碍功能扫描仪从 Canary 8 版本开始提供。

Android Studio 中的无障碍功能扫描仪

Database Inspector

查询编辑器改进

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

Database Inspector 编辑器

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

在查询编辑器中运行命令

离线模式

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

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

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

用于功能模块的新 removable 设置

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

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

本部分简要介绍了 Android Studio 4.2 中的新功能和变更。

Android Gradle 插件 4.2

gradle.properties 文件的行为变更

从 AGP 4.2 开始,无法再从子项目中替换 Gradle 属性。也就是说,如果您在子项目(而不是根项目)上的 gradle.properties 文件中声明某个属性,该属性将被忽略。

例如,在以前的版本中,AGP 会从 projectDir/gradle.propertiesprojectDir/app/gradle.propertiesprojectDir/library/gradle.properties 等文件中读取值。对于应用模块,如果同一 Gradle 属性同时存在于 projectDir/gradle.propertiesprojectDir/app/gradle.properties 中,则 projectDir/app/gradle.properties 中的值优先。

在 AGP 4.2 中已更改此行为,AGP 不会从子项目内的 gradle.properties 中加载值(例如,子项目为projectDir/app/gradle.properties)。此更改反映了新的 Gradle 行为并支持配置缓存

如需详细了解如何在 gradle.properties 文件中设置值,请参阅 Gradle 文档

新增的 JVM 资源编译器

Android Gradle 插件 4.2 工具中新增了 JVM 资源编译器,它取代了 AAPT2 资源编译器的部分功能,可能会提升构建性能,尤其是在 Windows 计算机上。

从 Canary 7 版本开始,新增的 JVM 资源编译器默认处于启用状态。

现在支持 v3 和 v4 签名

Android Gradle 插件 4.2 现在支持 APK v3APK v4 签名格式。如需在 build 中启用这两种格式之一或同时启用这两种格式,请将以下属性添加到模块级 build.gradlebuild.gradle.kts 文件中:

Kotlin

// build.gradle.kts

android {
   ...
   signingConfigs {
      config {
          ...
          enableV3Signing(true)
          enableV4Signing(true)
      }
   }
}

Groovy

// build.gradle

android {
  ...
  signingConfigs {
    config {
        ...
        enableV3Signing true
        enableV4Signing true
    }
  }
}

通过 APK v4 签名,您可以使用 Android 11 中的 ADB 增量 APK 安装快速部署大型 APK。此新标志负责部署过程中的 APK 签名步骤。

支持 Jetpack Compose

Jetpack Compose 工具包提供了一种用于构建应用界面的现代方法。 此外,该工具包还融合了 Kotlin 的所有优势,如帮助您编写可完全与 Java 互操作的简洁而惯用的代码。

为了获得最佳 Jetpack Compose 开发体验,建议您使用最新版本的 Android Studio 4.2。这是因为,当您搭配使用 Android Studio 和 Jetpack Compose 开发应用时,可以从智能编辑器功能中受益,这些功能包括“新建项目”模板和立即预览 Compose 界面等。

如需了解详情并开始使用,请转到 Jetpack Compose 概览

4.2 中新增了 Jetpack Compose 工具支持

Android Studio 现在对使用 Jetpack Compose 的预览和测试应用提供额外的支持。

Compose 预览

@Preview 方法现在提供以下参数:

  • showBackground:开启和关闭预览的背景。
  • backgroundColor:设置仅在预览界面中使用的颜色。
  • uiMode:此新参数可采用任何 Configuration.UI_* 常量,且允许您更改预览的行为,例如,将其设置为夜间模式以了解主题背景如何反应。

互动式预览

在此模式下,您可以与界面组件互动、点击组件,以及查看状态如何变化。通过这种方式,您可以快速获得有关界面如何反应的反馈,并可快速预览动画。如要启用此模式,只需点击“互动”图标 ,系统即会切换预览模式。

如需停止此模式,请点击顶部工具栏中的 Stop Interactive Preview

部署到设备

使用此功能可将界面的代码段部署到设备。这有助于在设备中测试一小部分代码,而无需启动整个应用。

点击 @Preview 注释旁边或预览顶部的“部署到设备”图标 ,Android Studio 会将该 @Preview 部署到连接的设备或模拟器。

Preview Data Sources API

借助此新 Data Sources API,您可以根据数据生成预览。如果您有现有的数据列表或主题背景列表,通过该 API,您可以将其作为参数注入到 @Preview 方法。

class HelloWorldProvider :
   CollectionPreviewParameterProvider<String>(
       listOf("Hello World", "Привет мир", "Olá Mundo", "Hola Mundo"))

@Preview
@Composable
fun HelloWorldPreview(
   @PreviewParameter(HelloWorldProvider::class) text: String
) {
   MaterialTheme {
       Text(text = text)
   }
}

如需启用上述功能,模块的 build.gradle 必须包含以下设置:

  android {
  …
  buildFeatures {
    compose true
  }
  composeOptions {
     kotlinCompilerExtensionVersion = "0.1.0-dev13"
     kotlinCompilerVersion = "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
   }
}

Compose 预览的已知问题

Compose 预览目前不支持 androidx.ui.foundation.Dialog

改进了插桩测试

从 Android Studio 4.2 Canary 1 开始,现在可以在多台设备上并行运行插桩测试,并且可以使用专门的插桩测试结果面板对插桩测试进行研究。利用此面板,您可以确定测试失败的原因在于 API 级别还是硬件属性。

插桩测试面板

为确保所有用户都获得良好的应用使用体验,最好的方法之一就是采用各种 API 级别和设备类型测试您的应用。

为了充分利用这项功能,请执行以下操作:

  1. 在目标设备下拉菜单(位于 IDE 的正上方)中选择 Modify Device Set

    目标设备下拉菜单

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

    “Modify device set”对话框

  3. 从目标设备下拉菜单中选择 Multiple Devices,然后运行测试。

    从目标设备下拉菜单中选择“Multiple Devices”

如需在 Run 面板中查看测试结果,请依次转到 View > Tool Windows > Run

使用新的测试结果面板,您可以按状态、设备和 API 级别过滤测试结果。此外,您还可以点击各列的标题对列进行排序。通过点击单个测试,您可以单独查看每种设备的日志和设备信息。

Apply Changes

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

支持其他代码更改

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

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

4.2 预览版的已知问题

本部分介绍了 Android Studio 4.2 预览版的当前已知问题。

原生内存性能分析器:在应用启动时剖析原生内存的性能这项功能已停用

在应用启动时剖析原生内存的功能已停用。此选项会在即将发布的版本中启用。

解决方法之一是,您可以使用 Perfetto 独立命令行性能剖析器来捕获启动配置文件。

安装 Canary 8 版本后,Studio 无法启动

将 Android Studio 升级到 4.2 Canary 8 后,如果用户在 .vmoptions 文件中设置了自定义虚拟机选项,Android Studio 可能不会启动。为了解决此问题,我们建议在 .vmoptions 中使用注释排除自定义选项(使用“#”字符)。.vmoptions 文件位于以下位置:

Windows

C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudioPreview4.2\studio64.exe.vmoptions

macOS

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

Linux

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