ADB简介

2023-10-27

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调试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ADB简介 的相关文章

随机推荐

  • 【Taro】微信小程序关于隐私协议改造

    之前微信刚公布要求整改小程序获取用户隐私接口的改造公告那会 Taro还没有支持这方面的更新 于是当时就暂时搁置了一下 后面发现有人回复了我的提问 并且给出了解决方案 按照大佬给出的解决方案试了下 果然可行 所以在此记录分享一下 首先 当时的
  • 基于springboot实现的https单向认证和双向认证(java生成证书)

    1 java生成HTTPS证书 既然是双向验证 就需要双方的密钥 我们服务端称为localhost 而客户端称为client 需要生成双方的密钥文件 并把对方的cert导入自己的密钥文件里 整个过程如下 注意 密码统一为 changeit
  • python使用pd.read_csv(),出现错误UnicodeDecodeError: ‘utf-8‘ codec can‘t decode ......

    首先说一下这个原因 所读取的csv文件的编码方式不是utf 8 然后现在指定encoding UTF 8 会出现以上问题 一 查看你的csv文件时什么编码方式 使用记事本打开csv文件 红框所示即csv文件的编码方式 现在你的csv文件的编
  • [春秋云镜]CVE-2021-41402

    声明 中所涉及的技术 思路和 具仅供以安全为 的的学习交流使 任何 不得将其 于 法 途以及盈利等 的 否则后果 承担 所有渗透都需获取授权 靶场介绍 flatCore CMS v2 0 8 存在后台任意代码执行漏洞 春秋云镜开启靶场 ht
  • org-mode报错:export html等格式时,错误args out of range

    错误概述 参数超出范围 解决过程 相关命令没有任何改动 原因 org的内容有问题 当前遇到的是表格写法 不符合org mode的规则
  • Linux下保存的SVN帐号及密码

    做个笔记备忘 Linux下SVN帐号和密码 如果有保存的话 大多是明文保存在 subversion auth svn simple的 因此如果服务器帐号和密码被人知道 并且你有在服务器上使用过或者还保存过密码 那么就帐号和密码就很容易被人一
  • cocos2dx使用TiledMap创建斜45度地图场景

    做游戏 场景是一个很重要的部分 如果缺少这一步 很难做出好的游戏 对于cocos2dx来说 有很多2D的地图编辑器可以用 效果都还可以 其中Tiled是支持的比较好的 它支持Tiled编辑出来的几种模式 比如正常 45度地图等 如果要做小型
  • vim的目录树插件NERDtree的安装

    下载 https github com preservim nerdtree 上面是NERDTree插件的下载链接 在github上下载即可 将下载的文件的解压 并通过虚拟机的共享文件夹共享到虚拟机 将共享的文件 复制到 vim 目录下 如
  • USB Type C 接口引脚详解

    1 Type C 接口特点 Type C 是一组对称的连接器 在使用的过程中不需要如同使用 USBA MinUSB MicroUSB 那样来辨别接口方向 其次能够承受较高的功率所以可以支持高达 100W 的功率 所以使用该接口可以更好的支持
  • 骁龙435和骁龙625处理器哪个好?

    2016年2月 美国高通公司推出了三款中低端芯片 它们分别是骁龙425 骁龙435 骁龙625 这三款芯片配备更快的LTE网络基带 可实现全网通 骁龙425市场表现比较平淡 而骁龙625是目前较为热销的手机芯片 其中骁龙435也逐渐在市场活
  • Linux文件编程常用函数详解——wait()函数

    函数原型和头文件 include
  • 【JavaScript】判断对象是否有某个key

    1 in方法 实例属性 继承属性 key in obj 结果为false 表示不包含 否则表示包含 2 hasOwnProperty 实例属性 obj hasOwnProperty key obj表示对象 结果为false表示不包含 否则表
  • 充换电企业开迈斯低成本提升线上应用稳定性的最佳实践

    开迈斯新能源科技有限公司于 2019 年 5 月 16 日成立 目前合资股东分别为大众汽车 中国 投资有限公司 中国第一汽车股份有限公司 一汽 大众汽车有限公司 增资扩股将在取得适当监督 包括反垄断 审批后完成 万帮数字能源股份有限公司和安
  • 1.4秒到0.4秒-2行代码让JS加载耗时减少67%

    大厂技术 高级前端 Node进阶 点击上方 程序员成长指北 关注公众号 回复1 加入高级Node交流群 前言 大家好 我是考拉 资源优先级优化效果示例 png 仅需2行代码 就能实现上图中的优化效果 让JS文件的加载耗时从1 4秒减少到0
  • 七:微服务调用组件Feign

    目录 JAVA 项目中如何实现接口调用 1 什么是Feign 1 1 优势 1 2 Feign的设计架构 1 3 Ribbon Feign对比 1 4 Feign单独使用 2 Spring Cloud Alibaba快速整合Feign 3
  • 获取kafka队列中待消费Lag

    获取kafka中消费者某个topic主题待消费数据量 import java util ArrayList import java util HashMap import java util List import java util Ma
  • Invalid content was found starting with element ‘{“http://maven.apache.org/POM/4.0.0“:dependency}‘.

    在maven项目中运行时出现如下错误 点击上面的项目名 点击链接进入到报错的文件中 一般这种报错就是你的 Invalid content was found starting with element http maven apache o
  • java web项目中连接mysql数据库,javaweb之eclipse工程连接mysql数据库

    javaweb之eclipse工程连接mysql数据库 准备工作 1 在mysql官网下载mysqlconnection的jar包 输入网址 mysql com 点击DOWNLOADS 下拉选择MySQL Community GPL Dow
  • 入坑爬虫(六)某招聘网站信息采集

    前面的章节中 我们说到了如何发送发送 对应的 回顾之前的爬虫流程 在发送完请求之后 能够获取响应 这个时候就需要从响应中提取数据了 1 爬虫中数据的分类 在爬虫爬取到的数据中有很多不同类型的数据 我们需要了解数据的不同类型来规律的提取和解析
  • ADB简介

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