我需要在Android应用程序中检查javascript执行(webview小部件), 调试时;通过SDK& USB电缆和/或http / websockets; 来自destop计算机(例如在桌面上运行的chrome)。
Webkit的源代码包括DebuggerServer实现 (platform_external_webkit \ Source \ WebKit \ android \ wds \ DebugServer.cpp) 可以在cpp级别访问,如果启用了标志WDS,则绑定(在构建时?)
Source \ WebKit \ android \ jni \ WebCoreFrameBridge.cpp:#if ENABLE(WDS) Source \ WebKit \ android \ jni \ WebCoreFrameBridge.cpp:WDS :: server() - > addFrame(frame);
服务器的默认端口是9999
消息来源显示所有内容都已实现(在Cpp级别)以启用该功能, 但我没有找到任何参考搜索网络的经验 在adroid设备自动化中使用javascript级别的实时调试 webkit的检查员界面。
1.-以二进制形式存在的功能是否在实际的Android设备中执行? (adroid的webkit分发是在没有启用WDS标志的情况下构建的吗?:-()
2.-可以从javascript或应用程序启用/使用远程调试功能 (在java级别),例如在启动应用程序?
3.-如果可以启用webkit检查器/调试器功能, 如何使从远程应用程序进行交互成为可能? (例如来自 另一个使用websockets或桌面计算机上的chrome的javascript应用程序。)
有些段落解释了类似的机制 https://developers.google.com/chrome-developer-tools/docs/remote-debugging#remote 会很好!
提前感谢任何有关此主题的信息或参考资料。 我认为重要的是启用远程调试(在设备中) javascript级别使HTML5的现代开发成为可能 应用程序和愉快的调试经验。
欢呼声, ALE。
答案 0 :(得分:7)
对于android> = 4.4(kitkat)
请参阅Remote debugging on Android with Chrome
对于android< 4.4(较低版本)
使用非常好的开源工具:weinre。有关使用它的帮助,请参阅this视频。 如果您熟悉grunt,则可以使用grunt-weinre
快速查看:
注意:如果您要在移动设备中调试webview /浏览器,则需要将localhost替换为运行weinre的计算机的IP。是的,所有设备都应该在同一个网络上。
答案 1 :(得分:5)
现在使用Android 4.4很容易。见https://developers.google.com/chrome-developer-tools/docs/remote-debugging#debugging-webviews
答案 2 :(得分:3)
您可以使用weinre项目针对Android浏览器进行远程调试。或者使用适用于Android的Chrome浏览器使用Chrome remote debugging。据我所知,你无法直接定位WebView,但定位Android浏览器应该会让你接近。
答案 3 :(得分:0)
无法完成,因为调试器后端代码不存在。您引用的源代码是android中的webkit源代码的副本,但它没有编译成android发布位。
答案 4 :(得分:0)
Pre KitKat jsHyBugger效果很好(试用版和年度单用户许可证€29)
(我与开发者没有联系/已购买许可证)