flutter 专题三十五 Flutter混合开发模式下的代码调试

众所周知,在做Flutter开发的时候,它是自带有热重载/热重启功能的,不过,或许你会发现,当我们在原生工程中接入Flutter模块后,热重载/热重启好像都失效了,那么怎么才能在混合项目中使用热重载/热重启,以及怎么实现混合项目的代码调试呢?

在介绍这些之前,我们先来看看原生接入Flutter模块,不知道如何接入的同学,可以参考下面的文章:Flutter混合开发之FlutterFragment和原生Android工程接入Flutter aar。

首先,我们打开一个Android模拟器或者连接一个真机。关闭我们的APP,然后运行 flutter attach 命令。flutter attach 可以通过不同的路径启动,例如通过 SDK 中的命令行工具、VS Code 或者 IntelliJ/Android Studio。

flutter attach 可以在你运行 FlutterEngine 时立即进行连接,并在 FlutterEngine 被释放之前一直保持连接。你可以在启动引擎之前执行 flutter attach ,它将等待下一个由引擎持有的 Dart VM 进行连接。

需要说明的是,使用混合开发调试的时候,需要使用源码的方式引入flutter_module,然后在终端先运行 flutter attach ,接着再运行原生Android代码。

Android Studio

在终端执行 flutter attach 或者 flutter attach -d deviceId 来连接你的应用。flutter 专题三十五 Flutter混合开发模式下的代码调试_第1张图片

然后,运行大写的【R】命令即可热启动,小写的【r】即可热刷新。flutter 专题三十五 Flutter混合开发模式下的代码调试_第2张图片

VS Code

VS Code 的使用过程和AS类似,在VS Code中的状态栏中选择待调试的设备,然后在命令面板运行 Flutter: Attach to Flutter on Device 命令。
flutter 专题三十五 Flutter混合开发模式下的代码调试_第3张图片
或者,在Flutter 模块下创建一个 .vscode/launch.json 文件,使用 【Run】 > 【Start Debugging 】命令或按下 F5开启调试。

{
  name: "Flutter: Attach",
  request: "attach",
  type: "dart",
}

你可能感兴趣的:(Flutter面试与实战,flutter)