我知道chrome devtool
可以用作开放式调试器前端,通过来自调试器主机的websocket接收调试信息并显示它们,例如源文件和控制台日志,它还提供流控制GUI对于单步任务,只要主机支持。
但是根据ReactNative
的远程调试页面:
React Native JS代码在此选项卡中作为Web worker运行。
似乎chrome不仅是前端而且还执行被调试的代码?所以我的问题是:
1.如何在chrome中执行依赖于设备的代码吗?
2.设备还会执行代码吗?如果是的话,它与铬之间的关系是什么?如果没有,应用程序如何在设备中运行?
答案 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。