Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Chrome DevTools 远程调试安卓网页的原理

Chrome DevTools 远程调试安卓网页的原理

作者头像
神说要有光zxg
发布于 2022-11-11 08:45:21
发布于 2022-11-11 08:45:21
2.2K0
举报

作为前端开发,我们每天都会用 Chrome DevTools 调试 Chrome 的网页,但其实它还可以远程调试安卓手机的网页。

那 Chrome Devtools 如何远程调试安卓网页呢?它的实现原理是什么?

今天我们就来了解一下:

远程调试安卓网页

用数据线把安卓手机和电脑连接起来,在手机设置里打开 USB 调试:

然后在 chrome 打开 chrome://inspect 页面,勾选 Discover USB devices(默认是勾选的):

这时候下面就会出现一个提示:请在设备上接受 debugging 会话

在手机上点击确定,就会建立调试会话:

下面就会列出所有可以调试的网页:

浏览器里的网页,或者 APP 调试包的 webview 的网页都会列出来。

点击 inspect 就可以调试了:

可以审查元素:

可以打断点:

也可以用 Performance 分析性能:

各种调试 PC 网页的功能基本都支持。这样就可以愉快的调试安卓的移动端网页了。

不过这个过程你可能会遇到这样的问题,打开的窗口是空白的或者是 404:

这是因为调试的目标可能是任意 chrome 版本,那么 Chrome Devtools 自然也要用相应的版本才行,所以就需要动态下载。

而动态下载的 devtools 网页是在 google 域名下的,需要科学上网才行。

科学上网之后,就可以正常的下载 Chrome DevTools 来做调试,也就不会白屏或 404 了。

但也不是每次都要科学上网,一个调试目标只需要下载一次 Chrome Devtools 的代码,之后就可以一直用了。

我们了解了 Chrome DevTools 怎么调试安卓的网页,那它的原理是什么呢?

Chrome DevTools 的原理

Chrome DevTools 被设计成了和 Chrome 分离的架构,两者之间通过 WebSocket 通信,设计了专门的通信协议:Chrome DevTools Protocol。

这样只要实现对接 CDP 协议的 ws 服务端,就可以用 Chrome DevTools 来调试,所以 Chrome DevTools 可以用来调试浏览器的网页、调试 Node.js,调试 Electron 等。

那自然也就可以远程调试安卓手机的网页了,只要开启了 USB 调试,那手机和电脑就可以做网络通信,从而实现基于 CDP 的调试。

这个 CDP 的调试协议是 json 格式的,如果想看它传输了什么也是可以的:

下载金丝雀版本的 chrome:

在 Chrome DevTools 的 more tools 里打开 Protocol Monitor 面板:

然后你就可以在 Protocol Monitor 面板里看到所有的 CDP 协议的数据交互了:

这就是调试的实现原理。

总结

Chrome DevTools 和 Chrome 是分离的架构,两者通过 WebSocket 通信,通信协议是 Chrome DevTools Protocol,可以在金丝雀版本的 Protocol Monitor 里看到 CDP 的数据交互。

因为这样的实现原理,Chrome DevTools 可以调试很多目标,其中就包括 USB 设备。

打开 USB 调试之后,在 chrome://inspect 页面就可以看到可调试的网页了,点击对应的网页就可以调试。

要注意的是调试的目标浏览器要和用的 Chrome DevTools 版本一一对应才行,所以第一次调试会先下载 Chrome DevTools,这需要访问 google 的域名,如果没有科学上网,会有白屏和 404 的问题。

