ADB简介

Android 专栏收录该内容
18 篇文章 1 订阅

Google官方网页 https://developer.android.com/studio/command-line/adb.html?hl=zh-cn  对ADB的介绍在国内经常打不开,为了便于查看,这里从此网页中摘录了些经常使用到的内容,如下:

ADB(Android Debug Bridge):Android调试桥是一个通用命名行工具,其允许你与模拟器实例或连接的Android设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。该工具作为一个客户端-服务器程序,包括三个组件:

(1)、客户端:该组件发送命令。客户端在开发计算机上运行。你可以通过发出 adb 命令从命令行终端调用客户端。

(2)、后台程序:该组件在设备上运行命令。后台程序在每个模拟器或设备实例上作为后台进程运行。

(3)、服务器:该组件管理客户端和后台程序之间的通信。服务器在开发计算机上作为后台进程运行。

ADB的工作方式:启动一个adb客户端时,此客户端首先检查是否有已运行的adb服务器进程。如果没有,它将启动服务器进程。当服务器启动时,它与本地TCP端口5037绑定,并侦听从adb客户端发送的命令----所有adb客户端均使用端口5037与adb服务器通信。然后,服务器设置与所有运行的模拟器/设备实例的连接。它通过扫描5555到5585之间(模拟器/设备使用的范围)的奇数号端口查找模拟器/设备实例。服务器一旦发现adb后台程序,它将设置与该端口的连接。请注意,每个模拟器/设备实例将获取一对按顺序排列的端口----用于控制台连接的偶数号端口和用于adb连接的奇数号端口。当服务器已设置与所有模拟器实例的连接后,您可以使用adb命令访问这些实例。由于服务器管理与模拟器/设备实例的连接,并处理来自多个adb客户端的命令,因此,您可以从任意客户端(或从某个脚本)控制任意模拟器/设备实例。

在您的设备上启用adb调试:要在通过USB连接的设备上使用adb,您必须在设备系统设置中启用USB debugging(位于Developer options下)。在运行Android 4.2及更高版本的设备上,Developer options 屏幕默认情况下处于隐藏状态。如需将其显示出来,请转到 Settings --> About phone并点按Build number七次。返回上一屏幕,在底部可以找到Developer options。在某些设备上,Developer options 屏幕所在的位置或命名方式可能有所不同。现在,您可以将设备与USB连接。可以从android_sdk/platform-tools/目录执行adb devices来验证设备是否连接。如果已连接,您将看到设备名称以”设备”形式列示。

注:当您连接运行Android 4.2.2或更高版本的设备时,系统将显示一个对话框,询问您是否接受允许在这台计算机上调试的RSA密钥。这种安全机制可以保护用户设备,因为它可以确保只有在您能够解锁设备并确认对话框的情况下才能执行USB调试和其他ADB命令。

通过WLAN连接到设备:一般情况下,通过USB使用adb。不过,也可以按照下面的说明通过WLAN使用它。

(1)、将Android设备和adb主计算机连接到这两者都可以访问的常用WLAN网络。请注意,并非所有访问点均适用;您可能需要使用已正确配置防火墙的访问点以支持adb的访问 点。

注:如果您尝试连接到Android Wear设备,则通过关闭与其连接的手机的蓝牙强制将它连接到WLAN。

(2)、使用USB电缆将设备连接到主计算机。

(3)、设置目标设备以侦听端口5555上的TCP/IP连接:$ adb tcpip 5555

(4)、从目标设备断开 USB 电缆连接。

(5)、查找Android设备的IP地址。

(6)、连接至设备,通过IP地址识别此设备:$ adb connect device_ip_address

(7)、请确认您的主计算机已连接至目标设备:$ adb devices

现在,您可以开始操作了!

如果adb连接丢失:

(1)、请确保您的主机仍与您的Android设备连接到同一个WLAN网络。

(2)、通过再次执行adb connect步骤重新连接。

(3)、如果无法连接,则重置adb主机:$ adb kill-server

然后,从头开始操作。

查询设备:在发出adb命令之前,知道哪些模拟器/设备实例已连接到adb服务器会很有帮助。您可以使用devices命令生成已连接的模拟器/设备的列表:$ adb devices

将命令发送至特定设备:如果多个模拟器/设备实例正在运行,在发出adb命令时您必须指定一个目标实例。为此,请在命令中使用-s选项:$ adb -s serial_number command

注意,如果在多个设备可用时您未指定目标模拟器/设备实例就发出命令,那么adb将生成一个错误。如果您有多个设备可用(硬件或模拟设备),但只有一个设备是模拟器,则使用-e选项将命令发送至该模拟器。同样,如果有多个设备,但只连接了一个硬件设备,则使用-d选项将命令发送至该硬件设备。

安装应用:您可以使用adb从开发计算机复制应用,并将其安装到模拟器/设备实例上。为此,请使用install命令。使用此命令,您必须指定您要安装的APK文件的路径:$ adb install path_to_apk

请注意,如果使用Android Studio,则无需直接使用adb(或aapt)在模拟器/设备上安装您的应用。而是由Android Studio为您处理应用的打包和安装。

设置端口转发:您可以使用forward命令设置任意端口转发----将对特定主机端口的请求转发到模拟器/设备实例上的其他端口。

将文件复制到设备/从设备复制文件:您可以使用adb命令pull和push将文件复制到模拟器/设备实例或从其中复制文件。与install命令不同(其仅将APK文件复制到特定位置),pull和push命令允许您将任意目录和文件复制到模拟器/设备实例中的任意位置。

要从模拟器或设备复制文件或目录(及其子目录),请使用:$ adb pull remote local

要将文件文件或目录(及其子目录)复制到模拟器或设备,请使用:$ adb push local remote

在上述命令中,local和remote指的是开发计算机(本地)和模拟器/设备实例(远程)上目标文件/目录的路径。例如:$ adb push foo.txt  /sdcard/foo.txt

停止adb服务器:在某些情况下,您可能需要终止adb服务器进程,然后重启它以解决问题(例如,如果adb不响应命令)。要停止adb服务器,请使用adb kill-server命令。然后,您可以通过发出任意其他adb命令重启服务器。

发出shell命令:您可以使用shell命令通过adb发出设备命令,可以进入或不进入模拟器/设备实例上的adb远程shell。要在不进入远程shell的情况下发出一个命令,请使用shell 命令。

  1、首次在Ubuntu上使用adb,需要先安装,如下图,执行命令:

$ sudo apt-get install android-tools-adb


        2、进入Android设置,将Android手机连接到PC机上,执行命令:

        $ adb shell

有时会提示error: device not found.

解决方法,以小米4, MIUI 8.5为例:设置 --> 我的设备 --> 全部参数 --> 连续点击MIUI版本,直至出现”已处于开发者模式”为止 --> 返回上一层菜单,进入更多设置 --> 开发者选项 --> 打开”开启开发者选项”:打开USB调试

  • 3
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值