15

我需要在调试时检查 android 应用程序中的 javascript 执行(webview 小部件);通过 SDK 和 USB 电缆和/或 http/websockets;从桌面计算机(例如在桌面上运行的 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 级别)以启用该功能,但我没有找到任何参考在网络上搜索使用 javascript 级别的实时调试在 android 设备中自动化 webkit 的检查器界面的经验。

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

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

3.- 如果可以启用 webkit 检查器/调试器功能,如何实现与远程应用程序的交互?(例如,来自另一个使用 websockets 的 javascript 应用程序,或台式计算机上的 chrome)。

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

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

干杯,艾尔。

4

5 回答 5

8

对于 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。是的,所有设备都应该在同一个网络上。

于 2015-04-17T10:41:14.137 回答
5

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

于 2013-11-28T10:26:49.240 回答
3

您可以使用weinre项目针对 Android 浏览器进行远程调试。或者通过Chrome for Android 浏览器使用Chrome 远程调试。据我所知,您不能直接定位 WebView,但定位 Android 浏览器应该会让您接近。

于 2013-02-27T23:13:37.543 回答
0

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

于 2013-01-30T10:34:28.543 回答
0

Pre KitKat jsHyBugger运行良好(试用版和年度单用户许可证 29 欧元)

(我与开发人员没有联系/已购买许可证)

于 2017-05-17T19:19:03.987 回答