Android Studio 4.1 发布,全方位提高开发体验

咱们很高兴发布了 Android Studio 4.1 稳定版,为你们带来一系列针对常见的编辑、调试和优化工做的功能。4.1 版本的重点诉求之一是帮助您在使用 Android Jetpack 库 (即 Android 的开发库套件) 时遵循最佳实践和提高代码编写效率。基于你们的反馈,咱们直接在 IDE 中集成了诸多经常使用的 Android 库,从而改善了编写代码的体验。android

Android Studio 4.1 的一些亮点以下: 引入全新的 Database Inspector,用于查询应用的数据库;支持浏览使用 Dagger 或 Hilt 进行依赖项注入的项目;支持在 Android 项目中使用 TensorFlow Lite 模型,进一步加强了对设备端机器学习的支持。咱们还对 Apply Changes 进行了更新,以加快部署速度。咱们根据你们的反馈进行了一些更改,引入了新的原生内存性能分析器和独立分析工具来为游戏开发者提供助力。数据库

产品质量仍然是团队的主要关注点,咱们一直在努力解决错误和性能问题。从你们的反馈来看,许多开发者十分认同咱们专一于提升性能和可靠性的举措。很高兴地告诉你们,在本次发布周期中,咱们修复了 2,370 个错误,解决了 275 个公共问题。高品质是咱们一向坚持的目标,由于咱们知道这是提升开发者工做效率的关键。android-studio

许多用户在预览版中提供了早期反馈,在此对你们表示感谢。正是有了各位的反馈,Android Studio 4.1 中的功能才得以迭代和改进。若是您已准备好使用这个全新的稳定版本,经过一系列全新的功能提高工做效率,能够在这里 下载 并开始使用。安全

下面按关键开发流程列出了 Android Studio 4.1 中的全部 新功能网络

设计

Material Design 组件更新

如今,建立新项目 (New Project) 对话框中的 Android Studio 模板使用 Material Design 组件 (MDC),而且默认支持最新版的主题和样式设计指南。如此一来,开发者能够更轻松地使用推荐的 Material 样式模式,以及支持现代界面功能 (如深色主题)。app

△ 项目模板中的 Material Design 组件更新

△ 项目模板中的 Material Design 组件更新机器学习

更新包括:编辑器

  • MDC: 项目使用 build.gradle 中的 com.google.android.material:material。基础应用主题使用 Theme.MaterialComponents 父级,并覆盖更新后的 MDC 颜色和 "on" 属性。
  • 颜色资源colors.xml 中的颜色资源使用字面名称 (例如,使用 purple_500 而不是 colorPrimary)。
  • 主题资源: 主题资源位于 themes.xml (而非 styles.xml) 中并使用 Theme.<ApplicationName> 名称。
  • 深色主题: 基础应用主题使用 DayNight 父级,并分为 res/values 和 res/values-night
  • 主题属性: 在布局和样式中将颜色资源称为主题属性 (例如 ?attr/colorPrimary),以免硬编码颜色。

开发

Database Inspector

咱们但愿借助新的 Database Inspector 来简化应用数据库的检查、查询和修改操做。首先,将您的应用部署到运行 API 26 或更高级别的设备,而后从菜单中依次选择 View > Tool Windows > Database Inspector。不管您的应用是直接使用 Jetpack Room 开发库仍是 Android 平台版本的 SQLite,您如今均可以轻松检查正在运行的应用中的数据库和表,或运行自定义查询。函数

因为 Android Studio 在您检查应用时会保持实时链接,所以您也可使用 Database Inspector 对数值进行修改,并在运行的应用中查看结果。若是您使用 Room 持久库,Android Studio 还会在代码编辑器的每一个查询旁边插入运行按钮,以帮助您快速运行在 @Query 注解中定义的查询。您能够阅读 官方文档 了解详情。工具

△ 使用 Database Inspector 检查、查询和修改应用数据库

△ 使用 Database Inspector 检查、查询和修改应用数据库

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

如今,您能够直接在 Android Studio 中运行 Android 模拟器。此功能有助于节省屏幕空间,您可使用热键在模拟器和编辑器窗口之间快速导航,并在一个应用窗口中组织您的 IDE 和模拟器工做流。您能够在 Studio 中管理快照以及旋转和截图等常见的模拟器操做,但要使用所有功能选项,仍然须要使用稳定的模拟器。您能够按照这个菜单路径启用此功能: File → Settings → Tools → Emulator  → Launch in Tool Window

△ 在 Android Studio 中运行 Android Emulator

△ 在 Android Studio 中运行 Android Emulator

Dagger 导航支持

Dagger 是 Android 上经常使用的依赖项注入库。Android Studio 提供了新的 gutter 操做并扩展了 Find Usages 窗口中的支持,使得在 Dagger 相关代码之间导航更加简单。例如,点击使用给定类型的方法旁边的  gutter 操做,会将您导航到提供该类型的位置。相反,点击  gutter 操做会将您导航到将类型用做依赖项的位置。Android Studio 还支持对使用 Jetpack Hilt 库定义的依赖项执行导航操做。您能够阅读 官方文档 了解详情。

△ 使用 gutter 操做在 Dagger 相关代码之间导航

△ 使用 gutter 操做在 Dagger 相关代码之间导航

使用 TensorFlow Lite 模型

目前,Android 开发者纷纷利用机器学习来打造新颖、实用的体验TensorFlow Lite 是常见的用于编写移动端机器学习模型的开发库,咱们但愿简化将这些模型导入 Android 应用的过程。与视图绑定相似,Android Studio 会生成易于使用的类,帮助您精简运行模型所需的代码并提高类型安全性。ML Model Binding (ML 模型绑定) 当前的实现支持图像分类和风格转换模型,前提是它们经过元数据获得了加强。

要查看导入模型的详细信息以及如何在应用中使用,请双击项目中的 .tflite 模型文件以打开模型查看器页面。您能够阅读 官方文档 了解详情。

△ 在 Android Studio 4.1 中查看 TensorFlow Lite 模型元数据

△ 在 Android Studio 4.1 中查看 TensorFlow Lite 模型元数据

构建和测试

Android 模拟器 - 可折叠设备铰链信息支持

Android Studio

除了最近新增的 5G 移动网络测试 功能,咱们还在 Android 模拟器中增长了对可折叠设备的支持。在 Android 模拟器 30.0.26 及更高版本中,您可使用多种折叠设计和配置对可折叠设备进行设置。设置完毕后,模拟器将提供铰链角度传感器和姿态变化信息,方便您测试应用在这些机型上的响应状况。请参阅博文《[使用 Android 模拟器在 Android 11 上进行开发](https://medium.com/androiddev...
)》了解更多。

Apply Changes 更新

更快的构建有助于开发者更轻松、快速地更改应用。为了帮助您提升应用迭代效率,咱们对 Android 11 或更高版本设备的 Apply Changes 进行了多项加强。

咱们在优化迭代速度上进行了大力投入,开发出一种无需安装应用便可在设备上部署和保存更改的方法。如今,在完成初始部署后,经过 Apply Code Changes 或 Apply Changes and Restart Activity 对 Android 11 设备进行后续部署的速度大幅提高。咱们还在 Apply Changes 中 增长了对其余代码更改的支持。如今,在您添加一个方法后,可点击 Apply Code Changes 或 Apply Changes and Restart Activity 按钮将这些更改部署到正在运行的应用中。

从 AAR 中导出 C/C++ 依赖项

Android Gradle Plugin 4.0 增长了 在 AAR 依赖项中导入 Prefab 软件包 的功能。咱们但愿扩展此功能以共享原生库。AGP 4.1 支持在 Android 库项目的 AAR 中从外部原生构建中导出库。要导出原生库,请将如下内容添加到库项目 build.gradle 文件的 android 块中:

buildFeatures {
    prefabPublishing true
}

prefab {
    mylibrary {
        headers "src/main/cpp/mylibrary/include"
    }

    myotherlibrary {
        headers "src/main/cpp/myotherlibrary/include"
    }
}

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

当原生代码发生崩溃或 ANR 时,系统会生成堆栈轨迹,即程序崩溃前所调用的嵌套函数序列的快照。这些快照能够帮助您识别和修复源代码中的问题,可是必须首先将它们符号化,以将计算机地址转换回人类可读的函数名。

