美文网首页
2021-10-27 flutter命令行工具原理

2021-10-27 flutter命令行工具原理

作者: 我是小胡胡123 | 来源:发表于2021-10-27 16:52 被阅读0次

1、确认flutter安装的目录

安装完flutter 环境后,比如我的flutter放在目录下面:/opt/fvm/current/

2、flutter命令就是由shell脚本,驱动调用dart命令flutter_tools.snapshot

flutter doctor -v

huchu58:2.2.0 huchu$ which flutter
/opt/fvm/current/bin/flutter

可以看到 flutter是 flutter 安装目录下的一个shell 脚本
/opt/fvm/current/bin/flutter
内部又会调用$BIN_DIR/internal/shared.sh
这里面又会调用到/opt/fvm/versions/2.2.0/bin/cache/dart-sdk/bindart 下面的pubdart

调用dart主要是为了编译flutter_tools下面的/opt/fvm/versions/2.2.0/packages/flutter_tools/lib dart代码。
输出结果到flutter_tools.snapshot
/opt/fvm/versions/2.2.0/bin/cache/flutter_tools.snapshot

3、修改/packages/flutter_tools/lib dart代码,重新构建flutter

删除/bin/cache/flutter_tools.snapshot,重新执行flutter 命令,会自动重新构建flutter_tools.snapshot

flutter命令行工具的实现,可以从这里一一对应到dart源代码:
/packages/flutter_tools/bin/flutter_tools.dart

4、重新测试修改的flutter_tools dart代码

cd 到/packages/flutter_tools
cd /opt/fvm/versions/2.2.0/packages/flutter_tools
执行命令

../../bin/cache/dart-sdk/bin/pub run test
image.png

5、启用flutter调试模式

修改/opt/fvm/versions/2.2.0/bin/internal/shared.sh
取消注释FLUTTER_TOOL_ARGS:

  # To debug the tool, you can uncomment the following lines to enable checked
  # mode and set an observatory port:
  FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
  FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"

以后只要执行到flutter相关命令的时候,就会是调试模式,比如flutter run --debug 时候会多出一些输出:

Observatory listening on http://127.0.0.1:65432/FAoW9rKkWSU=/
打开页面:

image.png

相关文章

网友评论

      本文标题:2021-10-27 flutter命令行工具原理

      本文链接:https://www.haomeiwen.com/subject/jvjpaltx.html