Android Studio 4.1(2020 年 8 月)

Android Studio 4.1 是一个主要版本,包含各种新功能和改进。

4.1.3(2021 年 3 月)

本次要更新包含多项 bug 修复。如需查看重要 bug 修复列表,请参阅版本更新博客上的相关博文。

4.1.2(2021 年 1 月)

<p>
  This minor update includes various bug fixes.
  To see a list of notable bug fixes, read the related post on the
  <a href="https://androidstudio.googleblog.com/2021/01/android-studio-412-available.html">
    Release Updates blog</a>.
</p>
<p><b>4.1.1 (November 2020)</b></p>

<p>
  This minor update includes various bug fixes.
  To see a list of notable bug fixes, read the related post on the
  <a href="https://androidstudio.googleblog.com/2020/11/android-studio-411-available.html">
    Release Updates blog</a>.
</p>

新的 Database Inspector

使用新的 Database Inspector 可以检查、查询和修改正在运行的应用中的数据库。如需开始使用,请将您的应用部署到搭载 API 级别 26 或更高级别的设备中,然后从菜单栏中依次选择 View > Tool Windows > Database Inspector

如需了解详情,请参阅使用 Database Inspector 调试数据库

直接在 Android Studio 中运行 Android 模拟器

现在,您可以直接在 Android Studio 中运行 Android 模拟器。使用此功能可节省屏幕空间、可利用热键在模拟器窗口和编辑器窗口之间快速导航,并可在一个应用窗口中集中管理 IDE 和模拟器工作流。

在 Android Studio 的工具窗口中启动的模拟器。

如需了解详情,请参阅 Android 模拟器文档

使用 TensorFlow Lite 模型

借助机器学习模型绑定,您可以轻松地直接导入 .tflite 模型文件并在项目中使用这些模型文件。Android Studio 会生成易于使用的类,这样您就可以使用更少的代码运行模型并获得更佳的类型安全。

支持的模型

机器学习模型绑定的当前实现支持图像分类和风格迁移模型,前提是这些模型通过元数据得到了增强。随着时间的推移,支持范围将扩展到其他问题领域,例如对象检测、图像分割和文本分类。

TensorFlow Hub 上提供了丰富的包含元数据的预训练模型。您还可以自己向 TensorFlow Lite 模型添加元数据,如向 TensorFlow Lite 模型添加元数据中所述。

导入模型文件

如需导入支持的模型文件,请按以下步骤操作:

  1. 在“File”菜单中,依次选择 File > New > Other > TensorFlow Lite Model,打开 TensorFlow Lite 模型导入对话框。
  2. 选择您之前下载或创建的 .tflite 模型文件。
  3. 点击 Finish

这会将模型文件导入您的项目中,并将其放入 ml/ 文件夹中;如果该目录不存在,Android Studio 将为您创建该目录。

导入 TensorFlow Lite 模型

查看模型元数据和使用情况

如需查看所导入模型的详细信息并获取有关如何在应用中使用该模型的说明,请双击项目中的模型文件以打开模型查看器页面,该页面显示以下信息:

  • Model:模型的简要说明
  • Tensors:输入和输出张量的说明
  • Sample Code:有关如何在应用中与模型交互的示例

下面是一个使用 mobilenet_v1_0.25_160_quantized.tflite 的示例:

如示例所示,Android Studio 创建了一个名为 MobilenetV1025160Quantized 的类,用于与模型进行交互。

如果模型不含元数据,此屏幕将仅提供基本信息。

已知问题与解决方法

  • 目前对除图像分类和风格迁移之外的其他问题领域的 TensorFlow Lite 模型的支持有限。虽然导入应该可以正常运行,但某些模型输入和/或输出由 TensorBuffer 而非友好类型表示。对于不含任何元数据的模型,所有模型输入和输出都将是 TensorBuffer。
  • 不支持输入和输出数据类型不为 DataType.UINT8DataType.FLOAT32 的模型。

