首页 > 其他分享 >Android 调试桥:adb的入门与最佳实践(无线连接调试)

Android 调试桥:adb的入门与最佳实践(无线连接调试)

时间:2022-11-29 18:32:11浏览次数:63  
标签:shell 无线连接 命令 adb Android 连接 调试 设备


商业转载请联系作者获得授权,非商业转载请注明出处。

目录

​​一 adb简介​​

​​二 adb 工作原理​​

​​三 配置adb环境​​

​​四 常用的adb命令​​

​​4.1 help命令​​

​​4.2 devices 命令​​

​​4.3  install 命令​​

​​4.4  shell 命令​​

​​4.5  Activity 管理器 (am)​​

​​五 最佳实践 · 无线调试,解放烦人的数据线​​

​​5.1 无线连接步骤​​

​​5.2 可能的问题​​

​​六 (2021.2.24 补充更新)Android 11 的 无线连接​​


一 adb简介

Android 调试桥 (adb) 是一种与设备通信,执行各种设备操作(例如安装和调试应用)的命令行工具。adb提供了对 Unix shell(可用来在设备上运行各种命令)的访问权限。

adb是一种客户端-服务器程序,包括以下三个组件:

  • 客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

​adb​​​ 包含在 Android SDK 平台工具软件包中,使用 SDK管理器下载此软件包,该管理器会将其安装在 ​​android_sdk/platform-tools/​​ 下。

Android 调试桥:adb的入门与最佳实践(无线连接调试)_Android


二 adb 工作原理

当某个 adb 客户端启动时,客户端会先检查是否有 adb 服务器进程正在运行。如果没有,启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 。所有 adb 客户端均通过端口 5037 与 adb 服务器通信。

然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。

服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。


三 配置adb环境

adb默认在系统的安卓sdk下的​​platform-tools目录下,即android_sdk/platform-tools/​​ 目录。如果想直接在Android Studio的Terminal控制台使用,需要先配置好环境。

打开终端,输入以下命令:

cd ~
touch .bash_profile
open -e .bash_profile

在弹出的配置页中,配上自己安卓platform-tools的路径,我的实例如下:

export PATH=${PATH}:/Users/ystm1/Library/Android/sdk/tools:/Users/ystm1/Library/Android/sdk/platform-tools

 保存退出,此刻要记得更新配置生效:

source .bash_profile

注意:

如果是zsh用户,上述配置可能对于你而言只是一次性的,你重启一次电脑后可能会发现,我的adb命令又报错“zsh: command not found: adb”了。不要慌,因为你还没有配置配置 .zshrc(非zsh用户忽略)

1)终端中输入:open .zshrc

2)如果已经有了,输入:open .zshrc -e 

3)在打开的文件中最后一行添加: source ~/.bash_profile

4)输入:source ~/.zshrc 使其立即生效


四 常用的adb命令

4.1 help命令

查看所有支持的 adb 命令的详细列表:

adb --help

4.2 devices 命令

​devices​​ 命令生成已连接设备的列表。

adb devices -l

结果:

(base) ystm1@ystm1 ~ % adb devices -l
List of devices attached
192.168.1.110:5556 device product:dipper model:MI_8 device:dipper transport_id:290
192.168.1.124:5558 device product:PD1616 model:vivo_X9 device:PD1616 transport_id:296

以下状态信息:

  • 序列号:由 adb 创建的字符串,用于通过端口号唯一标识设备。 
  • 状态:设备的连接状态可以是以下几项之一:
  • ​offline​​:设备未连接到 adb 或没有响应。
  • ​device​​:设备现已连接到 adb 服务器。请注意,此状态并不表示 Android 系统已完全启动并可正常运行,因为在设备连接到 adb 时系统仍在启动。不过,在启动后,这将是设备的正常运行状态。
  • ​no device​​:未连接任何设备。
  • 说明:如果您包含 ​​-l​​​ 选项,​​devices​​ 命令会告知您设备是什么。当您连接了多个设备时,此信息很有用,可帮助您将它们区分开来。

4.3  install 命令

 ​​install​​ 命令在模拟器或连接的设备上安装 APK

adb install path_to_apk

4.4  shell 命令

 ​​shell​​​ 命令通过 adb 发出设备命令,也可以启动交互式 shell。如需发出单个命令,请使用 ​​shell​​ 命令,如下所示:

adb [-d |-e | -s serial_number] shell shell_command

 要在设备上启动交互式 shell,请使用 ​​shell​​ 命令,如下所示:

adb [-d | -e | -s serial_number] shell

要退出交互式 shell,请按 Ctrl + D 键或输入 ​​exit​​。

Android 提供了大多数常见的 Unix 命令行工具。如需查看可用工具的列表,请使用以下命令: 

adb shell ls /system/bin

4.5  Activity 管理器 (am)

adb shell am start -a android.intent.action.VIEW

Activity 管理器 (​​am​​​),调用软件包管理器 (​​pm​​​)和调用设备政策管理器 (​​dpm​​​)使用不多,需要时可查阅​​官方文档​​。


五 最佳实践 · 无线调试,解放烦人的数据线

5.1 无线连接步骤

将手机与开发的电脑处于同一局域网,在电脑的Android Studio中打开命令行 ,注意需要先用USB数据线让手机连接上Android Studio,此刻你的页面应该是这样:

Android 调试桥:adb的入门与最佳实践(无线连接调试)_Android_02

此刻打开Android Studio中Teiminal命令行,连接运行 adb devices 命令:

Android 调试桥:adb的入门与最佳实践(无线连接调试)_安卓调试_03

如图,List of devices attached表示连接到Android Studio的设备列表,6UK9X20411X01598 代表我们用数据线连接到Android Studio的设备序列号。

