网站首页 > 技术文章 正文
一、adb及其组件
adb全称为Android Debug Bridge,「Android调试桥」,是连接 Android 手机与 PC 端的桥梁,可以让用户在电脑上对手机进行全面的操作。
adb 是在 Android SDK中的tools目录下的一个工具,使用这个工具,可以直接操作和管理Android模拟器,或者真实的Android设备。
adb是一种功能多样的命令行工具,是一种客户端-服务器程序,包括以下三个组件:
- ADB client:运行在PC上,通过在命令行执行ADB,就启动了ADB Client 程序。比如Eclipse DDMS,Windows终端命令行,豌豆荚等。Client本质上就是Shell, 用来发送命令给Server
- ADB server:运行在PC上,作为ADB client的server 端,也作为adbd 服务进程的客户端
- adbd服务进程:作为daemon进程运行在Android系统上,以服务进程运行,Android系统启动时,由init程序启动adbd
二、adb工作原理
在PC HOST端,ADB会fork出一个守护进程(不是adbd),即ADB Server,而父进程(ADB Client)继续处理Client请求,所有的Client通过TCP端口号5037进行与Server 通信,而Server创建local socket与remote socket,前者用于和Client 通信,后者用来与远端进行通信,模拟器通过TCP,真机设备则通过usb。
当启动某个ADB客户端时,客户端会先检查是否有ADB服务器进程正在运行。如果没有,它将启动服务器进程。服务器在启动后会与本地TCP端口5037绑定,并监听ADB客户端发出的命令,所有ADB客户端均通过端口5037与ADB服务器通信。
然后,服务器会与所有正在运行的设备建立连接。它通过扫描5555到5585 之间(该范围供前16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现ADB守护进程(adbd),便会与相应的端口建立连接。
例如:
模拟器1,控制台:5554
模拟器1,adb:5555
模拟器2,控制台:5556
模拟器2,adb:5557
依此类推
ADB client 与ADB server之间是通过tcp进行通信,adb server和adbd通过usb或者tcp 进行通信。ADB Server对本地的TCP 5037端口进行监听,等待ADB Client 的命令。
三、adb常用命令
1、查看 adb 版本,或验证adb是否安装:
adb version
2、查看帮助信息,查看 adb 所支持的所有命令
adb help
3、启动 adb 服务
adb start-server
ps:启动 adb 服务时,默认端口为5037,若想指定端口进行启动:
adb -P <port> start-server
4、关闭adb服务
adb kill-server
5、查看当前连接的设备,已连接的设备会显示出来
adb devices
ps:设备的状态有3种,device、offline,unauthorized状态,这3种状态的含义分别是:
device,正常状态可调试
offline,仅连接不能调试,原因很可能是adb与安卓系统不匹配
unauthorized,连接不能调试,原因可能是未在手机上同意调试
6、有时即使设备物理连接正常,用adb devices查看却没有设备,则需要使用adb connect命令手动连接一下:
adb connect HOST[:PORT]
常用的模拟器的默认端口号:
连接真机手机没有传输线,可以用ip,首先保证在同一个网段,使用:IP:5555(5555也可以省略)。用ip连接注意,因为ip会变,执行命令时要注意,不要操作了其他人的设备
7、断开连接:
adb disconnect HOST[:PORT]
猜你喜欢
- 2024-09-29 图文教程:PC利用adb工具通过CMD命令控制手机动作(备忘笔记)
- 2024-09-29 ADB 调试手机的三种方式(USB、WLAN、WIFI)
- 2024-09-29 Android中如何实现adb向应用发送指令并返回
- 2024-09-29 打怪升级看这里,adb命令大全等着你
- 2024-09-29 App专项测试(3)-常见的ADB命令(下)
- 2024-09-29 软件测试学习笔记丨App端测试——adb shell相关命令
- 2024-09-29 App专项测试(2)-常见的ADB命令(上)
- 2024-09-29 番外篇——ADB命令总结 adb命令干什么用的
- 2024-09-29 「Android」Android常规adb命令 android adb命令
- 2024-09-29 泽众云真机-ADB调试功能已上线! 泽众安全科技有限公司
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)