在 Chrome 中远程调试 React-native 的原则是什么?



我知道 chromedevtool可以用作开放的调试器前端,通过 websocket 从调试器主机接收调试信息并显示它们,例如源文件和控制台日志,只要主机支持,它还为单步任务提供流控制 GUI。

但根据ReactNative的远程调试页面:

React Native JS 代码在此选项卡中作为 Web worker 运行。

看来chrome不仅是前端,还执行正在调试的代码? 所以我的问题是:

1.如何在Chrome中执行设备相关代码?

2.设备也会执行代码吗? 如果是,它和 Chrome 之间有什么关系? 如果没有,应用如何在设备中运行?

1.如何在Chrome中执行设备相关代码?

在Chrome调试

模式下,JavaScript代码在Chrome本身(而不是设备上的JavaScriptCore)中运行,并通过WebSocket与本机代码进行通信。在这里,它将使用 V8 引擎。这使我们能够查看有关Chrome调试工具的大量信息,例如网络请求,控制台日志等。

来源: 反应原生变得容易

请注意,Chrome的V8 Javascript引擎并不是React Native可以使用的唯一引擎,您也可以在Safari中进行调试,代码将在Safari的JavascriptCore上运行。请参阅此处了解更多信息

2.设备也会执行代码吗? 如果是,它和 Chrome 之间有什么关系? 如果没有,应用如何在设备中运行?

不,JS代码只在一个地方执行,如果你正在调试,浏览器的javascript引擎,因此通过Websockets与设备通信,或者设备的JavascriptCore,如果在没有调试的情况下运行。

最新更新