若是您的应用或游戏是使用 C++ 之类的原生代码开发的,那么您如今能够将每一个版本应用的调试符号文件上传到 Play 管理中心。Play 管理中心使用这些调试符号文件来符号化您应用的堆栈轨迹,从而简化崩溃和 ANR 分析。若是要将调试符号包含在 App Bundle 中,请将下方内容添加到项目的 build.gradle 文件中:

android.buildTypes.release.ndk.debugSymbolLevel = 'SYMBOL_TABLE'

优化

System Trace 界面改进

在 Android Studio 4.1 中,咱们对 System Trace 进行了全面改进,该优化工具可以让您实时了解应用对系统资源的使用状况。经过框选模式还能够更轻松地选择跟踪记录,此外,咱们还添加了新的分析标签页,并添加了更多的帧渲染数据,以帮助您调查应用界面中的渲染问题。您能够阅读 官方文档 了解详情。

框选 : 在 Threads 部分中,您如今能够拖动鼠标来框选一个矩形区域,并点击右上角的 Zoom to Selection 按钮 (或使用键盘快捷键 M) 来放大该区域。当您将类似的线程拖放到一块儿后,能够跨多个线程进行框选以同时检查全部线程。

△ 使用框选模式能够更轻松地选择跟踪记录

△ 使用框选模式能够更轻松地选择跟踪记录

Summary 选项卡: Analysis 面板中全新的 Summary 选项卡会显示如下内容:

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

△ 在 Summary 选项卡中查看汇总统计信息

△ 在 Summary 选项卡中查看汇总统计信息

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

独立分析器

如今能够在独立于 Android Studio 主窗口的单独窗口中访问 Android Studio 分析器。在优化使用其余工具 (如 Unity 或 Visual Studio) 构建的 Android 游戏时,此功能十分有用。

要运行独立分析器,请执行如下操做:

  1. 确保您的系统如今没有运行 Android Studio 中的分析器。
  2. 转到安装目录并导航到 bin 目录:

Windows/Linux

 <studio-installation-folder>\bin

macOS

 <studio-installation-folder>/Contents/bin

  1. 根据您的操做系统,运行 profiler.exe 或 profiler.sh

独立分析器可链接到 Android Emulator 或其余已链接的设备上。

△ 使用独立 Android Studio 分析器优化您的应用

△ 使用独立 Android Studio 分析器优化您的应用

原生内存性能分析器

跟踪原生内存的使用状况对于游戏开发者和其余使用 C++ 的开发者十分重要,他们能够据此优化其应用的内存使用。Android Studio 内存性能分析器 (Memory Profiler) 如今包含一个原生内存性能分析器 (Native Memory Profiler),专门用于运行在 Android 10 或更高版本的实体设备上的应用。原生内存性能分析器能够跟踪特定时间段内原生代码中对象的分配 / 销毁状况,并提供内存整体分配和系统堆剩余大小的信息。

要启动记录,请点击 Memory Profiler 窗口顶部的 Record native allocations:

△ 使用原生内存性能剖析器查看原生内存分配状况

△ 使用原生内存性能剖析器查看原生内存分配状况

总结

简要回顾一下,Android Studio 4.1 包括如下新增及改进功能:

设计

  • Material Design 组件更新

开发

  • Database Inspector
  • 直接在 Android Studio 中运行 Android 模拟器
  • Dagger 导航支持
  • 使用 TensorFlow Lite 模型

构建和测试

  • Android 模拟器 - 可折叠设备铰链信息支持
  • Apply Changes 更新
  • 从 AAR 中导出 C/C++ 依赖项
  • 原生代码崩溃报告符号化解析

优化

  • System Trace 界面改进
  • 独立分析器
  • 原生内存性能分析器

本文做者 / Scott Swarthout, 产品经理

文中资料并不是由 Unity Technologies 或其附属公司赞助或与其有关联。“Unity”是 Unity Technologies 或其附属公司在美国和其余地区的商标或注册商标。

相关文章
相关标签/搜索