Android多Flutter Engine场景下,如何指定Flutter Inspector分析目标?
多Flutter Engine场景下指定Flutter Inspector分析目标的方案
方法一:通过Flutter DevTools切换Engine实例
- 启动应用后,从Android Studio的Flutter Inspector面板右上角点击「Open DevTools」打开独立的DevTools界面
- 在DevTools顶部的设备与应用选择栏中,会显示当前运行的所有Flutter Engine实例,每个实例对应一个FlutterFragment
- 直接选中需要分析的Engine,即可切换到对应的Widget树视图
方法二:给Flutter Engine设置自定义名称便于识别
在Android原生代码初始化FlutterEngine时,为每个Engine设置唯一名称,这样在DevTools里能快速区分:
// 初始化第一个Flutter Engine(对应第一个Fragment) val engine1 = FlutterEngine(context) engine1.navigationChannel.setInitialRoute("/home") engine1.dartExecutor.executeDartEntrypoint(DartExecutor.DartEntrypoint.createDefault()) engine1.name = "HomeFragmentEngine" // 初始化第二个Flutter Engine(对应第二个Fragment) val engine2 = FlutterEngine(context) engine2.navigationChannel.setInitialRoute("/profile") engine2.dartExecutor.executeDartEntrypoint(DartExecutor.DartEntrypoint.createDefault()) engine2.name = "ProfileFragmentEngine"
设置完成后,DevTools的Engine选择列表会显示自定义名称,无需靠默认标识猜测目标。
方法三:通过指定调试端口绑定目标Engine
- 打开Android Studio的「Run/Debug Configurations」
- 在对应配置的「Additional run args」中,给不同的Flutter Engine添加不同的调试端口参数:
- 第一个Engine用:
--observatory-port 8888 - 第二个Engine用:
--observatory-port 8889
- 第一个Engine用:
- 启动对应Fragment时,使用带有对应端口参数的配置运行,再打开Flutter Inspector连接指定端口的实例即可
内容的提问来源于stack exchange,提问作者mike
相关产品推荐
相关产品推荐

