Android Studio 4.1 (2020 年 8 月)

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

4.1.3 (2021 年 3 月)

此小更新包含各种错误修复。要查看重要错误修复的列表,请阅读 版本更新博客 上的相关文章。

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>

新的数据库检查器

使用新的**数据库检查器**检查、查询和修改正在运行的应用中的数据库。要开始使用,请将您的应用部署到运行 API 级别 26 或更高版本的设备,然后从菜单栏中选择**查看 > 工具窗口 > 数据库检查器**。

要了解更多信息,请参阅 使用数据库检查器调试数据库

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

您现在可以直接在 Android Studio 中运行 Android 模拟器。使用此功能可以节省屏幕空间,使用热键在模拟器和编辑器窗口之间快速导航,并在单个应用程序窗口中组织您的 IDE 和模拟器工作流程。

The emulator launching in a tool window in Android Studio.

要了解更多信息,请参阅 Android 模拟器文档

使用 TensorFlow Lite 模型

ML 模型绑定使您可以轻松直接导入.tflite模型文件并在您的项目中使用它们。Android Studio 会生成易于使用的类,因此您可以使用更少的代码和更好的类型安全性来运行您的模型。

支持的模型

ML 模型绑定的当前实现支持图像分类和样式转换模型,前提是它们已使用元数据进行了增强。随着时间的推移,支持将扩展到其他问题领域,例如对象检测、图像分割和文本分类。

TensorFlow Hub 上提供了大量带有元数据的预训练模型。您也可以自己向 TensorFlow Lite 模型添加元数据,如 向 TensorFlow Lite 模型添加元数据 中所述。

导入模型文件

要导入受支持的模型文件,请按照以下步骤操作

  1. 在文件菜单中打开 TensorFlow Lite 模型导入对话框,方法是:**文件 > 新建 > 其他 > TensorFlow Lite 模型**。
  2. 选择您之前下载或创建的.tflite模型文件。
  3. 点击**完成**。

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

Import a TensorFlow Lite model

查看模型元数据和用法

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

  • 模型:模型的高级描述
  • 张量:输入和输出张量的描述
  • 示例代码:如何在您的应用中与模型交互的示例

这是一个使用 mobilenet_v1_0.25_160_quantized.tflite 的示例

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

如果模型没有 元数据,此屏幕只会提供最少的信息。

已知问题和解决方法

  • 目前对图像分类和样式转换以外的问题领域的 TensorFlow Lite 模型的支持有限。虽然导入应该可以正常工作,但某些模型输入和/或输出由 TensorBuffers 而不是友好的类型表示。对于没有任何元数据的模型,所有模型输入和输出都将是 TensorBuffers。
  • 不支持输入和输出数据类型不同于DataType.UINT8DataType.FLOAT32的模型。

此功能仍在开发中,因此请 提供反馈或报告错误

原生内存分析器

Android Studio内存分析器现在包含一个原生内存分析器,适用于部署到运行Android 10或更高版本的物理设备上的应用。使用原生内存分析器,您可以记录来自原生代码的内存分配和释放,并检查有关原生对象的累积统计信息。

A recording in the Native Memory Profiler

要了解有关原生内存分析器的更多信息,请参阅使用内存分析器检查应用的内存使用情况

已知问题和解决方法

Android Studio 4.1中的原生内存分析器不适用于Android 11设备。目前,在4.2预览版中提供了对分析Android 11设备的支持。

从最初的4.1版本开始,应用启动分析已被禁用。此选项将在即将发布的版本中启用。

作为变通方法,您可以使用Perfetto独立命令行分析器来捕获启动配置文件。

系统跟踪UI:更简单的选择,新的分析选项卡以及更多帧渲染数据

Android Studio分析器中的系统跟踪UI包含以下改进

  • 框选:线程部分,您现在可以使用鼠标拖动来执行矩形区域的框选,您可以通过单击右上角的缩放至选择Profilers zoom to selection button按钮(或使用M键盘快捷键)放大。当您将相似的线程拖放到彼此旁边时,您可以跨多个线程进行选择以同时检查所有线程。例如,您可能希望对多个工作线程执行分析。

  • 摘要选项卡:分析面板中的新摘要选项卡显示

    • 特定事件所有事件的聚合统计信息,例如事件计数和最小/最大持续时间。

    • 所选事件的跟踪事件统计信息。

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

    • 所选跟踪事件的最长运行事件。

    要导航到另一个事件,请从表格中选择另一行。

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

有关如何记录系统跟踪的基本使用方法说明,请参阅记录跟踪部分的使用CPU分析器检查CPU活动

现在提供独立分析器

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

有关使用独立分析器的说明,请参阅运行独立分析器

Dagger导航支持

IDE gutter actions for navigating to Dagger consumers and providers

Android Studio通过提供新的代码行操作和扩展查找用法窗口中的支持,使在与Dagger相关的代码之间导航更加容易。

  • 新的代码行操作:对于使用Dagger的项目,IDE提供了代码行操作,可帮助您在Dagger注释的代码之间导航。例如,单击消耗给定类型的某个方法旁边的代码行操作,将引导您导航到该类型的提供程序。相反,单击代码行操作将引导您导航到将类型用作依赖项的位置。

  • 查找用法节点:当您对给定类型的提供程序调用查找用法时,查找窗口现在包含一个依赖项使用者节点,该节点列出了该类型的使用者。相反,如果对Dagger注入依赖项的使用者调用此操作,则查找窗口会显示该依赖项的提供程序。

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

Animation: Creating a project in Android Studio with new material design properties.

新建项目对话框中的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版本,包括一个新的提交窗口,该窗口支持版本控制操作,以及一个新的Zen模式,可以通过选择查看>外观>进入无干扰模式来切换。

要了解有关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的近期更新一致,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现在会显示自定义视图的预览。使用工具栏中的下拉菜单在多个自定义视图之间切换,或单击按钮以垂直或水平环绕到内容。

Preview custom views in the IDE.

注意:如果在预览中看不到更改,请从菜单栏中选择构建>构建项目

原生崩溃报告的符号化

当原生代码中发生崩溃或ANR时,系统会生成堆栈跟踪,这是在程序崩溃之前调用的嵌套函数序列的快照。这些快照可以帮助您识别和修复源代码中的任何问题,但必须首先对其进行符号化,以将机器地址转换回人类可读的函数名。

如果您的应用或游戏是使用原生代码(如C++)开发的,您现在可以将调试符号文件上传到Play控制台的每个应用版本中。Play控制台使用这些调试符号文件来符号化您的应用的堆栈跟踪,从而更轻松地分析崩溃和ANR。要了解如何上传调试符号文件,请参阅原生崩溃支持

应用更改

为了帮助您在迭代应用时提高效率,我们对运行Android 11开发者预览版3或更高版本的设备的“应用更改”进行了以下增强

更快的部署速度

我们投入大量精力优化您的迭代速度,方法是开发一种无需安装应用程序即可在设备上部署和持久化更改的方法。在初始部署之后,使用应用代码更改Apply Code Changes icon应用更改并重新启动活动Apply Changes and Restart Activity icon将更改部署到Android 11设备的速度现在大大加快了。

要了解这两个操作之间的区别,请参阅应用更改

对其他代码更改的支持

对于运行Android 11开发者预览版3或更高版本的设备,您现在可以添加方法,然后通过单击应用代码更改Apply Code Changes icon应用更改并重新启动活动Apply Changes and Restart Activity icon将这些更改部署到正在运行的应用中。