此功能仍在开发中,欢迎您提供反馈或报告错误

原生内存分析器

Android Studio 内存性能分析器现在包含一个原生内存性能分析器,用于分析部署到搭载 Android 10 或更高版本的物理设备的应用。借助原生内存性能分析器,您可以通过原生代码记录内存分配和释放情况,并查看原生对象的累计统计信息。

原生内存分析器中的记录

如需详细了解原生内存性能分析器,请参阅使用内存性能分析器查看应用的内存使用情况

已知问题与解决方法

Android Studio 4.1 中的原生内存性能分析器在 Android 11 设备上无法工作。目前,4.2 预览版支持对 Android 11 设备进行性能剖析

自最初的 4.1 版本起,在应用启动时进行性能剖析的功能已停用。此选项会在即将发布的版本中启用。

若要解决此问题,您可以使用 Perfetto 独立命令行性能剖析器来捕获启动配置文件。

System Trace 界面:更简单的选择功能、全新的分析标签页以及更多帧渲染数据

Android Studio 性能剖析器中的 System Trace 界面包含以下改进:

  • 边框选择:在 Threads 部分中,现在您可以拖动鼠标选出一个矩形区域,然后可以点击区域右上角的 Zoom to Selection 性能分析器的“Zoom to Selection”按钮 按钮(或使用键盘快捷键 M)放大选中区域。当您将相似的线程拖放到一起时,可以选择多个线程以同时检查所有这些线程。例如,您可能需要分析多个工作器线程。

  • “Summary”标签页Analysis 面板中新增的 Summary 标签页显示以下内容:

    • 特定事件所有发生实例的汇总统计信息,例如发生次数和最短/最长持续时间。

    • 所选发生实例的跟踪事件统计信息。

    • 有关线程状态分布的数据。

    • 所选跟踪事件中运行时间最长的发生实例。

    如需转到其他发生实例,请从表格中选择其他行。

  • 显示数据:在 Display 部分,新增的 SurfaceFlingerVSYNC 时间轴可以帮助您调查应用界面中的渲染问题。

如需了解有关如何记录系统跟踪数据的基本说明,请参阅使用 CPU 性能剖析器检查 CPU 活动记录跟踪数据部分。

现在可以使用独立性能剖析器

借助新的独立性能剖析器,现在您无需运行完整的 Android Studio IDE 即可剖析应用的性能。

如需了解如何使用独立性能剖析器,请参阅运行独立性能剖析器

Dagger 导航支持

用于转到 Dagger 使用方和提供方的 IDE 边线操作

Android Studio 提供了新的边线操作,并扩展了 Find Usages 窗口中的支持,让您可以更轻松地浏览与 Dagger 相关的代码。

  • 新的边线操作:对于使用 Dagger 的项目,IDE 提供了边线操作,以帮助您浏览使用 Dagger 注释的代码。例如,点击使用给定类型的方法旁边的 边线操作会将您转到该类型的提供方。相反,点击 边线操作会将您转到类型被用作依赖项的位置。

  • “Find Usages”节点:现在,在给定类型的提供方上调用 Find Usages 时,Find 窗口会包含一个 Dependency consumer(s) 节点,列出该类型的使用方。相反,在由 Dagger 注入的依赖项的使用方上调用此操作时,Find 窗口会显示该依赖项的提供方。

Material Design 组件:在新项目模板中更新了主题和样式

动画:在 Android Studio 中使用新的 Material Design 属性创建项目。

Create New Project 对话框中的 Android Studio 模板现在使用 Material Design 组件 (MDC),并默认遵循更新后的主题和样式指南。更新包括:

  • MDC:项目依赖于 build.gradle 中的 com.google.android.material:material。基本应用主题使用 Theme.MaterialComponents.* 父级并替换了更新后的 MDC 颜色和“on”属性。

  • 颜色资源colors.xml 中的颜色资源使用字面名称(例如,使用 purple_500 而不是 colorPrimary)。

  • 主题资源:主题资源位于 themes.xml(而非 styles.xml)中,使用 Theme.<var><var> 名称。

  • 深色主题:基本应用主题使用 DayNight 父级,拆分为 res/valuesres/values-night

  • 主题属性:颜色资源在布局和样式中以主题属性(例如 ?attr/colorPrimary)的形式引用,以避免硬编码颜色。

