美文网首页
Flutter:混编模式下的调试方案

Flutter:混编模式下的调试方案

作者: 时光啊混蛋_97boy | 来源:发表于2023-02-08 19:40 被阅读0次

    作为软件开发,调试过程必不可少,那么在混编模式下有什么调试方案和技巧呢?我们本地既有原生工程代码,又有 Flutter 工程代码,想要同时调试原生代码和 Flutter 代码,一般有两种方案:

    方案一:iOS 和 Flutter 同时调试,不支持断点

    ① Xcode 打开 iOS 项目,运行项目并打开 Flutter 项目页面。
    ② Android Studio 打开嵌在 iOS 项目中的 Flutter 项目,控制台选择 Terminal 选项卡。在终端输入命令行:flutter devices,打印出已连接到计算机的设备。

    ③ 在终端输入如下命令行,后面的是 iPhone 的设备号,这里是模拟器。flutter attach 的作用是将当前Flutter 项目连接到某个正在运行的应用程序上。

    flutter attach -d 60BB7784-43BA-4569-871A-3BA6D4E136D0
    

    连接成功后,当我们修改了 Flutter 项目的代码后,可以按照下面的快捷键在终端进行相应操作:

    • r是热重载,局部刷新,刷新所有改动的 Flutter 代码文件,此时就可以看到代码改动后的结果
    • R是热重启,全部刷新,刷新所有的 Flutter 文件。如果 Hot reload 刷新无效,可以尝试使用 Hot restart
    • dq都是终止连接,结束调试

    Hot reloadHot restart 区别:

    • Hot reload:将所有代码更改加载到 VM 中,并重新构建 Widget 树,但是不会重新运行 main()initState()
    • Hot restart:同样将所有代码更改加载到 VM 中,然后重新启动 Flutter 应用,从而丢失应用状态。
    Performing hot restart...                                               
    Restarted application in 680ms.
    
    Performing hot reload...                                                
    Reloaded 0 libraries in 107ms (compile: 16 ms, reload: 0 ms, reassemble: 11 ms).
    

    二、iOS 和 Flutter 同时调试,支持断点方案

    ① Android Studio 打开嵌在 iOS 项目中的 Flutter 项目,工具栏点击 Flutter Attach

    此时控制台 Debug 选项卡输出日志信息:

    在 Flutter 和 Native 混编的过程,使用 flutter attach 同步代码出现如上错误。这是因为有多个端口,选择其中一个执行就可以了,一般选择不带数字的一个。可以重新运行 XCode 工程或者直接关掉模拟器,重新连接。

    Debug service listening on ws://127.0.0.1:61933/-4kIlDugw3g=/ws
    Syncing files to device iPhone 14 Pro Max...
    

    连接完成,可以进行断点调试。同样在控制台上边可以通过点击 Hot reloadHot restart 按钮来实现代码修改的更新操作。

    当我们想要在 Flutter 侧调试代码的时候,只需要在控制台上打好断点就可以了,等APP运行到断点处时就会自动停止下来,进入断点流程。

    相关文章

      网友评论

          本文标题:Flutter:混编模式下的调试方案

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