Android Studio 4.1 发布啦

17,542 阅读9分钟

Android Studio 4.1 主要是包含了各种新功能和改进,其中 Android Gradle 插件也升级为 4.1.0,要了解更多信息请查看完整的 Android Gradle 插件发行说明:developer.android.com/studio/rele…

新数据库检查器

使用新的 Database Inspector 可以在应用运行的过程中检查,查询和修改数据库,当然前提应用所在的设备API Level 需要 26或更高,然后从菜单栏中选择 View > Tool Windows > Database Inspector

要了解更多信息,请参阅使用数据库检查器调试数据库:developer.android.com/studio/insp…

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

现在用户可以直接在 Android Studio 运行 Android 模拟器,该功能可以帮助开发者节省屏幕空间,使用快捷按键可以在模拟器和编辑器窗口之间快速导航,可以在一个窗口中查看模拟器和代码布局。

要了解更多信息,请参阅 Android Emulator文档:developer.android.com/studio/run/…

使用TensorFlow Lite模型

ML模型绑定可以让开发者更轻松地在项目直接导入.tflite 模型,然后 Android Studio 会生成易于使用的类,因此开发者可以用更少的代码和更好的类型安全性来运行模型。

支持机型

ML 模型绑定当前支持图像分类和样式转移模型,前提是它们通过元数据得到了增强,而随着后续的支持,ML 模型绑定将会扩展到其他领域,例如:对象检测,图像分割和文本分类。

