失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > chrome android远程调试工作原理

chrome android远程调试工作原理

时间:2019-02-11 08:31:40

相关推荐

chrome android远程调试工作原理

注意⚠️:本文为个人学习原理所翻译的文章,文中介绍的方法还未实践验证,不保证有效可用。目前仅进行了原理学习,后续会补充实际操作过程中遇到的问题。

chrome android远程调试工作原理

Chrome Android 允许通过桌面对web页面进行远程调试。调试使用了devtools-protocol协议[1]。本文介绍桌面chrome与android chrome间是如何建立连接。

android手机在开发者模式下并启用了usb调试后,chrome android允许通过unix domain sockets对chrome进行调试。可以通过socket进行连接,获取打开的页面列表。每个页面都有

一个调试url,可以用来调试这个页面。

查看unix domain socket

找到unix domain socket/proc/net/unix 包含了unix domain sockets列表。Chrome 通过_devtools_remote为名称创建sockets(参见 [2])

可以通过下列命令查看:

adb shell cat /proc/shell/unix | grep _devtools_remote

输出样式如下:

00000000: 00000002 00000000 00010000 0001 01 107909 @chrome_devtools_remote_898500000000: 00000002 00000000 00010000 0001 01 87977 @chrome_devtools_remote

建立adb转发

接着连接abstract socket并找到打开页面的列表。通过下列adb命令建立转发。

adb forward tcp:4000 localabstract:chrome_devtools_remote_8985

端口4000是随机选择的,也可是其它端口。上述的命令使adb通过usb 将localhost,tcp端口为4000的请求转发到 名为chrome_devtools_remote_8985 abstract socket上。

获取页面列表

接着可以连接到4000端口获取页面列表。

curl localhost:4000/json

可以看到如下输出

[ {"description": "","devtoolsFrontendUrl": "http://chrome-devtools-/serve_rev/@165554/devtools.html?ws=localhost:4000/devtools/page/0","id": "0","title": "/url?sa=t&source=web&rct=j&ei=aEPpUq3iIMrFoATNqYDwDQ&url=/watch%3Fv%3DoHg5SJYRHA0&cd=3&ved=0CC8QtwIwAg&usg=AFQjCNE6GowB7mL72VHPMCbZco5bTpnXbA&sig2=GBopoUdf_D-kofy7N2c80w","type": "page","url": "/url?sa=t&source=web&rct=j&ei=aEPpUq3iIMrFoATNqYDwDQ&url=/watch%3Fv%3DoHg5SJYRHA0&cd=3&ved=0CC8QtwIwAg&usg=AFQjCNE6GowB7mL72VHPMCbZco5bTpnXbA&sig2=GBopoUdf_D-kofy7N2c80w","webSocketDebuggerUrl": "ws://localhost:4000/devtools/page/0"} ]

通过webSocketDebuggerUrl使用remote debug protocol与页面通信。

总结

通过adb与手机chrome建立连接,并通过chrome devtool protocol实现调试。

原文地址

https://www.girish.in/how-remote-debugging-works-in-chrome/

参考资料

[1]https://chromedevtools.github.io/devtools-protocol/

[2]/chromium/chromium/+/c8916317b5ebe621b2deaac26eabac21da8d6329/chrome/browser/devtools/

[3]/questions/20263821/remote-webkit-debugging-with-android-4-4-webviews/2028#2028

如果觉得《chrome android远程调试工作原理》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。