一、工具
TBS Studio是面向基于TBS的Web开发者和移动应用开发商(包括微信、手Q,三方App等)打造的开发服务整体解决方案,以提升广大开发者在真机环境下的开发效率,并帮助开发者分析和优化网页的设计,主要功能有网页Inspector调试,网页性能分析等。
二、断点类型
1.BreakPoint
下的是普通的代码断点,和平时调代码的断点是一样的,当代码运行到断点处断下
2.DOM BreakPoint
DOM变化级断点
- Subtree modifications。当当前选中的节点的child被移除或新增时触发,或者是child的内容发生改变时。在child的节点属性发生变化时不会触发,或者当前节点改变时不会触发。(亲测当自己被移除时都不会触发)
- Attributes modifications。当当前选中的节点新增属性,移除属性,或者属性值发生变化时触发。
- Node Removal。当当前选中的节点被移除时触发。
在改变或者移除一个DOM节点或者它的DOM子节点时会用到DOM change breakpoint。
3.XHR/Fetch breakpoint
当请求包含指定字符串的时候会暂停。
XHR的请求URL包含指定字符串时,使用XHR中断。当XHR调用send()方法时在对应行暂停。
注意:这个特性同样作用于Fetch请求。
在XHR/Fetch上打断点的场景,非常适用于请求一个不正确的URL,而且你想很快找到AJAX或者Fetch 源代码去发现导致错误请求的原因。
设置一个XHR类型的断点的步骤如下:
- 1.单击Sources tab
- 2.展开XHR Breakpoints
- 3.单击Add breakpoint
- 4.键入你想断点的string。DevTools会在string出现在任何XHR的请求的URL时进入断点
- 5.按下Enter进行确认
在XHR Breakpoints中为包含URL中的org的任何请求创建XHR断点
实验:
当前页有5个来自crm.test.foo.com的请求,每次都会进入到XHR断点。
- 可以对协议做断点。例如http,https,ws,wss等等。
- 可以对域名做断点。例如github.com,segmentfault.com等等。
- 可以对端口号做断点。例如http://test.foo.com:8080,http://test.bar.com:9090等等。
- 可以对路径做断点。例如http://test.foo.com/bar,http://test.foo.com/bar/baz
- 可以对参数做断点。例如http://test.foo.com/bar;type=baz
- 可以对查询字符串做断点。例如http://test.foo.com/bar?type=...
- 可以对片段做断点。例如http://test.foo.com/bar/#foo
4.Event Listener breakpoints
如果要暂停事件触发后运行的事件侦听器代码,请使用事件侦听器断点。我们可以选择特定的事件,例如click事件;或者事件类别,例如所有的鼠标事件。
- 1.点击Sources tab
- 2.展开Event Listener Breakpoints面板。DevTools展示了一个事件目录的列表,例如Animation。
- 3.选中这些事件类别中的一个做断点,这个断点会在事件触发时进入,或者是选择事件类别下的一个或多个做断点。
详细参考:https://segmentfault.com/a/1190000016671687?utm_source=tag-newest
三、调试
调试环境本文用的是TBS Studio,同样谷歌浏览器也带有inspect功能,在浏览器输入 chrome://inspect/#devices ,即可进入调试界面,但是通过实验,当进入的时候调试界面是空白的,需要下载插件,FQ后可以进入界面,但是只显示js文件,点击js文件显示不出js代码,且界面严重变形,MAC、windows上都是如此,所以最好的还是使用TBS,流畅。经过实验TBS只能调试一部分webview界面,有大部分的基于webview调试不了,inspect后一直空白,原因待查找。
1.手机打开USB调试模式和enable view attribute inspection
2.进入调试页面
其中涉及js和Android客户端的互调,安卓端可以使用AS+DDMS调试,两者可以同步调试。
如此就实现了远端Android Js的调试需求。