Flutter 是否为 Android/iOS 发布版本执行“摇树”/“Dart 死代码消除”?

huo*_*erv 7 flutter

根据Flutter 的构建模式

编译针对快速启动、快速执行和小包大小进行了优化

针对小封装尺寸进行优化究竟意味着什么?

对于网络应用程序,文档指出:

构建被缩小,并且已经执行了摇树

在发布模式下构建应用程序时,Flutter 是否对 Android/iOS 的 Dart 代码执行死代码消除?如果是这样,如何?

评论:在 DevTools 中apk使用Deeper analysis 分析生成的 Android 版本时,似乎没有包含死代码。所以至少对于 Android 来说,Flutter 似乎在发布模式下执行死代码消除。

Xua*_*yen 6

我还想知道 dart 编译器(不仅仅是 flutter)是否会摇动树。在发布模式下,Flutter doc仅提到:编译针对快速启动、快速执行和小包大小进行了优化。

我想如果他们在这里没有提到tree shake,就意味着优化没有这个功能。

但这篇文章说是: https: //medium.com/flutter-community/exclusion-dart-code-from-the-release-compiled-executable-7af8c18cd241

如果有人可以提供有关此问题的官方链接,那就太好了。


添加有关 Android 代码优化的信息:


我没有看到任何有关 iOS 和 Linux 的 Tree Shaking 的信息: