Android Studio 预览版中的新功能

本页列出了 Android Studio 预览版中引入的新功能。 预览版 build 可让您抢先体验 Android Studio 中的最新功能和改进。您可以下载这些预览版。如果您在使用 Android Studio 预览版时遇到任何问题,请与我们联系。您的错误报告有助于我们改进 Android Studio。

Canary 版包含正在积极开发中的最新功能,并且经过了小范围测试。虽然您可以使用 Canary build 进行开发,但请注意,功能可能会添加或更改。候选版本 (RC) 是 Android Studio 的下一个版本,几乎已准备好发布稳定版。下一个版本的功能集已稳定。如需了解 Android Studio 版本命名,请参阅 Android Studio 版本名称

如需了解 Android Studio 预览版发布的最新资讯(包括每个预览版中的重要修正的列表),请参阅 Android Studio 博客中的版本更新

当前版本的 Android Studio

下表列出了当前版本的 Android Studio 及其各自的渠道。

版本 频道
Android Studio Narwhal 3 功能更新 | 2025.1.3 稳定版
Android Gradle 插件 8.13.0 稳定版
Android Studio Narwhal 4 功能更新 | 2025.1.4 Canary 版

与 Android Gradle 插件预览版的兼容性

每个 Android Studio 预览版都会随附相应版本的 Android Gradle 插件 (AGP) 一起发布。Studio 的预览版应可与任何兼容的稳定版 AGP 搭配使用。不过,如果您使用的是 AGP 预览版,则必须使用相应的 Studio 预览版(例如,Android Studio Chipmunk Canary 7 与 AGP 7.2.0-alpha07)。尝试使用不同的版本(例如,Android Studio Chipmunk Beta 1 与 AGP 7.2.0-alpha07)会导致同步失败,并提示您更新到相应版本的 AGP。

如需查看废弃和移除的 Android Gradle 插件 API 的详细日志,请参阅 Android Gradle 插件 API 更新

Studio Labs

借助 Studio Labs,您可以在 Android Studio 的稳定版中试用最新的 AI 实验性功能,从而更快地将我们的 AI 辅助功能集成到您的开发工作流程中。如需了解详情,请参阅 Studio Labs

以下是目前在 Studio 实验室中提供的功能。

功能 说明 文档
Compose 预览生成 Gemini 可以自动为特定可组合函数或文件中的所有可组合函数生成 Compose 预览,包括预览参数的模拟数据。 生成 Compose 预览
转换界面 使用自然语言直接从 Compose 预览面板更新应用界面。 转换界面

Android Studio Narwhal 4 功能更新 | 2025.1.4

以下是 Android Studio Narwhal 4 功能更新 | 2025.1.4 中的新功能。

如需了解此版 Android Studio 中已修复的问题,请参阅已解决的问题

Android Studio 学习路线

Android Studio 的 Journeys 可让您使用自然语言来描述每个测试(称为“journey”)的步骤和断言,从而轻松编写和维护端到端测试。通过利用 Gemini 的视觉和推理能力,以自然语言编写的步骤会转换为 Gemini 在您的应用上执行的操作,从而使您能够轻松编写和理解用户历程。此外,您还可以编写和描述更复杂的断言,Gemini 会根据其在设备上看到的内容来评估这些断言,以确定您的测试历程是通过还是失败。

由于 Gemini 会推理出要执行哪些操作才能实现目标,因此即使应用布局或行为发生细微变化,历程也能更可靠地运行,从而在针对不同版本的应用和不同的设备配置运行时,减少测试不稳定的情况。

直接在 Android Studio 中针对任何本地或远程 Android 设备编写和运行历程。IDE 提供全新的编辑器体验,可用于设计历程,还提供丰富的结果,帮助您更好地了解 Gemini 的推理过程以及历程的执行情况。

备份与同步

现在,您可以使用 Google 账号或 JetBrains 账号将 Android Studio 设置备份到云端存储空间。这有助于同步您的设置,例如键映射、代码编辑器设置、系统设置等。如需开始使用,请执行以下操作之一:

  • 在 Android Studio 中打开项目后,点击 IDE 右上角的头像,然后点击登录,登录您的 Google 账号。

    1. 按照随即显示的对话框中的提示操作,并务必勾选相应复选框,以授权 Android Studio 访问您的 Google 账号存储空间
    2. 按照提示为 Android Studio 授权。
  • 依次前往设置 > 备份与同步

    1. 选择 Google,以使用 Google 账号存储空间在不同的 Android Studio 安装之间同步应用数据。或者,您也可以使用 JetBrains 账号在 IntelliJ 和 Android Studio 安装之间同步应用数据。
    2. 按照提示授权 Android Studio 访问首选账号的存储空间后,返回到 Android Studio。
    3. 设置 > 备份与同步页面上,您可以查看要同步到您账号的应用数据类别。
    4. 如需停用“备份与同步”,请取消选中启用该功能的复选框。

