如何使用WebView启用WebKit的Android应用程序远程调试/检查器?

ale*_*ndo 14 android webkit remote-debugging webview web-inspector

我需要在调试时检查android应用程序中的javascript执行(webview小部件); 通过SDK和USB电缆和/或http/websockets; 从destop计算机(例如在桌面上运行的chrome).

Webkit的源代码包括在cpp级别可访问的DebuggerServer实现(platform_external_webkit\Source\WebKit\android\wds\DebugServer.cpp),如果启用了标志WDS,则绑定(在构建时?)

Source\WebKit\android\jni\WebCoreFrameBridge.cpp:#if ENABLE(WDS)Source\WebKit\android\jni\WebCoreFrameBridge.cpp:WDS :: server() - > addFrame(frame);

服务器的默认端口是9999

消息来源显示所有内容都已实现(在Cpp级别)以启用该功能,但我没有找到任何参考搜索网页,以获得在webroid的检查器界面自动化的adroid设备中使用javascript级别的实时调试的经验.

1.-以二进制形式存在的功能是否在实际的Android设备中执行?(adroid的webkit分发是在没有启用WDS标志的情况下构建的?:-()

2.-可以从javascript或应用程序(在java级别)启用/使用远程调试功能,例如在启动应用程序时?

3.-如果可以启用webkit检查器/调试器功能,如何使从远程应用程序进行交互成为可能?(例如,来自使用websockets的另一个javascript应用程序,或桌面计算机上的chrome).

一些解释https://developers.google.com/chrome-developer-tools/docs/remote-debugging#remote等机制的段落 会很棒!

提前感谢任何有关此主题的信息或参考资料.我认为重要的是在javascript级别启用远程调试(在设备中),以使HTML5应用程序的现代开发和快乐的调试体验成为可能.

欢呼,啤酒.

vin*_*esh 7

对于android> = 4.4(kitkat)

请参阅使用Chrome在Android上进行远程调试

对于android <4.4(较低版本)

使用非常好的开源工具:weinre.有关使用它的帮助,请参阅视频.如果您熟悉grunt,那么您可以使用grunt-weinre

快速查看:

  1. 使用npm安装weinre
  2. 在gruntfile中进行配置.
  3. 运行weinre grunt任务.
  4. 使用此脚本将weinre目标代码注入您的网页.
  1. 在浏览器中打开http:// localhost:8082,您会发现在脚本上方运行的设备.您可以调试所有这些设备.

注意:如果要在移动设备中调试webview /浏览器,则需要将localhost替换为运行weinre的计算机的IP.是的,所有设备都应该在同一个网络上.


Jan*_*Jan 5

现在使用Android 4.4很容易.请参阅https://developers.google.com/chrome-developer-tools/docs/remote-debugging#debugging-webviews

  • 多数民众赞成,但Android <4.4,我真的需要调试使用Android 4.3的Galaxy S3 (8认同)

Jan*_*Jan 0

这是无法完成的,因为调试器后端代码不存在。您引用的源代码是android中webkit源代码的副本,但它没有编译成android版本位。