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

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

作者: 我是小胡胡分胡 | 来源:发表于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