如果您已将数据同步到所选设备,Android Studio 会提供以下选项:从远程存储空间下载设置(默认选项),或上传本地设置并覆盖同步到远程存储空间的设置。

针对崩溃问题的建议修复

在 Android Studio Meerkat 功能更新中,我们针对 App Quality Insights 工具窗口中报告的崩溃推出了 Gemini 洞见。现在,Android Studio 可以使用 Gemini 分析崩溃数据和您的源代码,从而建议潜在的修复方案。在 App Quality Insights 工具窗口中选择一个崩溃问题后,前往数据分析标签页,然后在 Gemini 为该崩溃问题生成数据分析后,点击建议修复。然后,Gemini 会生成建议的代码更改,您可以在编辑器差异标签页中查看并接受这些更改。

新增了使用“项目”视图打开新项目的设置

新增了一项设置,可让新项目默认在“项目”视图中打开。 如需启用此设置,请依次前往 File(在 macOS 上,则为 Android Studio> Settings > Advanced Settings > Project View,然后选择 Set Project view as the default

Compose 预览版屏幕截图测试工具

使用 Compose 预览版屏幕截图测试工具测试 Compose 界面并防止出现回归。借助此新工具,您可以生成 HTML 报告,直观地检测应用界面中的任何变化。如需了解详情,请参阅 Compose 预览版屏幕截图测试

嵌入式布局检查器组件树增强功能

借助几项关键改进,现在在嵌入式布局检查器中与组件树互动更加直观高效。 这些更新旨在简化您的工作流程,并让您更清楚地了解 Compose 界面结构。

  1. 横向滚动:您现在可以在组件树中横向滚动,从而更轻松地浏览和检查宽布局或深度嵌套布局,而不会丢失上下文。
  2. 选择时自动滚动:现在,在组件树中选择某个项后,视图会自动水平和垂直滚动,以便将所选内容清晰地显示在焦点位置。这样可确保您感兴趣的元素始终位于中心位置。
  3. 改进了关系可视化:我们改进了组件树中的支持线,以便提供更明确的视觉提示,帮助您了解节点关系。虚线现在可以清晰地指示父节点与其子节点之间的调用堆栈关系,从而帮助您更有效地跟踪程序化连接。实线继续表示树中的所有其他标准父级-子级关系。

这些增强功能旨在提供更顺畅、更高效的调试体验,让您能够快速了解和优化界面。

嵌入式布局检查器中的组件树现在支持横向滚动和选择时的自动滚动。
嵌入式布局检查器组件树增强功能

使用本地 LLM

借助 Android Studio Narwhal 4 功能更新,您可以选择为 IDE 的 AI 功能提供支持的 LLM。

Android Studio Gemini 对话窗口,显示了模型选择器,其中包含 Gemini 和本地 LLM 的选项。
Android Studio 中的模型选择器。

LLM 必须位于本地计算机上,如果您互联网连接受限或对 AI 模型的使用有相关限制,或者您只是想尝试使用开源研究模型,那么这种方式会很有优势。

本地 LLM 可替代 Android Studio 中内置的 LLM 支持。 不过,Android Studio 中的 Gemini 通常可提供最佳 Android 开发体验,因为 Gemini 经过 Android 调整,并且支持 Android Studio 的所有功能。借助 Gemini,您可以为 Android 开发任务选择各种模型,包括免费的默认模型或通过付费 Gemini API 密钥访问的模型。

如需支持本地 LLM,您需要在本地计算机上安装 LLM 提供程序(例如 LM StudioOllama),并选择兼容的模型。

Android SDK 升级助理现在支持 Android 16 / API 36

Android SDK 升级助理中已添加从 Android 15 / API 35 到 Android 16 / API 36 的迁移。如需获取迁移方面的帮助,请依次点击 Tools > Android SDK Upgrade Assistant

Android Gradle 插件 9.0

Android Gradle 插件 9.0 是 AGP 的一个全新主要版本,带来了 API 和行为变更。

如需更新到 Android Gradle 插件 9.0.0-alpha02,请使用 Android Studio Narwhal 4 Feature Drop | 2025.1.4 中的 Android Gradle 插件升级助理

AGP 升级助理有助于在升级项目时尽可能保留现有行为,即使您尚未准备好采用 AGP 9.0 中的所有新默认设置,也可以将项目升级为使用 AGP 9.0。

兼容性

Android Gradle 插件 9.0.0-alpha02 支持的最高 Android API 级别为 API 级别 36。

Android Gradle 插件 9.0.0-alpha02 需要 Gradle 9.0.0

行为变更

Android Gradle 插件 9.0 具有以下新行为:

行为 建议
Android Gradle 插件 9.0 默认使用 NDK 版本 r28c 请考虑明确指定要使用的 NDK 版本。
Android Gradle 插件 9.0 默认要求库的消费者使用相同或更高的编译 SDK 版本。 使用库时,请使用相同或更高的编译 SDK。 如果无法做到这一点,或者您想为所发布库的消费者提供更多时间来切换,请明确设置 AarMetadata.minCompileSdk

AGP 9.0 包含对以下 Gradle 属性默认值的更新。 这样,您就可以选择在升级时保留 AGP 8.13 行为:

属性 功能 从 AGP 8.13 更改为 AGP 9.0 建议
android.uniquePackageNames 强制要求每个库都具有不同的软件包名称。 falsetrue 为项目中的所有库指定唯一的软件包名称。 如果无法实现,您可以在迁移时停用此标志。
android.dependency.useConstraints 控制配置之间依赖项约束的使用。
AGP 9.0 中的默认值为 false,该值仅在应用设备测试 (AndroidTest) 中使用限制。 将此值设置为 true 将恢复为 8.13 版的行为。
truefalse 除非需要,否则不要在所有地方都使用依赖项限制。 接受此标志的新默认值还可以在项目导入过程中启用优化,从而缩短包含多个 Android 库子项目的 build 的导入时间。
aandroid.enableAppCompileTimeRClass 针对非最终 R 类编译应用中的代码,使应用编译与库编译保持一致。
这有助于提高增量性,并为将来对资源处理流程进行性能优化奠定基础。
falsetrue 许多项目只需采用新行为,无需更改源代码。 如果 R 类字段用于需要常量的地方(例如 switch 语句),请重构为使用链式 if 语句。
android.sdk.defaultTargetSdkToCompileSdkIfUnset 使用编译 SDK 版本作为应用和测试中目标 SDK 版本的默认值。
在此变更之前,目标 SDK 版本会默认设置为最低 SDK 版本。
falsetrue 为应用和测试显式指定目标 SDK 版本。
android.onlyEnableUnitTestForTheTestedBuildType 仅为测试的 build 类型创建单元测试组件。
在默认项目中,这会生成一个用于调试的单元测试,而之前的行为是运行用于调试或发布的单元测试。
falsetrue 如果您的项目不需要同时为调试和发布运行测试,则无需进行任何更改。
android.proguard.failOnMissingFiles 如果 AGP DSL 中指定的任何 keep 文件在磁盘上不存在,则构建会因错误而失败。在此变更之前,文件名中的拼写错误会导致文件被静默忽略。 falsetrue 移除所有无效的 ProGuard 文件声明
android.r8.optimizedResourceShrinking 通过同时考虑类和 Android 资源,允许 R8 保留较少的 Android 资源。 falsetrue 如果项目的保留规则已完整设置,则无需进行任何更改。
android.r8.strictFullModeForKeepRules 允许 R8 通过在保留类时不会隐式保留默认构造函数来减少保留的内容。 也就是说,-keep class A 不再意味着 -keep class A { <init>(); }
falsetrue 如果项目的保留规则已完整设置,则无需进行任何更改。

在项目的保留规则中,将 -keep class A 替换为 -keep class A { <init>(); },以保留默认构造函数。
android.defaults.buildfeatures.shaders 在所有子项目中启用着色器编译 truefalse 仅在包含要编译的着色器的子项目中启用着色器编译,方法是在这些项目的 Gradle build 文件中设置以下内容:
android {
  buildFeatures {
    shaders = true
  }
}

已移除的功能

Android Gradle 插件 9.0 移除了以下功能:

更改了 DSL

Android Gradle 插件 9.0 包含以下重大 DSL 变更:

移除了 DSL

Android Gradle 插件 9.0 移除了以下内容:

已移除的 Gradle 属性

以下 Gradle 属性最初添加的目的是为了全局停用默认启用的功能。

自 AGP 8.0 或更低版本以来,这些功能已默认停用。仅在使用这些功能的子项目中启用它们,以提高构建效率。

属性 功能 替换
android.defaults.buildfeatures.aidl 在所有子项目中启用 AIDL 编译 仅在包含 AIDL 源文件的子项目中启用 AIDL 编译,方法是在这些项目的 Gradle build 文件中设置以下属性:
android {
  buildFeatures {
    aidl = true
  }
}
在包含 AIDL 源的每个子项目的 Gradle build 文件中
android.defaults.buildfeatures.renderscript 在所有子项目中启用 RenderScript 编译 仅在包含 renderscript 源的子项目中启用 renderscript 编译,方法是在这些项目的 Gradle build 文件中设置以下属性:
android {
  buildFeatures {
    renderScript = true
  }
}

已移除的 API

Android Gradle 插件 9.0 移除了以下内容:

  • 已废弃并停用的 BaseExtension.registerTransform API,这些 API 仅用于在以 AGP 4.2 或更低版本为目标平台的同时,允许针对最新 AGP 版本进行编译。

强制执行的 Gradle 属性

如果您设置了以下 Gradle 属性,AGP 9.0 会抛出错误。

Android Gradle 插件升级助理不会将使用这些属性的项目升级到 AGP 9.0。

属性 功能
android.r8.integratedResourceShrinking 资源缩减现在始终作为 R8 的一部分运行,之前的实现已被移除。