Android Studio Narwhal | 2025.1.1 发布,快来看看有什么更新吧

3,815 阅读8分钟

又到了认识全新动物的时候,这次更新的是 Narwhal (独角鲸),本次更新主要是跟进 IntelliJ IDEA 2025.1 ,后面还会有对应的 Narwhal Feature Drop 的版本,而提到 IntelliJ IDEA 2025.1 ,就不得不说 K2 ,在 IntelliJ IDEA 2025.1 里面,K2 已经是默认选项。

K2 Mode

“K2” 指的是的是 Kotlin 插件包含用于代码分析的 K2 Kotlin 编译器的内部版本,而 K1 模式使用 K1 编译器,IntelliJ IDEA 中内置的 Kotlin 编译器版本完全独立于项目构建文件中指定的版本,但它可能会影响项目中支持的 Kotlin 版本范围:

IntelliJ IDEA 的 K2 模式并不依赖于项目构建设置中指定的 Kotlin 编译器版本,K2 模式代表 IDE 中对 Kotlin 编辑场景支持的几乎完全重写,而使用 K2 编译器可以带来:

  • 高达 94% 的编译速度提升
  • 在初始化阶段的速度提高了 488%
  • 与之前的编译器相比,Kotlin K2 编译器在分析阶段的速度提高了 376%
  • ····

所以基于 K2 编译器能力的 K2 模式,在 Kotlin 代码分析、补全和导航速度方面取得了巨大进步,这体现在全新 IDE 下就是:

  • 提高代码分析的性能(如高亮、补全速度)
  • 更快的查找和跳转
  • 支持 Kotlin 2.0 及以上版本的新语言特性

总结下来就是:

  • K2 编译器是 Kotlin 语言的新一代编译器
  • K2 Mode 是 IntelliJ IDEA 的一种运行模式

K2 Mode 是 IDEA 利用 K2 编译器的前端(解析和语义分析部分)来增强 IDE 的 Kotlin 代码理解能力,但不直接参与项目的实际编译,功能范围仅限于 IDE 的交互体验。

更多可见: IntelliJ IDEA 2025.1 默认 K2 模式

Terminal

JetBrains IDE 的 2025.1 版本开始,重新设计的终端架构将替代原有的设计,而之所以重新设计,只能说上一个更新给自己挖的坑太大:

在上一个版本,为了搞 AI 支持,终端不会让 shell 直接处理行编辑和快捷方式,而是拦截 IDE 中的用户输入(例如击键和提示文本),并且仅在用户按 Enter 时才向 shell 发送命令。

所以为了补救,所以 2025 这次再重构,核心就是兼容性和一致性需要回归第一位,重构的终端进行了进一步调整,继续以 JediTerm 作为核心模拟器通过 IDE 编辑器进行渲染 ,进而回归终端应有的体验。

更多可见:JetBrains Terminal 又发布新架构

Gemini

Android Studio Narwhal 的大量更新都是在 Gemini,虽然国内可能用 Copilot 的比较多,但是现在 Gemini 的体验确实越来越完善,例如:

  • 支持图像和文件附件,在查询栏中输入 @ 即可调出文件补全菜单,然后选择要附加的文件:
  • 使用 Gemini 生成 composables 的预览:

另外大量关于 Gemini 的更新还在 Feature Drop 中等待发布。

Feature Drop

这部分目前还是在 Canary 状态,属于 Feature Drop 更新,不一定完全都会在 Narwhal 正式版推出。

现在所有 Studio 的版本号都开始遵循这样的格式: <IntelliJ 版本年份>.<IntelliJ 主版本>.<Studio 主版本> ,比如这次的 2025.1.1 ,其中初始的动物版本发布将带有 ".1" 的 Android Studio 主版本号,用于引入更新的 IntelliJ 平台版本号,而随后的功能更新将把 Android Studio 的主版本号提升到 ".2",属于 Feature Drop 聚焦于引入更多特定于 Android 的功能

Test Journey

Journeys for Android Studio ,在 Android Studio 的 Project 面板,右键选择对应的 app module ,选择 New > Test > Journey File ,就可以在出现的对话框中创建:

然后你就可以使用文本字段来描述 Journey 的每个步骤,每个步骤可以包含你希望 Gemini 执行的描述性操作,或希望 Gemini 评估的断言:

Journey 在运行时还会显示一些的结果,例如每个步骤执行过程中的屏幕截图、采取的操作和推理:

更多可见:developer.android.com/studio/prev…

Agent

Android Studio Agent 模式下的 Gemini ,类似 Cursor ,可以处理更复杂的多阶段开发任务:

另外,你还可以在 Android Studio > Settings > Tools > Gemini > Prompt Library > Rules 定义首选的编码风格或输出格式,甚至是首选的技术栈和语言:

IDE 级别的规则属于本地私有,并且可以跨多个项目使用,而项目级规则可以在同一个项目的团队成员之间共享,但必须将 .idea 文件夹添加到版本控制系统。

Suggested Fixes

