Android Degug Bridge
Android操作系统与桌面电脑沟通的命令行工具,便于执行各种设备操作,如安装和调试应用。它是一种客户端-服务器程序,包括以下三个组件:参见
-
客户端,用于发送命令,客户端在开发计算机上运行,可以通过发出
adb命令从命令行终端调用客户端; - 守护进程,在设备上运行命令,守护进程在每个设备上作为后台进程运行;
- 服务器,管理客户端和守护进程之间的通信,服务器在开发计算机上作为后台运行
工作原理
当启动某个
adb客户端时,客户端会先检查是否有adb服务器进程正在运行,如果没有,他将启动服务器进程。服务器在启动后会与本地TCP端口5037绑定,并监听adb客户端发出的命令,所有adb客户端均通过端口5037与adb服务器通信。服务器会与所有正在运行的设备建立连接,一旦发现adb守护进程,便会与相应的端口建立连接。服务器与所有设备建立连接后,可以使用adb命令访问这些设备,可以从任意客户端控制任意设备。
使用步骤
- 手机设置---关于手机---版本号(连续点击 5下)
- 设置---其他设置---开发者选项---打开开发者选项,开启USB调试
adb命令
adb device -l生成已连接设备列表adb install -r path_to_apk在连接的设备上安装apkadb push local remote将 某个 文件复制到设备adb pull remote local从设备中复制某个文件-
adb logcat <option>用于转储系统消息日志,包括设备抛出错误时的堆栈轨迹-d将日志转储到屏幕并退出-e <exp>只输出日志消息与<exep>匹配的行-t <count>仅输出最新的行数
抓包工具
抓包:抓取本地电脑与远端服务器通信时传递的数据包。抓包工具主要用于网络分析,抓取的经过网卡的所有数据包,不限于单一的应用程序或进程,可用于各种场景的网络故障数据的抓取工作。
Chrome开发者工具
网页调试
内置于Google Chrome中的Web开发和调试工具,可用来对网站调试和分析。对网络中请求资源的查看主要是在Network中进行。
移动端调试
Chrome中的Remote devices可以远程调试 Android设备上的实时内容,将Android设备上的内容抓屏到开发计算机上的DevTools实例中。
- 传输线连接,
Android设备上打开Developer Options,选择Enable USB Debugging -
Chrome中打开DevTools的Remote devices,devices可以打开调试界面,使用WebView的应用也会显示在该区域。
Charles
PC端常用的网络抓包工具,在移动端开发时,为调试与服务器端的网络通讯协议,使用charles抓捕分析。可以实现:
- 截取
HTTP和HTTPS网络封包 - 支持重发网络请求,方便后端调试
- 支持修改网络请求参数
- 支持网络请求的截获并动态修改
- 支持模拟慢速网络
配置
- 打开代理,
proxy---windows proxy或mac proxy - 设置抓取
https- PC端安装证书并信任。
Help---SSL Proxying---Install charles root certificate,mac通过钥匙串访问设置,windows通过certmgr.msc查看 - 移动端安装证书,
proxy---proxy settings设置允许代理及端口号,然后安装移动端证书。 - 解决
http乱码问题:proxy---SSL proxying settings---Enable proxying settings *:443
- PC端安装证书并信任。
常用功能
-
breakpoints设置断点,修改请求响应数据。-
Structure中右键点击url选择breakpoints -
proxy---breakpoints settings出现弹层,双击url---Edit Breakpoints,勾选相应的request和response - 重新访问接口,自动跳转
breakpoints界面 - 修改数据后点击
execute即可
-
-
Map remote将指定的网络请求重定向到一个网址请求- 右键点击
url设置后重新访问页面即可
- 右键点击
-
Map Local将指定的网络请求重定向到本地文件- 右键点击
url设置后重新访问页面即可
- 右键点击
whistle
whistle是基于Node的跨平台web调试代理工具,主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用,不同于Fiddler通过断点修改请求响应的方式,whistle采用的是配置系统host的方式,一切操作可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式。参见
安装与配置
- 安装与检查
(sudo) npm install -g whistle
w2 help
- 启动
w2 start
- 重启
w2 restart
- 停止
w2 stop
- 移动端配置代理
- 代理服务器:
127.0.0.1,如果部署在远程服务器或虚拟机上,改成对应服务器或虚拟机的ip - 默认端口
8899
- 代理服务器:
- 访问配置页面,通过
ip + port形式访问即可
常用功能
- 把响应替换成本地文件内容
www.sp.com file://D:/dist/
- Composer
用来重发请求、构造请求,可以自定义请求的
url、请求方法、请求头、请求内容
- Weinre
用于调试远程页面,特别是移动端网页
- 设置
hosts
hosts文件(域名解析文件)用于存储计算机网络中个节点信息的计算机文件,用于将主机名映射到相应的ip地址,补充或取代网络中DNS的功能。
www.sp.com 127.0.0.1
//指定url中的ip和端口,把请求转发到本地8080端口,在开发中可用来去掉url中的端口号
Android中Webview无法打开HTTPS链接
调试锁屏界面时,打不开锁屏界面,一直以为是代理证书的问题走了很多坑 ,后面 参考 发现,手机添加了代理后无法打开WebView,debug版本的锁屏则可以,应该是里面针对这个问题做了一定的代码处理。