我需要检查 android 应用程序中的 javascript 执行(webview 小部件), 调试时;通过 SDK 和 USB 电缆和/或 http/websockets; 来自 destop 计算机(例如在桌面上运行的 chrome)。
Webkit 的源代码包括 DebuggerServer 实现 ( platform_external_webkit\Source\WebKit\android\wds\DebugServer.cpp ) 在 cpp 级别可访问,如果启用标志 WDS 则绑定(bind)(在构建时?)
源\WebKit\android\jni\WebCoreFrameBridge.cpp:#if ENABLE(WDS) 源\WebKit\android\jni\WebCoreFrameBridge.cpp: WDS::server()->addFrame(frame);
服务器默认端口为9999
来源显示所有的实现(在 Cpp 级别)以启用该功能, 但我没有找到任何引用资料在网上搜索经验 在 adroid 设备自动化中使用 javascript 级别的实时调试 webkit 的检查器界面。
1.- 该功能是否以二进制形式存在于实际的 Android 设备中执行? (是否在未启用 WDS 标志的情况下构建了 adroid 的 webkit 分发版?:-( )
2.- 是否可以从 javascript 或应用程序启用/使用远程调试功能 (在 Java 级别)例如在应用程序启动时?
3.- 如果可以启用 webkit 检查器/调试器功能, 如何使从远程应用程序进行交互成为可能? (例如来自 另一个使用 websockets 或桌面计算机上的 chrome 的 javascript 应用程序)。
一些解释机制的段落,例如 https://developers.google.com/chrome-developer-tools/docs/remote-debugging#remote 会很好!
提前感谢您提供有关此主题的任何信息或引用。 我认为启用远程调试(在设备中)很重要 javascript 级别使 HTML5 的现代开发成为可能 应用程序和愉快的调试体验。
干杯, 啤酒。
最佳答案
For android >= 4.4 (kitkat)
参见 Remote debugging on Android with Chrome
For android < 4.4 (Lower versions)
使用非常好的开源工具:weinre .参见 this视频帮助使用它。 如果您熟悉 grunt,那么您可以使用 grunt-weinre
快速查看:
- 使用 npm 安装 weinre
- 执行 configuration在你的 grunt 文件中。
- 运行 weinre grunt 任务。
- 使用此脚本将 weinre 目标代码注入(inject)您的网页。
- 打开http://localhost:8082在您的浏览器中,您会发现设备运行在脚本之上。您可以调试所有这些设备。
注意:如果您想在您的移动设备中调试 webview/浏览器,那么您需要将 localhost 替换为您机器运行 weinre 的 IP。是的,所有设备都应该在同一个网络上。
关于android - 如何使用 WebView 启用 WebKit 的 Android 应用程序远程调试/检查器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801819/