带你了解 Android Debug Bridge (adb)

官网地址:https://developer.android.com/studio/command-line/adb.html#forwardports

adb是一个功能丰富的命令行工具,它让你能够和虚拟机或者Android设备交互.

是一个客户端-服务器类型的程序,包括:

  1. 客户端:用来发送命令,它运行在电脑中,我们可以通过shell调用客户端.另外的Android工具比如DDMS也可以创建adb客户端.
  2. 守护进程:用于在设备中运行命令.它作为一个后台进程运行在虚拟机或者Android设备中
  3. 服务器:管理客户端和守护进程之间的交互.它作为后台进程运行在电脑中.

adb工具地址:/platform-tools(这个地址一般会配置环境变量)

adb如何工作

开启adb客户端的时候

  1. 检查是否有已经运行的adb 服务器. 如果没有就创建服务器.
    • 服务器创建的时候会绑定一个TCP 端口 5037
    • 并且监听客户端发送出来的命令(客户端发送的所有命令都经过5037端口到达adb server)
  2. 服务器连接所有正在运行的虚拟机/真机.
    • 服务器通过搜索端口5555-5585来搜索虚拟机/真机.

    • 如果在端口中搜索到守护进程,就会建立到这个端口连接

    • 每一个5555-5585的端口对应一个设备(如果有多个设备连接)

      Emulator 1, console: 5554
      Emulator 1, adb: 5555
      Emulator 2, console: 5556
      Emulator 2, adb: 5557
      and so on...
      
  3. 连接成功后就可以使用adb命令控制设备了

启用adb

  1. 手机端开机USB 调试
  2. (可选)开启应用未知来源
  3. (可选)开启存储卡模式

adb命令 格式

adb [-d|-e|-s ] 

查询当前连接的设备

adb devices

结果:

[serialNumber] [state]
  • Serial number:比如emulator-5554,格式-
  • State:offline/device/no device

执行命令的时候指定端口

adb -s   

比如:

adb -s emulator-5556 install helloWorld.apk

安装应用到设备

adb install 

和设备文件交互

从设备中获取文件:

adb pull  

发送文件到设备:

adb push  

停止adb Server

adb kill-server

无线连接设备

(如果通过usb连接设备出现 no serialNumber 的时候可以尝试下面的连接方式)

  1. 手机和电脑在同一个wifi网下
  2. 连接usb线
  3. $ adb tcpip 5555
  4. 断开usb
  5. 在手机设置-->关于-->手机状态信息-->IP地址
  6. $ adb connect
  7. $ adb devices

你可能感兴趣的:(带你了解 Android Debug Bridge (adb))