IntelliJ IDEA 2020.1

核心 Android Studio IDE 已通过 IntelliJ IDEA 2020.1 版本进行了更新,增加了 IntelliJ IDEA 中的相关改进,其中包括新的 Commit 窗口(支持版本控制操作)以及新的 Zen 模式(可通过依次选择 View > Appearance > Enter Distraction Free Mode 进行切换)。

如需详细了解版本 2020.1 中的改进,请参阅 IDEA 2020.1

IDE 配置目录更改

用户配置目录的位置已更改为以下位置:

Windows

语法:%APPDATA%\Google&lt;product><version>

示例:C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudio4.1

macOS

语法:~/Library/Application Support/Google/<product><version>

示例:~/Library/Application Support/Google/AndroidStudio4.1

Linux

语法:~/.config/Google/<product><version>

示例:~/.config/Google/AndroidStudio4.1

这些新的目录位置与 IntelliJ IDEA 的最新更新一致(IntelliJ IDEA 是 Android Studio 所基于的 IDE)。

如果 Studio 在升级后没有重启,可能需要删除以前的 Studio 版本中的该配置目录。如需了解详情,请参阅已知问题页面。

Kotlin 1.3.72

Android Studio 4.1 捆绑了 Kotlin 1.3.72,该版本包含许多修复,可以改进 Kotlin 的突出显示、检查和代码补全功能。如需了解详情,请查看 1.3.72 Kotlin 更新日志

自定义视图预览

创建自定义视图时(例如,通过扩展 ViewButton 类来创建),Android Studio 现在会显示自定义视图的预览。使用工具栏中的下拉菜单可在多个自定义视图之间切换,也可以点击按钮以垂直或水平方式封装内容。

在 Android Studio 中预览自定义视图。

注意:如果在预览中没看到所做更改,请从菜单栏中依次选择 Build > Make Project

原生代码崩溃报告的符号化解析

当原生代码中发生崩溃或 ANR 时,系统会生成堆栈轨迹,这是您的程序在崩溃之前调用过的嵌套函数序列的快照。这些快照可帮助您找出并修正源代码中的任何问题,但必须先对其进行符号化解析,以将机器地址转换回简单易懂的函数名称。

如果您的应用或游戏是使用原生代码(如 C++)开发的,那么您现在可以针对应用的每个版本向 Play 管理中心上传调试符号文件。Play 管理中心会使用这些调试符号文件对应用的堆栈轨迹进行符号化解析,以便您更轻松地分析崩溃和 ANR。如需了解如何上传调试符号文件,请参阅原生代码崩溃支持

Apply Changes

为了帮助您提高迭代应用时的效率,我们针对搭载 Android 11 开发者预览版 3 或更高版本的设备推出了以下 Apply Changes 增强功能:

部署速度更快

我们投入了大量资源,开发了一种无需安装应用即可在设备上部署和保留更改的方法,以优化您的迭代速度。 现在,完成初始部署后,使用 Apply Code Changes 图标 Apply Code Changes 图标Apply Changes and Restart Activity 图标 “Apply Changes and Restart Activity”图标 对 Android 11 设备进行后续部署的速度显著加快。

如需详细了解这两项操作之间的区别,请参阅 Apply Changes

支持其他代码更改

现在,对于搭载 Android 11 开发者预览版 3 或更高版本的设备,您可以添加各种方法,然后点击 Apply Code Changes 图标 Apply Code Changes 图标Apply Changes and Restart Activity 图标 “Apply Changes and Restart Activity”图标 将这些更改部署到正在运行的应用。