找到了这个设备,接下来我们需要将这个设备通过局域网无线连接到Android Studio,继续输命令:

adb -s 6UK9X20411X01598  tcpip 5555

5555是端口号,注意与常用端口区分。该命令将用数据线连接到Android Studio的设备与5555端口绑定。

接下来我们只需要再将Android Studio绑到局域网中的该端口即可(注意下面106的局域网地址是需要连接的设备的局域网地址,5555端口号是上面tcpip设定的端口号,需要保持一致):

adb connect 192.168.1.106:5555

至此大功告成!输入adb devices -l  命令,看看结果吧,此刻可以把烦人的数据线摘掉了哦!

下面是我的截图

Android 调试桥:adb的入门与最佳实践(无线连接调试)_安卓调试_04

我一直用的这种调试方式,可以无线安装app调试,相比数据线而言一开始有担心会不会装包速度变慢,但是使用下来100m以内的安装包(我也没写100M开外大小的hh)没有感觉到特别明显的速度延迟,使用感觉还是很好的。

5.2 可能的问题

如果 adb 连接断开:

  1. 确保主机仍与 Android 设备连接到同一个 WLAN 网络。
  2. 通过再次执行 ​​adb connect​​ 步骤重新连接。
  3. 如果上述操作未解决问题,重置 adb 主机:
adb kill-server

adb start-server

然后,从头开始操作。

注意:华为设备可能一开始会连接不成功,注意在开发者选项里,打开:“仅充电”模式下允许ADB调试!


六 (2021.2.24 补充更新)Android 11 的 无线连接

Android 11之前,我们在用常规方法连接adb时,总是不可避免地要先用数据线连接到手机。

可有时候就是没有数据线或者驱动等问题,连接不上手机,又或者数据线连上了手机,但是接触不良经常断开,此刻显得非常得麻烦。

Android11的无线调试很好地解决 这个问题,它支持全程无数据线直接连接。

Android 11 支持通过 Android 调试桥 (adb) 从工作站以无线方式部署和调试应用,而无需通过 USB 实际连接您的设备,从而避免常见的 USB 连接问题(例如驱动程序安装方面的问题)。

如需使用无线调试,您需要使用配对码将您的设备与工作站配对。您的工作站和设备必须连接到同一无线网络。

操作步骤:

1:启用开发者模式,并打开无线调试

Android 调试桥:adb的入门与最佳实践(无线连接调试)_adb_05

2:选择使用配对码配对设备。记下设备上显示的配对码、IP 地址和端口号

Android 调试桥:adb的入门与最佳实践(无线连接调试)_Android调试桥_06

3:打开Android Studio的终端,输入

adb pair ipaddr:port

随后终端会提示让你输入配对码,输入之前手机上展示的配对码即可!

(base) ystm1@ystm1 ~ % adb pair 192.168.1.113:39753
Enter pairing code: 605434
Successfully paired to 192.168.1.113:39753 [guid=adb-6d233f38-fn4ZTM]
(base) ystm1@ystm1 ~ %

标签:shell,无线连接,命令,adb,Android,连接,调试,设备
From: https://blog.51cto.com/u_12853553/5896536

相关文章

  • 在Visual Studio 2005中调试SQL Server 2005的存储过程
    介绍SQLServer2000可以让我们在查询分析器中直接调试存储过程(​​更多的信息请参看:用SQLServer2000的查询分析器调试存储过程​​)到了现在的SQLS......
  • linux 串口调试
    linux串口调试使用串口转USB线查看串口是否识别出来❯ls-l/dev/ttyUSB*crw-rw----1rootdialout188,011月2818:54/dev/ttyUSB0添加用户到dialout用户组s......
  • VS 使用本机IP调试项目
    获取本机ip地址win+r打开《运行》输入cmd回车输入ipconfig即可查看到ipv4地址  配置IP 右键iis服务器,选择显示所有应用程序  点击项目名即可显示配置这一选......
  • adb shell
    adbshell查看设备adbdevicesListofdevicesattached5ecf5fbcdevice连接设备#单个设备adbshell#多个设备需要指定adb-s5ecf5fbcshell安装A......
  • 世界领先的图数据库Neo4j AuraDB Free
    世界领先的图数据库Neo4jAuraDBFree​​世界领先的图数据库Neo4jAuraDBFree​​​​一、Neo4jAuraDBFree现已在亚太地区发行​​​​二、快速使用Neo4jAuraDBFree​......
  • linux c下程序调试工具详解
    1.htop/tophtoptophtop主要参数说明#Time:当前时间#Uptime:系统运行时间#Tasks:进程总数、当前进程运行数#Loadaverage:1、5、10分钟的负载情况#Avg:系统CPU......
  • 解决Visual Studio 调试时加载符号慢的问题
    什么是调试符号编译程序时生成的一组特殊字符,并包含有关变量和函数在生成的二进制文件中的位置以及其他服务信息的信息。该数据集可用于逐步调试程序或检查第三方代码。......
  • 学习x86汇编语言6 使用Bochs调试自己的引导程序
    一、Bochs简介Bochs是一个x86的软件模拟器,用来模拟x86CPU、一些硬件和​​BIOS​​等,可以用来运行Windows、Linux等软件。由于它是纯软件模板,所以运行速度比起​​VmWare......
  • Windows系统下PhpStorm+Xdebug安装与调试
    环境说明:系统:Windows10PhpStorm:2019.3.2PHP版本:7.3.21Xdebug版本 :2.7.2一、Xdebug介绍官网地址:https://xdebug.org/1.1什么是XdebugXdebug是一个开放源代码的......
  • 盘点国内外那些接口调试工具
    盘点国内外那些API调试工具PostmanApipostApifoxInsomniaHoppscotchPostman老牌api工具,最初发布日期:2012,超过2000w开发者使用Github:https://github.com/po......