zoukankan      html  css  js  c++  java
  • ADB 运行原理

    ADB基本命令和简介

    ADB就是Android Debug Bridge,Android调试桥的意思,很形象。需要在电脑上安装SDK Platform Tools 对应的版本才能使用

    基于ADB的工具: DDMS ,monkey 测试

    测试人员熟知的ADB相关命令有 adb devices / adb shell "dumpsys  meminfo,cpuinfo"/ adb push/ adb pull /adb install / adb uninstall 等等

    那么adb到底是如何和手机端建立连接并进行交互的呢?

    ADB运行原理:

    adb分为三个部分:PC上的adb client,adb server和手机(也可能是PC上的模拟器)上的adb daemon。
    这是一个多多连接的设计。即一台PC可以连接多个手机,一台手机也可以连接多个PC。

    1、ADB Client:注意这里的Client和Daemon不是一一对应的,Client比如Eclipse DDMS,Windows终端命令行,豌豆荚等。Client本质上就是Shell,用来发送命令给Server。发送命令时,首先检测PC上有没有启动Server,如果没有Server,则自动启动一个Server,然后将命令发送到Server,并不关心命令发送过去以后会怎样。


    2、ADB Server:运行在PC上的后台程序,目的是检测USB接口何时连接或者移除设备。ADB Server维护着一个“已连接的设备的链表”,并且为每一个设备标记了一个状态:offline,bootloader,recovery或者online;Server一直在做一些循环和等待,以协调client和Server还有daemon之间的通信。offline说明Server发现了一个设备,但是不能成功连接到Daemon----这样最好重启一下手机。

    3、ADB Daemon:程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务;

    Client和Server之间还是要通过TCP/IP通信的,Server侦听本机的5037端口,Client试图去连接这个端口。

    我们看到,在没有client的时候,server进程孤独的侦听着5037口 (执行命令: netstat -nao | findstr 5037 )

    在有client的时候,client和server建立了连接。

     通过ADB无线连接终端:

    1、通过adb usb打开设备上的tcpip服务并绑定一个端口:adb tcpip 5555

     

    2、ADB Client通过命令:adb connect ip连接远程的终端

     

    3、随后就可以正常执行adb命令

     
     
    参考: https://www.jianshu.com/p/0730da7198dd
  • 相关阅读:
    类和对象
    循环结构(二)
    循环结构(一)
    Java数据类型
    对Java的初识
    函数的作用域、作用域链以及return关键字
    var、fucntion关键字优先级问题
    JavaScript中定义函数的几种方式
    JavaScript变量名与函数名的命名规范
    使用JavaScript分别实现4种样式的九九乘法表(1X1分别在左上、左下、右上、右下)
  • 原文地址:https://www.cnblogs.com/Ronaldo-HD/p/9869263.html
Copyright © 2011-2022 走看看