adb 的工作原理

当启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。

然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:

模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推

如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。

服务器与所有设备均建立连接后,便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此可以从任意客户端(或从某个脚本)控制任意设备。

通过 Wi-Fi 连接到设备(Android 11 及更高版本)

Android 11 及更高版本支持使用 Android 调试桥 (adb) 从工作站以无线方式部署和调试应用。例如,可以将可调试应用部署到多台远程设备,而无需通过 USB 实际连接设备。这样就可以避免常见的 USB 连接问题,例如驱动程序安装方面的问题。

如需使用无线调试,需要使用配对码将您的设备与工作站配对。host pc和设备必须连接到同一无线网络。请按以下步骤操作:

图 1. 无线 ADB 配对对话框。

  1. 在host pc上,更新到最新版本的 SDK 平台工具。
  2. 在设备上启用开发者选项。
  3. 启用无线调试选项。
  4. 在询问要允许在此网络上进行无线调试吗?的对话框中,点击允许
  5. 选择使用配对码配对设备。记下设备上显示的配对码、IP 地址和端口号(参见图片)。
  6. 在工作站上,打开一个终端。
  7. 运行 adb pair ipaddr:port。 使用第 5 步中的 IP 地址和端口号。
  8. 当系统提示时,输入在第 5 步中获得的配对码。系统会显示一条消息,表明我们的设备已成功配对。
        noneEnter pairing code: 482924Successfully paired to 192.168.1.130:37099 [guid=adb-235XY]
    
  9. (仅适用于 Linux 或 Microsoft Windows)运行 adb connect ipaddr:port。使用无线调试下的 IP 地址和端口。

    图 2. 无线 adb IP 地址和端口号。

通过 WLAN 连接到设备(Android 10 及更低版本)

一般情况下,adb 通过 USB 与设备进行通信,但我们也可以在以下情况下通过 WLAN 使用 adb:

  1. 将 Android 设备和 adb 主机连接到这两者都可以访问的同一 WLAN 网络。请注意,并非所有接入点都适用;我们可能需要使用防火墙已正确配置为支持 adb 的接入点。
  2. 如果要连接到 Wear OS 设备,请关闭手机上与该设备配对的蓝牙。
  3. 使用 USB 线将设备连接到主机。
  4. 设置目标设备以监听端口 5555 上的 TCP/IP 连接。
    adb tcpip 5555
    
  5. 拔掉连接目标设备的 USB 线。
  6. 找到 Android 设备的 IP 地址。例如,对于 Nexus 设备,可以在设置 > 关于平板电脑(或关于手机)> 状态 > IP 地址下找到 IP 地址。或者,对于 Wear OS 设备,您可以在设置 > WLAN 设置 > 高级 > IP 地址下找到 IP 地址。
  7. 通过 IP 地址连接到设备。
    adb connect device_ip_address
    
  8. 确认主机已连接到目标设备:
    $ adb devices
    List of devices attached
    device_ip_address:5555 device
    

现在,我们就已经建立wireless ADB连接啦!

