Android Studio Flamingo | 2022.2.1 (2023 年 4 月)

以下是 Android Studio Flamingo 中的新功能。

补丁版本

以下是 Android Studio Flamingo 中的补丁版本列表。

Android Studio Flamingo | 2022.2.1 Patch 2 (2023 年 5 月)

此次小幅更新包含这些错误修复

Android Studio Flamingo | 2022.2.1 Patch 1 (2023 年 5 月)

此次小幅更新包含这些 Android Gradle 插件错误修复

主题化应用图标和动态颜色

随着 Material 3 中引入了动态颜色以及 Android 13 中引入了主题化应用图标,您现在可以创建布局或启动器图标,使其着色以继承用户所选壁纸的颜色。您可以从 Android Studio Flamingo Beta 1 开始使用此功能。

主题化应用图标预览支持

对于 launcher.xml 文件,您现在可以使用工具栏上的新版系统 UI 模式选择器切换壁纸,并查看您的主题化应用图标对不同用户所选壁纸的反应。

系统 UI 模式选择器。


在不同壁纸下预览主题化应用图标。

动态颜色预览

对于 Compose 预览:我们在可组合预览注解中添加了一个新属性 wallpaper。如果您在应用中启用了动态颜色,可以使用此新属性切换壁纸,并查看您的 UI 对不同用户所选壁纸的反应。要使用此功能,您必须使用 Compose 1.4.0-alpha03 或更高版本。

Compose 预览中的动态颜色壁纸。

对于 Android XML:如果您在应用中启用了动态颜色,您现在可以使用工具栏上的新版系统 UI 模式选择器切换壁纸,并查看您的布局对不同用户所选壁纸的反应。请注意,您必须先选择将主题更改为 Material 动态颜色主题,然后才能更改壁纸。

布局编辑器中的动态颜色壁纸。

Live Edit 更新

Live Edit 现在有两种模式:手动和自动。在手动模式下,每次使用 Ctrl + S (macOS 上是 Command + S) 手动保存时,您的代码更改就会应用。在自动模式下,当您更新可组合函数时,您的更改会在您进行更改时立即应用到您的设备或模拟器上。要选择要运行 Live Edit 的模式,请从菜单栏中依次选择 File > Settings(或 macOS 上是 Android Studio > Preferences),然后点击 Editor > Live Edit,并勾选 Push Edits ManuallyPush Edits Automatically 复选框。

Compose 跟踪

利用 系统跟踪 工具(一项 Android 工具),您可以将设备活动保存到跟踪文件中,从而全面了解应用在给定时间段内的系统进程。从 Android Studio Flamingo 开始,您可以使用 Compose 跟踪在系统跟踪分析器中查看您的 Compose 函数。Compose 跟踪兼具系统跟踪的低侵入性与方法跟踪在组合方面的精细度,可帮助您了解哪些 Compose 函数实际正在重新组合。

UI preview of Compose Tracing

要开始进行重新组合跟踪,您需要更新到至少以下版本

  • Android Studio Flamingo Canary 5
  • Compose UI: 1.3.0-beta01
  • Compose Compiler: 1.3.0
  • 您用于运行跟踪的设备或模拟器必须至少达到 API 级别 30。

此外,您需要添加对 Compose Runtime Tracing 的以下依赖项

implementation("androidx.compose.runtime:runtime-tracing:1.0.0-alpha01")

要查看重新组合跟踪,请打开 Android Studio 分析器,然后选择 CPU 分析器。在您的应用中导航到您要跟踪的 UI,然后选择 System TraceRecord。在录制期间,使用您的应用以触发重新组合。停止录制并处理跟踪后,您可以直接在线程时间轴中看到重新组合跟踪中的 Compose 函数。您还可以在分析窗格中的 Flame ChartTop DownBottom UpEvents 标签页中看到 Compose 函数。

这是一项正在积极开发的实验性功能,欢迎您提供反馈。如需了解更多详情,请参阅Compose 跟踪

项目模板更新

Android Studio Flamingo Canary 6 包含用于创建项目或模块的新模板。默认情况下,模板使用 Compose Material 3,除非被指定为 Views 模板。我们建议使用 Compose Material 3 模板(例如 Empty Activity)作为创建 Android 应用的最佳实践。要了解更多信息,请参阅Compose Material 3 参考

