在本教程中,我们将了解什么是ADB以及如何从命令行或测试脚本发出adb命令。以下内容将在本章中介绍:
- 如何打印adb版本号
- 如何将所有连接的设备/模拟器实例的列表打印到adb服务器。
- 如何安装apk文件到模拟器/读取Android设备
- 如何捕获Android设备的日志
- 如何启动和终止adb服务器
- 如何在目标模拟器/设备实例中启动远程shell。
- 如何将文件(.txt / .pdf / .jpg / .apk)推送到设备/模拟器
- 如何将文件(.txt / .pdf / .jpg / .apk)从设备/模拟器拉到本地计算机
- 如何将adb命令重定向到特定设备。
亚行 :ADB代表 Android Debug Bridge。它是一个命令行工具,可让我们与Android设备或模拟器进行通信。它是一个客户端 - 服务器程序,包括三个组件:
- 客户端,在我们的机器上运行。我们可以通过发出adb命令来调用客户端。
- 守护程序,在每个模拟器或设备实例上作为后台进程运行。默认情况下,它在端口号5037上运行
- 一台服务器,在我们的机器上作为后台进程运行。它管理客户端与模拟器或设备上运行的adb守护程序之间的通信。
这个工具可以在Android ADB捆绑包中找到,我们可以从这里下载。adb工具的位置是Android >> android-sdk >> platform-tools >> adb:
注意:在Windows上安装Android SDK / ADB的步骤。
最常用的ADB命令
如何打印adb版本号?
命令语法: adb version
此命令打印 adb版本号
如何将所有连接的设备/模拟器实例的列表打印到adb服务器?
命令语法: adb devices
此命令打印所有连接设备的状态信息。
这将以以下格式显示信息:
序列号状态
6a2ed0b设备
序列号:由adb创建的字符串,用于唯一标识仿真器/设备
状态:实例的连接状态。它可以离线,设备,没有设备
- 离线:设备未连接或未响应
- device:设备已连接到adb服务器
- 无设备:没有设备连接到adb服务器
看看上面的截图,adb设备命令被触发三次,结果每次都不同。
第一次尝试:它显示了两个连接的设备,其中一个是真实设备,另一个是在机器上运行的仿真器。要了解有关仿真器或设置用于移动测试的仿真器的更多信息,请参阅如何使用Android仿真器创建Android虚拟设备。
第二次尝试:再次显示两个设备,但这次模拟器显示为离线状态,因为我将其关闭。
第三次尝试:在最后一次尝试中,它没有显示任何内容,因为我分离了连接的设备并关闭了机器上正在运行的仿真器。
如何安装apk文件到模拟器/读取Android设备?
命令语法: adb install <local_path_to_apk>
此命令将apk文件安装到连接的设备/模拟器
注意:在启动adb install命令之前,应该启动并运行模拟器。在上面的屏幕截图中,模拟器-5554显示设备状态,表示它已启动并正在运行。
注意:我有一个位于C:\ Apps \ Amazon的Amazon APK文件。
完成后,请注意Amazon应用程序将显示在“模拟器”屏幕中。
要了解有关仿真器或设置用于移动测试的仿真器的更多信息,请参阅如何使用Android仿真器创建Android虚拟设备。
如何捕获Android设备的日志?
命令语法: adb logcat
此命令将日志数据打印到屏幕以进行错误报告。我们还可以使用以下命令将这些日志存储到本地文件中:
命令语法: adb logcat> <local_path_to_text_file>
将在给定位置创建日志文件。
如何启动和终止adb服务器?
用于终止服务器的命令语法: adb kill-server
此命令终止adb服务器。
启动服务器的命令语法: adb start-server
此命令检查adb服务器是否正在运行并启动它(如果未运行)。
如何在目标模拟器/设备实例中启动远程shell?
命令语法:adb shell
ADB提供了一个Unix shell,可用于在仿真器或连接的设备上运行各种命令。命令二进制文件存储在仿真器或设备的文件系统中。可以在shell上执行以下命令:
命令语法: getprop ro.product.model
此命令获取附加的设备型号no
命令语法: getprop ro.build.version.release
这个命令获取android构建版本,即4.4.2 / 4.4.4
命令语法: getprop ro.build.version.sdk
此命令获取设备api版本,即19,20,21,22
命令语法: pm list packages -f
使用pm(包管理器工具),我们可以对安装在设备上的应用程序包执行操作和查询。例如,我们列出了包含相关文件路径的所有包。
注意:这里 pm是一个工具,列表包是一个命令, -f是列出与包关联的文件路径的选项。
上述命令也可用于打印已安装应用程序的包。例如Android浏览器的应用程序包也可以使用安装在设备上的应用程序包进行打印。
命令语法:pm list packages -f | grep“chrome”
命令语法:pm list packages -f | grep“mozilla”
命令语法: pm uninstall <app Package Name>
根据上述命令,可以使用pm工具卸载应用程序。
第1步:获取Amazon应用程序包
第2步:卸载Amazon Package
第3步:再次获取Amazon应用程序包,这次它不会显示任何内容,因为现在从设备上卸载了Amazon应用程序,请参阅下面的内容屏幕截图。
如何将文件(.txt / .pdf / .jpg / .apk)推送到设备/模拟器?
命令语法: adb push <local_Path_of_file> <remote_Path_where_file_to_be_copied>
让我们看看如何做到这一点。首先,需要在目标模拟器/设备实例中启动远程shell,并找到复制文件的远程路径。例如,将文件复制到SD卡
- ls -l | grep“storage” - 列出名称存储的文件/目录
- cd storage - 将当前目录更改为'storage'
- ls -l | grep“sdcard” - 列出名称为sdcard的文件/目录
- cd sdcard1 - 将当前目录更改为'sdcard1'= storage / sdcard1
- ls -l - 列出sdcard1中的所有文件/目录
- pwd - 查看当前路径,这是远程路径
现在推送亚马逊apk填充的命令是:adb push C:\ Apps \ Amazon \ in.amazon.mshop.android.shopping.apk / storage / sdcard1
命令语法: adb pull <remote_Path_of_file_on_device> <local_Path_where_file_to_be_copied>
如何将adb命令重定向到特定设备?
如果正在运行多个模拟器和/或连接了多个设备,并且执行了adb shell命令。如果连接了多个设备,则此命令将返回错误。请参阅以下屏幕截图中的步骤2。
-d,-e或-s选项可用于指定命令应指向的目标设备。
命令语法: adb -s <deviceName> <command>
将adb命令指向传递了deviceName的特定仿真器/设备实例。
命令语法: adb -d <command>将
adb命令定向到唯一连接的 USB设备。
命令语法: adb -e <command>将
adb命令定向到唯一连接的仿真器。
注意:如果正在运行多个仿真器实例,则此命令将返回错误。