针对 App Quality Insights 工具窗口中报告的崩溃问题,现在还正式支持 Gemini Insights ,现在 Android Studio 可以使用 Gemini 分析崩溃数据和源码,并同时提出对应的修复建议。

在 App Quality Insights 工具窗口中选择一个崩溃问题后,导航到 Insights 标签页,然后点击 Suggest a fix 提出修复建议 ,Gemini 随后会生成建议的代码更改,用户可以在编辑器的 diff tab 查看并接受:

备份支持

现在可以使用 Google 或 JetBrains 帐户将 Android Studio 设置备份到云存储,例如键盘映射、代码编辑器设置、系统设置等:

等于以后 IDE 的风格和设置,可以通过个人账户在不同机器同步。

XR Emulator

XR 模拟器现在默认通过嵌入状态启动,可以在 Android Studio 中直接部署应用、导航 3D 空间并使用布局检查器:

也就是,Android Studio Narwhal 已经支持开发者使用 Jetpack XR 构建 XR 应用。

Compose 预览改进

首先,新版本改了导航支持,现在点击预览名称就可以直接跳转到预览定义,点击单个组件即可跳转到其定义的函数,并且悬停状态可在预览帧上时提供即时视觉反馈,同时改进的键盘箭头导航简化了在多个预览之间的移动,从而加快了 UI 迭代和优化速度:

另外,Compose Preview picker 也发不了,点击任意 @Preview 代码就可以看到:

除此之外,Compose Preview 现在支持动态调整大小,只要你切换到 Focus 模式:

然后你就可以通过拖动预览窗口的边缘来调整大小,或者使用调整大小工具栏:

另外, Layout Inspector 也进行了增加:

  • 水平滚动 :可以在组件树内水平滚动
  • 选择时自动滚动 :在组件树中选择一个项目时,视图将自动水平和垂直滚动,从而让所选项目整齐地成为焦点
  • 改进的关系可视化 :优化了组件树中的支撑线,提供更清晰的视觉提示,方便理解节点关系,比如虚线现在清晰地指示父节点与其子节点之间的调用堆栈关系,实线继续表示树中所有其他标准的父子关系

16 KB page size

Android Studio 增加了 16 KB 页面大小过渡的支持,现在会在构建 16 KB 设备不兼容的 APK 或 Android App Bundle 时提供主动警告,同时使用 APK 分析器,还可以找出哪些库与 16 KB 设备不兼容:

如果你还想知道,不支持的 so 是来自哪个 aar 的,可以看:《如何查看项目是否支持最新 Android 16K Page Size 一文汇总》

Layout Inspector 里的 Child recomposition

Layout Inspector 现在支持展示 Child 重组计数,即使重组的可组合项在组件树中的父级下折叠,也可以看到相应的重组计数,当看到子组件重组计数增加时,你就可以打开组件树并查找发生重组的位置:

image-20250623132739352

新设置

首先,现在可以使用 Project view 打开新项目, 可以在 File (Android Studio on macOS) > Settings > Advanced Settings > Project View 选择 Set Project view as the default

其次还可以禁用自动同步,可以在打开项目时取消自动运行同步,在 File (Android Studio on macOS) > Settings > Build, Execution, Deployment > Build Tools 路径,通过 Project Sync mode 进行修改:

这样就可以避免在打开 AS 时,因为同时打开多个项目而造成卡顿。

Play Policy

从 Android Studio Narwhal 功能发布开始,用户可以将 Play Policy Insights 视为 Lint 检查,这些 Lint 检查将显示以下信息:

  • 政策的概述
  • 需要做的和不应做的事情
  • 链接到 Play 政策页面

可以通过 Code > Inspect for Play Policy Insights 查看你的项目里需要处理的问题:

Android Device Streaming

Partner Device Labs 是 Google OEM 合作伙伴运营的设备实验室,例如 三星、小米、OPPO、OnePlus、vivo 等,在此基础上扩大 Android 设备串流中可用设备的选择范围,可以通过在 Device Manager 选择 **+ > Select Remote Devices 打开:

image-20250623134334191

如果你选择的 Firebase 项目未启用所需的合作伙伴实验室,Android Studio 会通知启用所选的合作伙伴实验室:

而为了让串流服务更实用,Android Studio Narwhal 还提供了为应用生成备份,并将其恢复到其他设备的方法,具体可以:

  • Running Device 窗口,单击工具栏中的 Backup App Data
  • 从主菜单栏中选择 Run > Backup App Data
  • Device Explorer > Processes 中,右键对应 App 进程并选择 Backup App Data

然后就可以根据需求进行备份,备份成功可以在 Project > Android 工具窗口的 Backup Files 节点下查看生成的备份:

同样的,可以在以下场景对数据进行恢复:

  • Running Device 窗口,点击 Restore App Data 操作,然后选择最近的历史记录或点击 Browse
  • 从主菜单栏导航到 Run > Restore App Data
  • Device Explorer > Processes 选项,右键点击 App 进程并选择 Restore App Data

甚至你还可以配置到 Run > Edit Configurations

参考链接