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
版本的锁屏则可以,应该是里面针对这个问题做了一定的代码处理。