Android Studio Meerkat | 2024.3.1 更新,快来看看有什么新功能吧

又到了认识全新 Android Studio 动物的时候,本次更新的版本是猫鼬

Compose 预览增强

Compose 又又又迎来了新的增强,这次是大家非常关心的 Preview 增强,本次更新处理了:

  • 支持更好的缩放效果,预览的缩放效果更流程和灵敏
  • 预览组可折叠,减少混乱
  • 可以从 Grid mode 切换到 Gallery mode,删除了 List 模式

可以看到现在 Android Studio 基本都没有 XML 传统 View 的支持的更新,基本更新都在 Compose

KMP Shared Module 和 Android 集成

随着 Fleet 不再作为 KMP 的专用框架 , Android Studio 现在可以使用 KMP (Kotlin MultiPlatform) 给 App 添加共享逻辑,前提是:

  • 需要 Android Studio Meerkat 和最新版本的 AGP
  • 使用 Empty Activity 模板创建新的 Android 项目
  • 在 Project 视图下,选择 New ,然后从选项中选择 Kotlin Multiplatform Module ,选择 Shared Module 类型
  • 在 app 目录中的 build.gradle.kts 文件添加对共享模块的依赖项
  • 在共享模块中,编辑 Platform.android.kt 文件并添加 actual fun platform() = "Android from Shared KMP Module"
  • MainActivity.kt 文件将其修改为从共享模块调用 platform() 函数
  • 运行项目

新的设备管理器的 UX

通过 Device Manager 的 + 按钮,然后选择 Create Virtual Device 或 Select Remote Devices ,就可以轻松添加对应设备,现在会有全新的筛选条件和建议:

Gemini 新功能

Android Studio Meerkat 引入了 Gemini 的新功能,要使用这些功能,需要在当前项目中启用与 Gemini 共享代码上下文:

  • 比如分析错误报告
  • 创建测试用例

你别说,以上两个场景使用 AI 是再合适不过了。

Feature Drop | 2024.3.2

Feature Drop 属于接下来要发布的功能版本,目前还是 Canary 。

Gemini 支持多模式图像附件

Meerkat Feature Drop 版本现在可以在 Android Studio 中将图像直接添加到 Gemini ,从而生成相应的代码框架:

另外, Android Studio 中的 Gemini 新增了提示库功能,可以让开发者保存和管理常用的提示,可以在 Settings > Gemini > Prompt Library 访问提示库从而存储和检索 prompt,还可以右键聊天中的 prompt 保存备用。

要应用已保存的 prompt ,可以在 Editor 中右键并导航到 Gemini > Prompt Library 应用:

最后,还可以使用 Gemini 生成 Compose Preview ,这属于 Android Studio 目前的实验性功能,需要在 Compose 代码处右键选择: Gemini > Generate "" Preview 打开,如果当然文件没有预览,可以通过 Gemini > Generate Compose Preview 启用:

AI 生成预览也是一个有趣的方向。

使用备份和恢复进行测试和开发

Android Studio Meerkat Feature Drop 提供了为应用生成备份并将其恢复到其他设备的方法,这对于测试在设备之间或云备份还原应用数据时应用是否按预期运行非常有用,或者在直接使用开发和调试的数据进行设置测试的场景也很有用。

一般情况下,可以将应用 Debug 运行到连接的设备:

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

需要恢复时通过 Run > Edit Configurations 完成选择对应的数据即可:

主题图标

为了帮助开发者在 Android 13 开发者选项中启用 Theme icons,Android Studio Meerkat Feature Drop 现在允许开发者预览使用新主题时查看图标的外观。

为了完全控制图标的外观,开发者需要提供自己的主题图标,并添加自定义 monochromatic layer (res/mipmap-anydpi-v26/ic_launcher.xml):

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
...
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background" />
    <foreground android:drawable="@drawable/ic_launcher_foreground" />
​
    // Starting with Android 13 (API level 33), you can opt-in to providing a
    // <monochrome> drawable.
    <monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>
...

当然,就算你不这样做,仍然可以使用这个新的预览工具去预览图标的外观,并查看颜色和对比度等问题:

有多少人适配过这个?

Android Studio 配置目录更改

从 Meerkat Feature Drop Canary 2 开始,Android Studio 在 Canary、Beta 版和稳定版中使用相同的用户配置,现在 Android Studio会在 config 目录路径中添加了一个 micro 版本,例如使用 AndroidStudio2024.3.2 而不是 AndroidStudio2024.3

可以删除旧配置释放空间。

Android Studio XR 支持

Android Studio Meerkat Feature Drop 开始支持开发人员使用 Jetpack XR 构建支持:

  • XR Template: 使用专为 Jetpack XR 设计的新项目模板进行 XR 开发
  • XR Emulator: 提供 XR 模拟器。
  • Layout Inspector for XR: 在 XR 环境中调试和优化 Compose UI 布局

Compose Preview 屏幕截图测试工具

使用 Compose Preview 屏幕截图测试工具测试 Compose 界面,新工具可直接生成 HTML 报告,从而直观地检测对应用 UI 的任何更改 ,例如

  • 确定要用于屏幕截图测试的多个现有或新可组合项预览。
  • 根据这些可组合项预览生成参考图片。
  • 生成 HTML 报告,用于在更改代码后识别这些预览的更改。
  • 使用 @Preview 参数(例如 uiModefontScale)和多预览功能,帮助扩大测试规模。
  • 使用新的 screenshotTest 源代码集将测试模块化。

详细可见:developer.android.com/studio/prev...

最后

随着 Android Studio 的动物越来越多,Android Studio 动物园也是越来越丰富,除了图片里的这些,过去的还有白狐狸、海豚、电鳗、火烈鸟、长颈鹿、刺猬、花栗鼠等没出镜,但是没关系,未来动物园肯定越来越壮硕,而随着 Fleet 不在支持 KMP ,未来 KMP 肯定会越来越高度集成会 Android Studio 。

那么,少年,开始吃螃蟹了~

相关推荐
sophie旭21 小时前
性能监控之首屏性能监控小实践
前端·javascript·性能优化
Amumu1213821 小时前
React 前端请求
前端·react.js·okhttp
stevenzqzq1 天前
android Initializer 启动入门
android
小雨下雨的雨1 天前
Flutter 框架跨平台鸿蒙开发 —— Center 控件之完美居中之道
flutter·ui·华为·harmonyos·鸿蒙
·云扬·1 天前
系统与MySQL核心监控指标及操作指南
android·数据库·mysql
3824278271 天前
JS表单提交:submit事件的关键技巧与注意事项
前端·javascript·okhttp
Kagol1 天前
深入浅出 TinyEditor 富文本编辑器系列2:快速开始
前端·typescript·开源
小二·1 天前
Python Web 开发进阶实战:Flask-Login 用户认证与权限管理 —— 构建多用户待办事项系统
前端·python·flask
浩瀚之水_csdn1 天前
python字符串解析
前端·数据库·python
全栈小51 天前
【前端】在JavaScript中,=、==和===是三种不同的操作符,用途和含义完全不同,一起瞧瞧
开发语言·前端·javascript