Android Studio 松鼠 | 2021.2.1 (2022年5月)

以下是 Android Studio 松鼠中的新功能。

支持使用 Jetpack Compose 创建应用

动画预览支持 animatedVisibility

Android Studio 松鼠在动画预览中支持 animatedVisibility API。要将动画预览与 animatedVisibility 一起使用,请使用 Compose 1.1.0 或更高版本。要详细了解动画预览,请参阅 动画

支持从库模块部署预览

预览允许您在 Android Studio 中查看 UI,而无需在物理设备上运行应用。在 Android Studio 松鼠中,您可以从库模块将特定的 @Preview 部署到模拟器或物理设备。要详细了解,请参阅 部署预览

支持分析应用

检测 Android 12 及更高版本上的卡顿

对于使用 Android 12 或更高版本的设备,捕获的跟踪将显示在 CPU 分析器中“显示”窗格下的“卡顿帧”轨迹中。

要检测卡顿,

  1. 从开发模拟器或设备启动应用。
  2. 在 Android Studio 中,选择“查看”>“工具窗口”>“分析器”,或单击工具栏中的“分析”

    如果“选择部署目标”对话框提示您,请选择要部署应用以进行分析的设备。如果您已通过 USB 连接设备但未在列表中看到它,请确保已 启用 USB 调试

  3. 单击“CPU”时间轴中的任意位置以打开 CPU 分析器。

  4. 您应该会看到“显示”下的“卡顿帧”轨迹。默认情况下,分析器仅将卡顿帧显示为调查对象。在每个卡顿帧中,红色部分突出显示帧超过渲染截止时间所花费的持续时间。 卡顿帧轨迹的屏幕截图

  5. 找到卡顿帧后,单击它;或者,您可以按M调整缩放以聚焦于所选帧。相关事件将在主线程中突出显示:RenderThreadGPU 完成分析器显示卡顿帧和主线程的屏幕截图

  6. 您可以选择查看所有帧或渲染时间的细分,方法是分别切换“所有帧”和“生命周期”复选框。 如上所示的分析器屏幕截图,但已选中“所有帧”和“生命周期”复选框

有关更多信息,请参阅 UI 卡顿检测

补丁版本

以下是 Android Studio 松鼠中的补丁版本。

Android Studio 松鼠 | 2021.2.1 Patch 2 (2022年8月)

此小更新包含以下更新和错误修复

Android 平台支持

使用 Android Studio 松鼠 Patch 2 和 Android Gradle 7.2.2,您可以通过设置 compileSdk=33 来针对 Android 13 API 进行编译。最高支持的最低 Sdk 版本为 32。 minSdk = 33 在 Android Gradle 插件 7.3.0-beta05 之前不受支持。

已修复的问题
C++ 调试器
依赖项目中的原生库的发布版本即使在调试构建变体中也会被打包
设计工具
Ctrl + D 或“显示差异”按钮不显示 git diff
Dexer (D8)
记录每个反糖化库版本所需的编译器版本
Gradle
使用导入别名的 Lint UnusedResources 误报
导入/同步
新版本中多个产品变体存在构建问题
缩减器 (R8)
IntSwitch 中出现 ArrayIndexOutOfBoundsException
R8 3.1.7-dev 及以上版本对枚举进行了不正确的优化,导致 NoSuchFieldError
R8 导致 Scala 库出现 VerifyError
Gradle 7.2.0 导致 APK 构建错误 com.android.tools.r8.CompilationFailedException
缩减器中出现 NPE,R8 版本 3.2.60
[R8 3.3.57] 由于接口被具有更高 SDK 要求的抽象类替换,导致 NoClassDefFound
使用 3.3.35 时,FieldAssignmentTracker 中出现 NullPointerException

Android Studio Chipmunk | 2021.2.1 Patch 1 (2022 年 5 月)

此小更新包含以下错误修复

已修复的问题
Dexer (D8)
版本 8 之前的 Art/Dalvik VM 不支持 JDK-8272564 的修复程序
IntelliJ
文件监视器无法在 Ubuntu 20.04 上启动
错过了 MBP 15 英寸 2018 触控栏菜单。
运行
设备选项不可见,即使应用程序模块可用也无法运行应用程序。
缩减器 (R8)
为什么 R8 不向后移植默认接口方法,而 D8 却可以?
循环引用:com.android.tools.r8.internal.R10:转换为基本类型的意外类型:OBJECT