在chrome中远程调试react-native的原理是什么?

时间:2018-01-24 09:09:08

标签: google-chrome debugging react-native

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

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

  

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

似乎chrome不仅是前端而且还执行被调试的代码?所以我的问题是:

1.如何在chrome中执行依赖于设备的代码吗?

2.设备还会执行代码吗?如果是的话,它与铬之间的关系是什么?如果没有,应用程序如何在设备中运行?

1 个答案:

答案 0 :(得分:0)

1。如何在chrome中执行与设备相关的代码?

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

Source: React Native Made Easy

请注意,Chrome的V8 Javascript Engine并不是唯一的React Native可以使用,您也可以在Safari中进行调试,并且代码可以在Safari的JavascriptCore上运行。参见this for more

2。设备还将执行代码吗?如果是的话,它和Chrome之间有什么关系?如果没有,该应用程序如何在设备上运行?

否,JS代码只能在一个地方执行,如果要调试的话,要么是浏览器的javascript引擎,要么因此可以通过Websockets与设备通信,要么如果不调试就运行设备的JavascriptCore。