要查看模板,请从主菜单中依次选择 File > New > New ProjectNew Module,以打开 New ProjectCreate New Module 向导。

New Project wizard

设备镜像

通过将您的设备显示屏直接串流到 Android Studio,最大限度地减少开发时的中断次数。设备镜像使您能够使用 Studio 中的运行中的设备窗口与实体设备进行交互。要启用此功能,请依次选择 File > Settings > Tools > Device Mirroring,然后勾选 Enable mirroring of physical Android devices 旁边的复选框。启用后,连接您的设备并部署您的应用或打开运行中的设备窗口,即可开始串流设备显示屏并从 IDE 进行交互。

要开始使用,请确保您已连接到设备。您连接到的所有设备都会在运行中的设备窗口的标签页中镜像显示,您可以通过依次导航到 View > Tool Windows > Running Devices 打开该窗口。当您将应用或测试部署到连接的设备时,运行中的设备窗口会自动显示镜像的设备。

Running Devices UI

隐私声明

如果设备镜像已启用,Android Studio 会自动为任何已连接和已配对的设备启动设备镜像。对于使用 adb tcpip 命令连接的设备,这可能会导致信息泄露,因为镜像信息和命令通过非加密通道传输。此外,Android Studio 使用非加密通道与 adb 服务器通信,因此您的主机上的其他用户可能会拦截镜像信息。

网络检查器流量拦截

从 Android Studio Flamingo Canary 1 开始,网络检查器默认显示整个时间轴的所有流量数据。您可以在时间轴中选择一个范围,以仅查看该范围内的流量。

您还可以创建和管理规则,帮助测试应用在遇到不同响应(例如状态码、响应头和响应体)时的行为。这些规则决定了要拦截哪些响应以及如何在响应到达应用之前修改这些响应。您可以通过勾选每条规则旁边的 Active 复选框来选择启用或禁用哪些规则。规则在每次修改时都会自动保存。

Network Inspector Rules and Rule Details panes

要开始使用,请导航到网络检查器中的规则标签页,然后点击 + 创建新规则。在规则详情面板中,为您创建的新规则命名,并在来源子部分下包含有关您要拦截的响应来源的信息。规则表中的 URL 应根据您对响应来源所做的更改进行更新。此子部分中的所有字段都是可选的。

Origin subsection in the Rules section

响应子部分中,您可以在响应发送到应用之前修改响应。例如,您可以将规则设置为对具有特定状态码的响应执行,并修改该状态码。

Response subsection in the Rules section

修改请求头

请求头规则子部分中,您可以创建多条子规则,用于添加或修改响应中的请求头。创建多条请求头规则后,使用规则表顶部的向上和向下箭头 更改请求头规则的顺序。顺序会影响修改后的响应的请求头,因为请求头规则会按照列表中列出的顺序应用。

要开始使用,请点击请求头规则部分中的 +

要添加请求头,请在添加新请求头部分输入请求头的名称和值。

Add a new header tab

要修改请求头,请导航到修改现有请求头标签页,然后指定您要查找的请求头名称或值。输入您要用来替换的请求头名称或值。

Edit existing header tab

修改响应体

您还可以创建子规则来修改响应体。您可以选择查找并替换正文中的某个部分,该操作会替换正文中的第一个实例;或者,您可以选择通过选择替换整个正文来替换正文的全部内容。

请求头规则类似,您可以创建多条正文规则,这些规则按照它们在表中列出的顺序应用。

布局检查器自动连接到前台进程

布局检查器现在会自动连接到虚拟或实体设备上的应用。具体而言,布局检查器会自动连接到在连接的设备前台运行的可调试进程。如果您对此功能有反馈,请提交 bug

应用质量洞察更新

Android Studio Flamingo Canary 5 及更高版本引入了多项新的应用质量洞察功能,可帮助您专注于高优先级问题并与开发团队协作。

App Quality Insights with device filter open.

为帮助您识别最重要的问题,您现在可以按以下属性进行过滤。每个过滤器都按事件数量排序,以便您查看大多数事件发生的位置。

  • Android 平台版本
  • 设备品牌和型号
  • Crashlytics 信号:信号图标也会显示在问题面板中相关问题的旁边,以便您并排查看计数和信号。当问题在过去已关闭并再次出现在新版应用中时,则被视为回归问题

    Crashlytics Signal filter.

  • 应用版本:此过滤器现在包含一个更高级别的 Play 分发渠道过滤器,您可以使用它自动选择生产、开放、封闭和/或内部测试分发渠道中的版本。