理解了调试的原理,Chrome DevTools 调试安卓网页的流程,就可以愉快的远程调试安卓手机的网页了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 神光的编程秘籍 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
聊一聊如何基于Chrome Devtools 进行远程调试
Devtools-Remote-Debugger 正如其名,是一个基于最新版 Chrome Devtools 开发者工具构建的 Web 远程调试工具。它能够让 Web 开发者使用最熟悉的 devtools 调试工具来远程调试 Web 项目。
前端达人
2023/08/31
1.6K0
聊一聊如何基于Chrome Devtools 进行远程调试
如何使用谷歌浏览器远程调试安卓/ios真机H5应用?
今年年初受疫情的影响,给大部分同事办公带来了不便,因此,公司今年开始着手移动办公,将部分原来需要在PC端操作的功能逐渐增加到了移动端,开发了很多的H5报表。因为是内部用的功能,在测试的时候也没有可以去关注兼容性和一些app端的专项测试,我们只是负责测试自己部门开发的轻应用,接入到公司的平台中能不能正常使用。
小博测试成长之路
2021/03/06
2.5K0
玩转 Chrome DevTools,定制自己的调试工具
Chrome DevTools 是我们每天都用的工具,它可以查看元素、网络请求、断点调试 JS、分析性能问题等,是辅助开发的利器。
神说要有光zxg
2022/11/11
4K1
玩转 Chrome DevTools,定制自己的调试工具
Chrome DevTools 远程调试协议分析及实战
Chrome DevTools 可以说是前端开发最常用的工具,无论是普通页面、移动端 webview、小程序、甚至 node 应用,都可以用它来调试。
winty
2020/04/26
7.6K0
Chrome DevTools 远程调试协议分析及实战
chrome安卓WebView调试出现空白页面的解决方案
最近在调试一个通过webview打开本地html的页面。 出现了: 404 Not Found The resource could not be found
雪碧君
2023/02/13
2.8K0
几个一看就会的 Chrome Devtools 小技巧
Chrome Devtools 是我们整天用的工具,多学一些小技巧还是挺有意义的。
神说要有光zxg
2022/06/06
5950
几个一看就会的 Chrome Devtools 小技巧
笔记 | 远程调试手机微信内置浏览器步骤
已经逐渐成为了很多项目的重要适配对象。作为一款国民级应用,他的调试却并不像普通浏览器那样开放。
Zkeq
2022/05/18
7.8K2
笔记 | 远程调试手机微信内置浏览器步骤
Android远程调试Web页面
曾经有一段时间专门处理了一下远程调试的事情,要解决的问题是不依赖Chrome如何在移动设备中调试Web页面。有时候真的奇怪,因为我们老是自己制造问题,因为“墙”的存在被迫去解决这些本来不是问题的问题。
icepy
2019/06/24
1.6K0
Android远程调试Web页面
App真机 - 联调chrome、Safari调试
1、打开手机端web检查器,设置 -> Safari -> 高级(最底部) -> Web 检查器 打开
White feathe
2021/12/08
9360
cdp 远程调试方案
cdp 协议简称 chrome 调试协议,是基于 scoket(websocket、usb、adb )消息的 json rpc 协议。用来调用 chrome 内部的方法实现 js、css 、dom 的开发调试。 可以将实现了 cdp 协议的应用看做 rpc 调用的服务端( chrome 、puppeteer), 将调试面板看做 rpc 调用的客户端(devtools)。
政采云前端团队
2022/04/27
2.8K0
cdp 远程调试方案
通过 Chrome devtools protocol 和 adb 调试 Android Webview
前提条件:usb 连接手机,adb 能查找到 devices,如果有问题,多拔插几次,确认授权。
用户1258909
2021/08/20
4.3K0
通过 Chrome devtools protocol 和 adb 调试 Android Webview
Chrome Devtools 高级调试指南(新)
前言 本文暂未涉及Performance面板的内容。 后续会单独出一篇,以下是目录: 常用命令和调试 黑盒脚本:Blackbox Script 控制台内置指令 远程调试WebView 1. Chrome Devtools 的用处 前端开发:开发预览、远程调试、性能调优、bug跟踪、断点调试等 后端开发:网络抓包、开发调试Response 测试:服务端API数据是否正确、审查页面元素样式及布局、页面加载性能分析、自动化测试 其他:安装扩展插件,如AdBlock、Gliffy、Axure等 2. 菜单面板拆解
前端劝退师
2019/10/13
2.8K0
调试工具的通用原理:调试四要素
有同学说,我用 Chrome DevTools 调试网页,可以查看元素,网络请求,断点运行 JS,用 Performance 工具分析性能等,这是网页的调试。
神说要有光zxg
2022/11/11
2.4K0
调试工具的通用原理:调试四要素
【Android TV 开发】安卓电视调试 ( 开启网络远程调试 )
一般电视盒子是不具备 USB 线调试功能 , 多数只能使用 adb 远程调试 , 国内的电视盒子提供一个 USB 的接口可以插 U 盘 ;
韩曙亮
2023/03/29
4.6K0
【Android TV 开发】安卓电视调试 ( 开启网络远程调试 )
如何用Sonic云真机打王者
使用Sonic进行跨网段部署,助力海外业务的公司进行专项检测。提供定时任务充分利用无人值守时间回归UI测试,省时省力。自研随机事件测试与UI遍历W测试,支持打通Jenkins的DevOps流程,Sonic提供图像识别,后续还会添加poco控件,助力游戏公司测试效率。趣味交互让用户不再感到繁琐。丰富图表展示,用户实时洞察用例执行情况,把控产品质量。
霍格沃兹测试开发
2022/06/09
1.7K0
使用Safari或者Chrome远程调试IOS Safari中的页面
【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/108020899
后端老鸟
2020/08/15
23.6K0
使用Safari或者Chrome远程调试IOS Safari中的页面
Web自动化之Headless Chrome开发工具库
本文作者:IMWeb 钌子_rawbin 原文出处:IMWeb社区 未经同意,禁止转载 命令行运行Headless Chrome Chrome 安装 下载地址 几个版本的比较 Chromiu
IMWeb前端团队
2018/01/08
9490
远程调试的利用
应用程序开发过程中,开发占总时间一半的话,调试可能会占一小半。读书破万卷,下笔如有神,但是在编程领域似乎破万卷也得通过不断地调试,找出程序存在的问题,完善程序功能
意大利的猫
2024/04/03
8400
远程调试的利用
自己实现 Chrome DevTools 的 Coverage 功能
Chrome DevTools 有一个覆盖率检测的功能,可以检测 JS、CSS 代码里有哪些执行了,哪些没执行。并且还会在 sources 里标记出来。
神说要有光zxg
2022/11/11
9270
自己实现 Chrome DevTools 的 Coverage 功能
【调试】939- 5个Chrome调试混合应用的技巧
对前端开发人员来说,Chrome 真是一个必备的开发工具,大到页面展示,小到 BUG 调试/HTTP 抓包等,本文我将和大家分享自己做混合应用开发过程中经常用到的几个调试技巧。
pingan8787
2021/04/28
2.2K0
【调试】939- 5个Chrome调试混合应用的技巧
相关推荐
聊一聊如何基于Chrome Devtools 进行远程调试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档