新版 Dart DevTools 已经发布,这是一套用于 Dart 和 Flutter 代码调试和性能分析的工具,完全用 Flutter 重新构建。新版本较之前有若干改进,例如,对性能和内存视图做了更新,并且新增了一个全新的网络视图。
很多人都是由热重载功能了解到 Flutter,该功能允许您对正在运行的移动应用做出修改。但热重载只是我们提供的工具套件中的冰山一角,事实上我们提供的功能涵盖代码编写、测试、调试和分析等各个方面。
基础工具
首先要提到的自然是 flutter 命令行工具,它可在调试模式下运行您的应用、执行热重载、构建 APK 和 IPA 等。 flutter 命令行工具用 Dart 编写并在终端上运行,因此,无论您偏好哪种操作系统或编辑器,都可以使用 Flutter。
△ 图中展示的是 VS Code 代码补全功能,
此处的所有示例也可在 Android Studio 中使用 …错误高亮显示,以及提供 如何修复错误 的文档链接…- 如何修复错误https://dart.cn/tools/diagnostic-messages

- 语言服务器协议 (Language Server Protocol)https://microsoft.github.io/language-server-protocol/
- 支持 LSP 的工具https://microsoft.github.io/language-server-protocol/implementors/tools/
界面代码辅助功能
您在 Flutter 中会通过创建 widget 树来搭建界面。也就是说,大量 Dart 代码都是以嵌套构造函数的形式存在,比如:return MaterialApp( title: 'My app', home: Scaffold( appBar: AppBar( title: Text('Welcome'), ), body: Column( ... ), ),);
Flutter 工具让您能更轻松地处理这种代码。界面中的辅助线会突出显示您正在构建的 widget 树。


△ 上图中的注释由 IDE 显示,并非实际代码内容
智能重构可帮助您快速修改 widget 树,比如把一部分 widget 内容放进一个新的父容器中…
△ 把 IconButton 放进 SizedBox 中
…以及自由移动 widget。
DevTools
当然还有本文开头提到的 DevTools,这是一套在浏览器中运行的独立工具。这些工具提供了额外的监测等功能,这些功能无法在 IDE 中显示。

△ 在浏览器窗口中打开 DevTools
本次发布的 DevTools 是使用 Flutter 编写的 (之前用 Dart 编写,但没有使用 Flutter 框架)。这一次,我们从头开始对其进行彻底重写,这也让我们得以改进界面并添加全新的功能。- Flutter Inspectorhttps://flutter.cn/docs/development/tools/devtools/inspector
在 Flutter Inspector 旁边,您会发现三个专门用于性能分析的标签页: Timeline (时间线视图)、Memory (内存视图) 和 Performance (性能视图)。
时间线视图 (Timeline view) 显示每帧的构建时间以及火焰图。这样,您就能够很容易识别出现问题的帧,同时了解其所在的上下文。
- 时间线视图 (Timeline view)https://flutter.cn/docs/development/tools/devtools/timeline
- 内存视图 (Memory view)https://flutter.cn/docs/development/tools/devtools/memory
- 性能视图 (Performance view)https://flutter.cn/docs/development/tools/devtools/performance
- 调试器 (Debugger)https://flutter.cn/docs/development/tools/devtools/debugger
- 网络视图 (Network view)https://flutter.cn/docs/development/tools/devtools/network
- 监测通用套接字 I/O 流量https://github.com/flutter/devtools/issues/2044
- 日志视图 (Logging view)https://flutter.cn/docs/development/tools/devtools/logging
- 结构化日志消息https://api.dart.cn/stable/dart-developer/log.html
- DevToolshttps://github.com/flutter/devtools/tree/master/packages/devtools_app
- lib/main.darthttps://github.com/flutter/devtools/blob/master/packages/devtools_app/lib/main.dart#L14-L16

总结
工具对 Flutter 开发者的体验至关重要。我们一直都在投入大量资源,以使其日臻完善。要实现这一目标,我们离不开您的反馈。
因此,请即刻升级到最新版 DevTools,并在您的应用上进行测试。请阅读 文档 ,了解所有精彩功能。若您发现错误,请提交错误报告,也别忘了在 GitHub 上为新功能投票。- DevTools 文档https://flutter.cn/docs/development/tools/devtools/overview
- GitHub 地址https://github.com/flutter/devtools/issues

推荐阅读