ADB:通过 Wi-Fi 连接到Android设备的两种方法相关推荐

  1. android中资源文件的两种访问方式,Android_Android学习笔记-保存文件(Saving Files),Android设备有两种文件存储区域 - phpStudy...

    Android学习笔记-保存文件(Saving Files) Android设备有两种文件存储区域: 内部存储和外部存储 ("internal" and "externa ...

  2. mysql+数据库连接标识_新人必看!连接到MySQL数据库的两种方法

    原标题:新人必看!连接到MySQL数据库的两种方法 使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库. 实例 以下是从命令行中连接mysq ...

  3. Adb连接android设备的2种方法!!!!

    第一种:USB连接(最简单的方式): 安卓手机打开开发者模式,启用usb调试 CMD窗口输入adb devices就可以看到连接的设备了 第二种:Wifi连接 安卓机和电脑都在同一局域网内 CMD窗口 ...

  4. Android 打电话实现两种方法

    我们需要在AndroidMenifest文件里加上这个权限:<uses-permission android:name="android.permission.CALL_PHONE&q ...

  5. Android 获取UUID两种方法

    第一种:SIM卡唯一标识 + DEVICE_ID(根据不同的手机设备返回IMEI,MEID或者ESN码)+androidId 这种方式获取的UUID是唯一不可变的,但是仅适用于手机中有SIM卡的情况. ...

  6. Android应用截图两种方法

    在Android应用开发过程中,可能会遇到需要对整个界面或者某一部分进行截图的需求.Android中对View的截图也有很多中方式: 使用DrawingCache 直接调用View.draw Draw ...

  7. android打开网址两种方法

    方法一: 使用webview控件 wv = (WebView) findViewById(R.id.webView1); wv.getSettings().setJavaScriptEnabled(t ...

  8. Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!

    各大网站都有推出自己的手机访问版本页面,不管是新闻类还是视频网站,我们在电脑是无法直接访问到手机网站的,比如我经常访问一个3g.qq.com这个手机站点,如果在电脑上直接打开它,则会跳转到其它页面,一 ...

  9. android p2p 连接服务器上,当通过Wi-Fi P2P使用网络服务发现时无法连接到Android设备每个人都可以使用网络服务发现...

    ! 我正在开发一个Android应用程序,允许与附近已安装此应用程序的设备聊天.为了做到这一点,我使用Wi-Fi P2P API和网络服务发现来搜索附近的设备. 我已经编写了用于在服务启动的线程中搜索 ...

最新文章

  1. Spring Cloud Alibaba 之 服务治理:Nacos 如何实现微服务服务治理
  2. HALCON示例程序particle.hdev测量小圆部分
  3. HTML+CSS+JS实现 ❤️透明的水滴文字背景特效❤️
  4. 将一正整数序列{K1,K2,…,K9}重新排成一个新的序列。新序列中,比K1小的数都在K1的左面(后续的再向左存放),比K1大的数都在K1的右面(后续的再向右存放),从K1向右扫描
  5. 学习http only cookie以及javascript创建cookie的方式
  6. 不支持对系统目录进行即席更新
  7. 阶段3 1.Mybatis_03.自定义Mybatis框架_5.自定义Mybatis的编码-创建两个默认实现类并分析类之间的关系...
  8. 上海黑马python培训
  9. android模拟器 不能启动不了,Android模拟器启动不了解决办法
  10. 语义标签(Semantic label)与多模态模型的一些关系
  11. vue3中瀑布流插件 vue-masonry 的使用
  12. WebPack 学习:从阮神的15个DEMO开始
  13. 用python计算100以内所有奇数的和_python怎样求1到100的奇数和
  14. 超强锁SuperPro
  15. android接收红外传感器发送的脉冲信号,esp8266_sdk_ir_rx_tx红外遥控示例
  16. JAVA关于Calendar类的使用
  17. 对自己未来职业的规划
  18. JSch SSH2 for Java
  19. selenium 爬虫项目实例 爬取社保五险
  20. 什么是密码管理器?它安全吗?

热门文章

  1. 使用存储过程实现循环更新3组数组中的数据
  2. 常见对儿童的精神虐待行为及原因分析
  3. 网站关键词优化如何优化大量关键词?
  4. “151秒识别128万张ImageNet图像”背后,腾讯告别技术赛马
  5. OpenCV 画任意圆弧曲线
  6. 带视频详细教程三套模板免授权交友盲盒1.8.0H5脱单盲盒交友源码
  7. 2019,无数人改变命运的绝佳之年!(深度)
  8. 当前目录下有一个文件名为 score1.txt 的文本文件,存放着某班学生的计算机课成绩,共有学号、平时成绩、期末成绩三列。请根据平时成绩占 40%,期末成绩占 60%的比例计算总评成绩。
  9. 0. 一字一句的搞懂vue-cli之vue webpack template配置
  10. nRF SPI 与 TWI 操作相关 (BMI088 与 MLX90614 举例)