此外,具有许多选项的过滤器现在支持搜索,因此您可以更快地自定义视图,无需滚动浏览所有菜单选项。

直接从 Android Studio 注释和关闭问题

为了让您更轻松地与团队成员协作,您现在可以直接在应用质量洞察工具窗口中执行以下操作

  • 关闭问题。要关闭问题,请点击主堆栈跟踪面板中的关闭按钮。最近关闭的问题会在问题面板中以删除线显示。您可以再次点击该按钮重新打开最近关闭的问题。但是,刷新应用质量洞察工具窗口后,关闭的问题将不再可见。

  • 阅读并向问题附加备注,以便在 Firebase 控制台和您的团队成员中可见。要就某个问题撰写备注,请选择该问题并打开备注面板。您必须拥有 Crashlytics 项目的写入权限才能撰写备注。有备注的问题会在问题面板中显示一个“备注”图标

如果您刚接触应用质量洞察并想了解更多信息,请参阅之前的版本说明

离线时进行有限的功能调查

从 Android Studio Flamingo Canary 8 开始,您可以在离线状态下在应用质量洞察工具窗口中执行某些操作。如果您发出新请求(例如点击刷新),并且 Android Studio 无法与 Crashlytics 通信,应用质量洞察窗口将允许您进入离线模式

App Quality Insights offers offline mode.

在此模式下,您可以继续调查问题并从缓存数据中查看最新事件。某些功能不可用,例如更改一些过滤选项或关闭问题。要重试连接到 Crashlytics 并返回在线状态,请点击重新连接

App Quality Insights reconnect option in offline mode.

一键自动化可剖析构建和运行

Android Studio Flamingo 和 AGP 7.3 引入了一键自动化可剖析构建,这使得配置可剖析应用并对其进行剖析变得更加容易。此功能需要运行 API 级别 29 或更高版本的虚拟或实体测试设备。要使用该功能,请点击 Profile app 图标 旁边的箭头,然后选择以下两个选项之一

One-click profileable build menu.

  • 以低开销剖析“app” 启动 CPU 和内存分析器。在内存分析器中,仅启用记录原生分配

    Profiling with low overhead.
  • 以完整数据剖析“app” 启动 CPU、内存和耗电量分析器。

    Profiling with complete data.

要详细了解如何以最小性能开销测试应用,请参阅可剖析应用

Lint 支持 SDK 扩展

Android Studio Flamingo 为 SDK 扩展提供 lint 支持。此功能允许您更新 lint 工具的 API 检查,以在存在 API 回溯移植以及针对新的 API 表面(例如 Android Privacy Sandbox)时正确强制执行 API 访问。

lint 工具的 API 检查可确保您的代码仅使用由 minSdkVersionSDK_INT 检查限制的可用 API。通过 SDK 扩展,一个 API 可以存在于多个 SDK 中。例如,在 Android U 中引入的 API 也可以添加到 Android R、S 和 T 回溯移植扩展中。此外,应用可以使用其清单指定所需的多个 API,并且有新的 API 用于检查各个扩展是否可用。lint 工具现在处理逻辑以检查所需内容与已知存在内容之间的重叠。

最后,有一些与 API 检查相关的 Studio IDE 功能。此功能现在可以处理新 API 表面的 API 违规行为,执行必要的检查,并注册快速修复,每个可用的 API 表面一个。

IntelliJ IDEA 2022.2 平台更新

Android Studio Flamingo Canary 1 包含 IntelliJ IDEA 2022.2 更新,这提升了 IDE 体验。有关更改的详细信息,请参阅 IntelliJ IDEA 2022.2 版本说明

Android Studio 捆绑了 JDK 17

从 Android Studio Flamingo Canary 3 开始,Studio IDE 捆绑了 JDK 17。如果 Android Studio 配置为使用嵌入式 JDK,新项目将使用最新稳定版本的 Android Gradle 插件和 JDK 17。但是,现有项目可能会出现问题,您可能需要手动将 JDK 设置为兼容版本。

要了解更多信息,请参阅设置 JDK 版本