以下是 Android Studio Flamingo 中的新功能。
补丁版本
以下是 Android Studio Flamingo 中的补丁版本列表。
Android Studio Flamingo | 2022.2.1 补丁 2(2023 年 5 月)
本次要更新包含这些 bug 修复。
Android Studio Flamingo | 2022.2.1 补丁 1(2023 年 5 月)
本次要更新包含这些 Android Gradle 插件 bug 修复。
带主题的应用图标和动态配色
在 Material 3 中引入动态配色、在 Android 13 中引入带主题的应用图标后,您现在可以在创建布局和启动器图标时调节色调,让布局和图标继承用户所选壁纸的配色。从 Android Studio Flamingo Beta 1 开始,您可以使用此功能。
支持预览带主题的应用图标
对于 launcher.xml
文件,您现在可以在工具栏中使用新的 System UI Mode 选择器来切换壁纸,并在使用不同用户所选壁纸时查看带主题的应用图标的显示效果。
动态配色预览
对于 Compose 预览:我们在可组合项预览注解中添加了一个新属性 wallpaper
。如果您已在应用中启用动态配色,则可以使用这个新属性切换壁纸,并在使用不同的用户所选壁纸时查看界面的显示效果。如需使用此功能,您必须使用 Compose 1.4.0-alpha03 或更高版本。
对于 Android XML:如果您已在应用中启用动态配色,现在可以在工具栏中使用新的 System UI Mode 选择器切换壁纸,并在使用不同用户所选壁纸时查看布局的显示效果。请注意,您必须先选择将主题更改为 Material 动态配色主题,然后再更改壁纸。
实时编辑功能更新
实时编辑现在有两种模式:手动和自动。在手动模式下,所做的代码更改会在您每次使用 Ctrl
+ S
(在 macOS 上,则使用 Command
+ S
)手动保存时应用。在自动模式下,当您更新可组合函数时,所做的更改会即时应用到设备或模拟器中。如需选择运行实时编辑的模式,请从菜单栏中依次选择 File > Settings(在 macOS 上,则依次选择 Android Studio > Preferences),依次点击 Editor > Live Edit,然后勾选 Push Edits Manually 或 Push Edits Automatically 复选框。
Compose Tracing 功能
系统跟踪实用程序是一款 Android 工具,可将设备活动记录保存到跟踪文件,该文件可提供给定时间段内应用系统进程的整体情况。从 Android Studio Flamingo 开始,您可以使用 Compose Tracing 功能在 System Trace 性能分析器中查看 Compose 函数。 Compose Tracing 可让您获享系统跟踪的低干扰,并获得有关组合的方法跟踪级详细信息,有助于您了解哪些 Compose 函数实际上正在重组。
如需开始使用重组跟踪,您需要至少更新到以下版本:
- 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 性能分析器。将应用转到您要跟踪的界面,然后选择 System Trace 和 Record。记录时,请使用您的应用发起重组。停止记录和跟踪进程后,您可以直接在 Threads 时间轴中看到重组轨迹中的 Compose 函数。您还可以从 Analysis 窗格的 Flame Chart、Top Down、Bottom Up 和 Events 标签页中查看 Compose 函数。
这是一项正在开发中的实验性功能,我们欢迎您提供反馈。如需了解详情,请参阅 Compose tracing。
项目模板更新
Android Studio Flamingo Canary 6 添加了用于创建项目或模块的新模板。默认情况下,模板使用 Compose Material 3,但被指定为 View 模板的情况除外。我们建议最好使用 Compose Material 3 模板(例如 Empty Activity)来创建 Android 应用。如需了解详情,请参阅 Compose Material 3 参考文档。
如需查看模板,请从主菜单中依次选择 File > New > New Project 或 New Module,然后打开 New Project 或 Create New Module 向导。
设备镜像
通过将设备显示屏上的内容直接流式传输到 Android Studio,可最大限度地减少开发过程中发生间断的次数。借助设备镜像,您可以通过 Studio 中的 Running Devices 窗口与实体设备进行交互。如要启用此功能,请依次前往 File > Settings > Tools > Device Mirroring,然后选中 Enable mirroring of physical Android devices 旁边的复选框。启用此功能后,请连接您的设备并部署应用,或打开 Running Devices 窗口,以开始流式传输设备显示屏上的内容,并通过 IDE 与之交互。
首先,请确保您已连接到设备。您连接的所有设备都会镜像到 Running Devices 窗口中的标签页中,您可以依次前往 View > Tool Windows > Running Devices 打开这些设备。将应用或测试部署到连接的设备后,Running Devices 窗口会自动出现并显示镜像的设备。
隐私权声明
如果启用了设备镜像,Android Studio 会自动为任何已连接的设备和配对的设备启动设备镜像。这可能会导致连接的设备因 adb tcpip
命令而出现信息披露,因为镜像信息和命令是通过未加密通道传递的。此外,Android Studio 会使用未加密的通道与 adb 服务器通信,因此主机上的其他用户可能会拦截镜像信息。
Network Inspector 流量拦截
从 Android Studio Flamingo Canary 1 开始,默认情况下,Network Inspector 会显示完整时间轴的所有流量数据。您可以选择时间轴中的某个范围,以便仅查看该范围内的流量。
您还可以创建和管理规则,以帮助测试应用在遇到不同响应(例如状态代码、响应标头和正文)时的行为方式。这些规则可确定要拦截哪些响应,以及如何在响应到达应用之前修改这些响应。您可以通过勾选各条规则旁边的 Active 复选框来选择要启用或停用的规则。每次修改规则时,系统会自动保存规则。
如需新建规则,请前往 Network Inspector 中的 Rules 标签页,然后点击 + 以创建新规则。在 Rule Details 面板中为新规则命名,并在 Origin 子部分下添加要拦截的响应的来源信息。Rules 表中的网址应该会根据您对响应来源所做的更改进行更新。该子部分中的所有字段均为选填字段。
在 Response 子部分中,您可以在响应被发送到应用之前修改响应。例如,您可以将规则设置为对具有特定状态代码的响应执行规则并修改相应状态代码。
修改标头
在 Header rules 子部分,您可以创建多条子规则,用于在响应中添加或修改标头。创建多个标头规则时,请使用 Rules 表顶部的向上箭头和向下箭头 来更改标头规则的顺序。该顺序会影响修改后的响应标头,因为系统会按照表中列出的顺序应用标头规则。
如需添加标头规则,请在 Header rules 部分中点击 +。
如需添加标头,请在 Add new header 部分中输入标头名称和标头值。
如需修改标头,请前往 Edit existing header 标签页,然后指定您要查找的标头名称或标头值。输入替换后的标头名称或标头值。
修改响应正文
您还可以创建子规则来修改响应正文。您可以选择“Find and Replace”以查找并替换正文的某一部分,该操作将替换正文中的第一个实例;或者,您也可以选择 Replace entire body 以替换全部正文内容。
与标头规则类似,您也可以创建多个正文规则,并按照它们在表中列出的顺序应用这些规则。
在布局检查器中自动连接到前台进程
布局检查器现在会自动连接到虚拟或实体设备上的应用。具体而言,布局检查器会自动连接到在已连接设备的前台运行的可调试进程。如果您对此功能有任何反馈意见,请提交 bug。
App Quality Insights 更新
Android Studio Flamingo Canary 5 及更高版本引入了多项 App Quality Insights 新功能,有助于您重点关注高优先级问题并与开发团队开展协作。
新的过滤器和过滤器搜索功能
为帮助您发现最重要的问题,您现在可以按以下属性进行过滤。每个过滤器都会按事件数量排序,这样您就能知道哪个过滤中发生的事件最多。
- Android 平台版本
- 设备品牌和型号
Crashlytics Signal:Issues 面板中的相关问题旁边也会显示信号图标,以便您并排查看数量和信号。如果某个问题在过去已关闭,并再次出现在新版应用中,则会被视为“回归”问题。
应用版本:此过滤条器现在包含更高级别的 Play 轨道过滤器,您可使用该过滤器自动选择正式版轨道、开放式测试轨道、封闭式测试轨道和/或内部测试轨道。
此外,您现在可以搜索包含各种选项的过滤器,以便您更快地自定义视图,而无需滚动浏览所有菜单选项。
直接从 Android Studio 为问题添加注解和关闭问题
为了让您更轻松地与团队成员协作,您现在可以直接在 App Quality Insights 工具窗口中执行以下操作:
关闭问题。如需关闭问题,请点击堆栈轨迹主面板中的 Close 按钮。最近关闭的问题会显示在 Issues 面板中,并带有删除线。再次点击该按钮,即可重新打开最近关闭的问题。不过,一旦刷新 App Quality Insights 工具窗口,已关闭的问题将不再显示在窗口中。
阅读问题备注并将其附加到问题中,以便团队成员能够在 Firebase 控制台中看到这些信息。如需撰写有关问题的备注,请选择相应问题并打开 Notes 面板。您必须拥有对 Crashlytics 项目的写入权限,才能写入备注。包含备注的问题会在 Issues 面板中出现“Notes”图标 。
如果您刚开始接触 App Quality Insights,并且想进一步了解该工具,请参阅早期版本说明。
在离线状态下利用有限功能进行调查
从 Android Studio Flamingo Canary 8 开始,您可以在离线状态下在 App Quality Insights 工具窗口中执行某些操作。如果您发出了新请求(例如点击 Refresh),而 Android Studio 无法与 Crashlytics 通信,则您可以通过 App Quality Insights 窗口进入离线模式。
在这种模式下,您可以继续根据缓存数据调查问题和最新事件。部分功能(如更改某些过滤器或关闭问题)无法使用。如需重新尝试连接到 Crashlytics 并返回到在线状态,请点击 Reconnect。
一键式自动可分析 build 及运行
Android Studio Flamingo 和 AGP 7.3 引入了一键式自动可分析 build,可让您更轻松地配置可分析应用并对其进行性能分析。此功能需要搭载 API 级别 29 或更高级别的虚拟或实体测试设备。如需使用该功能,请点击 Profile app 图标 旁边的箭头,然后从两个选项中进行选择:
Profile 'app' with low overhead 会启动 CPU 性能分析器和内存分析器。在内存分析器中,只有 Record Native Allocations 为启用状态。
Profile 'app' with complete data 会启动 CPU 性能分析器、内存分析器和能耗性能分析器。
如需详细了解如何以最低性能成本测试应用,请参阅可分析应用。
为 SDK 扩展提供 lint 支持
Android Studio Flamingo 为 SDK 扩展提供了 lint 支持。您可以使用此功能更新 lint 工具的 API 检查,以便在 API 向后移植以及在引入新的 API 接口(例如 Android Privacy Sandbox)的情况下正确执行 API 访问。
Lint 工具的 API 检查可确保您的代码仅使用由 minSdkVersion
控制或经 SDK_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 版本说明。
与 JDK 17 捆绑的 Android Studio
从 Android Studio Flamingo Canary 3 开始,Studio IDE 已与 JDK 17 捆绑在一起。如果 Android Studio 配置为使用嵌入式 JDK,则新项目将使用最新的稳定版 Android Gradle 插件和 JDK 17。不过,现有项目可能会中断,并且您可能需要手动将 JDK 设置为兼容的版本。
如需了解详情,请参阅设置 JDK 版本。