● 前言

    利用工作之余的时间将Android测试相关知识进行一个整理,一来巩固一下自己学到的东西;二来

可以让想学习Android测试的同学多一份学习资料。


● 何为ADB

  什么是ADB呢?为什么手机和电脑之间用usb连接后,就可以电脑上通过应用宝或者豌豆荚等手机助

手软件对手机进行操作?

  答案就是:因为这些都依赖于ADB。ADB就是连接手机和电脑通信的桥梁,只要这个桥梁建立起了,

那么你就可以通过电脑来控制你的手机了。


  ADB全称Android Debug Bridge,我把它解释为“安卓调试的桥梁”,他是由三部分组成:

    1、客户端 client:运行在你的电脑上,你可以通过shell来调用起一个客户端。其他Android

工具,例如ADT插件、DDMS都可以创建出一个客户端

    2、服务器 server:运行在你电脑的后台,负责管理client和daemon进行通信。

    3、守护进程 daemon:运行在模拟器或者Android设备的后台。

  但是它最终呈现给我们用的就是一个命令行的工具 ( command line tool ),通过它我们就可以

和模拟器或者是Android设备进行通信。它就在 <sdk>/platform-tools/ 这个目录下:

     

wKiom1gqdRmRjo2NAAGz7xjZBUQ582.png

wKioL1gqdRqByuUPAAD5a5XOFss221.png

  每次启动客户端的时候,首先会检查服务器是否已经在后台运行了,如果没有,他就会启动server进程;

  如果server是开启的,server就会绑定在 TCP 的 5037 端口然后监听客户端发出来的命令;

  所有的client都是通过 5037 端口和server进行通信的。


USB调试

  当我们通过USB数据线来使用ADB的时候,通常需要将 "设置"-"开发者选项"-"USB调试" 这个框勾上。

wKiom1gqddmDMFLHAAC28jab9gU265.png

  需要注意的是:在有些 Android 4.2.2版本以上,是隐藏了“开发者选项”的,因此需要在 “设

置”-“关于手机”-“Android版本” 在这里连续点击7次,然后“开发者选项”就出现了。


● ADB 命令


  连上手机,配置好了环境变量(直接搜索“adb环境变量配置”会出一大堆)就可以使用命令了。下面列举一下常用的命令

 

 adb devices  查看当前连接设备


  显示当前连接的一个序号和状态:

  

 

 adb install <path_to_apk>    安装apk文件


  给的Apk的路径是当前PC端文件所在的路径:

  

 

 adb -s <serialNumber> <command>    指定设备执行命令


  serialNumber就是adb devices中的第一列的信息

  

 

 adb pull <remote> <local>   将Android设备上的文件拉到本地


  一般Android手机默认的存储路径是“/mnt/sdcard/”,我们把这里面的一个文件拉到C盘

  

  然后我们去电脑的C盘下去看一眼:

wKioL1gqdw7ypTbcAAGeTp-h2B0448.png

               通过Adb pull 命令复制出来的文件


 adb push <local> <remote>      把本地文件复制到Android设备上

  和 adb pull 刚好是一对相反的命令。  

  

 

 adb start-server    启动adb的server

 adb kill-server     关闭adb的server

  有点时候adb在没有响应的时候,我们需要重启adb,不过这种情况一般较少。

  

 

 adb shell [shellCommand]       运行shell命令

  众所周知,Android是基于linux内核的,因此可以在Android的系统上运行shell命令

  通过adb shell 可以进入手机的系统,然后执行一些linux的命令

  

  当然也可以不进入系统,直接使用命令

  

 

  例如adb shell下安装和卸载命令是:

  pm uninstall com.tencent.qq
  pm install -r "/data/local/tmp/com.tencent.qq"


  本文为个人使用的认知,知识点可能会有些偏差,希望大家能批评指正。