TensorFlow Hub(tfhub.dev/android-stu… 上提供了各种带有元数据的预训练模型,开发者还可以自己将元数据添加到TensorFlow Lite 模型中,如将元数据添加到TensorFlow Lite模型中概述(www.tensorflow.org/lite/conver… )。

导入模型文件

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

  • File > New > Other > TensorFlow Lite Model. 的文件菜单中打开 TensorFlow Lite模型导入对话框 。
  • 选择 .tflite 模型文件。
  • 点击完成。

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

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

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

  • 1、模型:模型的高级描述
  • 2、Tensors:输入和输出 Tensors 的描述
  • 3、示例代码:如何与应用程序中的模型进行交互的示例

这是使用mobilenet_v1_0.25_160_quantized.tflite(tfhub.dev/tensorflow/…

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

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

已知问题和解决方法

  • 目前除了图像分类和样式转换外,对 TensorFlow Lite 模型对问题域的支持受到限制,尽管导入应该可以正常工作,但是某些模型输入和输出 TensorBuffers 并不友好,对于没有任何元数据的模型,所有模型输入和输出均为 TensorBuffers

  • 不支持输入和输出非 DataType.UINT8DataType.FLOAT32的数据类型。

此功能仍在开发中,因此请提供反馈或报告错误:issuetracker.google.com/issues/new?…

本机内存探查器

Android Studio Memory Profiler 现在包括一个本机内存 Profiler,Profiler 支持用于将Android 10或更高版本的物理设备。使用本机内存探查器可以记录本机代码中的内存分配和释放,并检查有关本机对象的累积统计信息。

要了解有关本机内存探查器的更多信息,请参阅:developer.android.com/studio/prof…

已知问题和解决方法

  • Android Studio 4.1中的本机内存探查器不适用于Android 11设备,4.2预览版本中当前提供了对Android 11设备配置文件的支持。

  • 从最初的4.1版本开始已禁用应用程序启动分析,未来在即将发布的版本中将启用此选项。解决方法是,可以使用 Perfetto 独立命令行分析器来捕获启动配置文件。perfetto.dev/docs/quicks…

系统跟踪用户界面:更轻松的选择新的分析选项以及更多的帧渲染数据

Android Studio探查器中的系统跟踪UI包括以下改进:

  • Box selection:现在在 Threads 部分中,开着可以拖动鼠标以执行矩形区域的框选择,通过单击右上角的 Zoom to Selection 按钮来放大该区域(或使用M键盘快捷键)。当开发者将相似的线程彼此相邻拖放时,可以跨多个线程进行选择以一次检查所有线程,例如可能要对多个工作线程执行分析。

  • Summary tab: “Summary” 面板中新的“Analysis”选项卡显示:

    • 汇总特定事件的所有发生次数的统计信息,例如发生次数和最小/最大持续时间。
    • 跟踪选定事件的事件统计信息。
    • 有关线程状态分布的数据。
    • 所选跟踪事件的最长运行时间。

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

  • Display data :在“Display”部分,SurfaceFlinger 和 VSYNC 的新时间线可以帮助开发者调查应用程序UI中的渲染问题。

有关如何记录系统跟踪的基本用法说明,请参阅“使用CPU Profiler检查CPU活动”的“ 记录跟踪”部分 。 developer.android.com/studio/prof… developer.android.com/studio/prof…

Windows用户:如果在分析应用程序时线程活动时间轴中缺少标签,请参阅 developer.android.com/studio/know… 以找到解决方法,改问题已在4.2版本中修复。

独立的探查器

使用新的独立探查器,现在可以在不运行完整的Android Studio IDE的情况下对应用程序进行探查,有关使用独立探查器的说明,请参阅“运行独立探查器”:developer.android.com/studio/prof…

Dagger navigation support

Android Studio 通过提供新的操作并扩展了“Find Usages”窗口中的支持,使在Dagger相关代码之间导航变得更加容易。

  • New gutter actions :对于使用 Dagger 的项目,IDE提供了装订线操作,可帮助开发者在带Dagger 注释的代码之间导航。例如,单击图片

使用给定类型的方法旁边的装订线操作可导航到该类型的提供程序;相反单击

装订线操作会导航到将类型用作依赖项的位置。

  • Find Usages node:在给定类型的提供者上调用“Find Usages ”时,“Find”窗口现在包括一个“Dependency consumer(s) ”节点,该节点列出了该类型的使用者,而对注入了Dagger的依赖项的使用者调用此操作,“Find”窗口将显示该依赖项的提供者。

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

现在 “ Create New Project” 对话框中的 Android Studio 模板使用“ Material Design Components (MDC)”,并且默认情况下符合主题和样式的更新指南。更新包括:

  • MDC:项目依赖 com.google.android.material:material ,Base app themes 的主题使用 Theme.MaterialComponents.* 的父级覆盖更新MDC颜色的属性。

  • Color resources::colors.xml 使用文字名称的颜色资源(例如 purple_500 代替colorPrimary)。

  • Theme resources:主题资源位于 themes.xml(而不是 styles.xml)中并使用名称Theme.<ApplicationName>

  • Dark theme:Base application themes 使用 DayNight 父项,并且在 res/valuesres/values-night 之间区分开来。

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

IntelliJ IDEA 2020.1

核心 Android Studio IDE 已进行了更新,在 IntelliJ IDEA 2020.1版本进行了改进,其中包括一个新的 Commit 窗口(启用版本控制操作)和一个新的 Zen 模式,可以通过选择 View> Appearance> Enter Distraction Free Mode 进行切换。

要了解有关版本2020.1中的改进的更多信息,请参见以下链接: blog.jetbrains.com/idea/2020/0…

IDE配置目录更改

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

Windows

Syntax: %APPDATA%\Google\<product><version>

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

MacOS

Syntax: ~/Library/Application Support/Google/<product><version>

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

Linux

Syntax: ~/.config/Google/<product><version>

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

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

Kotlin 1.3.72

Android Studio 4.1 捆绑了Kotlin 1.3.72,其中包括许多用于改善Kotlin高亮显示,检查和代码完成的修复程序,请查看1.3.72 Kotlin更改日志获取详细信息:github.com/JetBrains/k…

自定义视图预览

创建自定义视图时(例如通过扩展 View或 Button类),Android Studio现在向您显示自定义视图的预览,使用工具栏中的下拉菜单可在多个自定义视图之间切换,或单击按钮以垂直或水平环绕内容。

注意:如果在预览中看不到更改,请从菜单栏中选择 Build> Make Project。

本机崩溃报告的符号

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

如果开发者的应用或游戏是使用C ++之类的本机代码开发的,那么现在可以将每种应用版本的调试符号文件上传到Play控制台。Play控制台使用这些调试符号文件来符号化您应用的堆栈跟踪,从而使分析崩溃和ANR更容易。要了解如何上传调试符号文件,请参阅本机崩溃支持。 developer.android.com/studio/buil…

Apply Changes

为了在迭代应用程序时提高工作效率,Google 对运行Android 11 Developer Preview 3或更高版本的设备的“Apply Changes”进行了以下增强:

更快的部署速度

通过开发一种无需安装应用程序即可在设备上部署和保留更改的方法,在优化迭代速度上进行了大量投资。初始部署后,使用“Apply Code Changes” 或 “Apply Changes and Restart Activity”的 后续部署到Android 11设备的 速度现在显着提高。

要了解有关这两个操作之间区别的更多信息,请参见 developer.android.com/studio/run#…

支持其他代码更改

对于运行Android 11 Developer Preview 3或更高版本的设备,现在可以添加方法然后通过单击 Apply Code Changes 或Apply Changes and Restart Activity 将这些更改部署到正在运行的应用程序中。