Android 项目必备(三十六)-->设备连接管理及常用 ADB 命令行

在这里插入图片描述

前言

我们开发手机 app 应用,手机开启调试模式,用数据线连上手机,就能对手机进行 debug 开发。然而,智能电视并没有手机的 micro usb 接口,并不能连数据线进行直接调试(据说,用 USB to USB 数据线连接智能电视,也无法识别),这时需要使用 adb 命令连接和调试智能电视。

设备连接管理

1. 查询已连接设备/模拟器
命令:

adb devices

输出示例:

List of devices attached
cf264b8f	device
emulator-5554	device
10.129.164.6:5555	device

以上输出显示当前已经连接了三台设备/模拟器,cf264b8f、emulator-5554 和 10.129.164.6:5555 分别是它们的 SN 。

常见异常输出:
1.没有设备/模拟器连接成功。
List of devices attached
2.设备/模拟器未连接到 adb 或无响应。

List of devices attached
cf264b8f	offline

2. USB 连接
通过 USB 连接来正常使用 adb 需要保证几点:

  1. 硬件状态正常。
    包括 Android 设备处于正常开机状态,USB 连接线和各种接口完好。

  2. Android 设备的开发者选项和 USB 调试模式已开启。
    可以到「设置」-「开发者选项」-「Android 调试」查看。
    如果在设置里找不到开发者选项,那需要通过一个彩蛋来让它显示出来:在「设置」-「关于手机」连续点击「版本号」7 次。

  3. 设备驱动状态正常。
    这一点貌似在 LinuxMac OS X 下不用操心,在 Windows 下有可能遇到需要安装驱动的情况,确认这一点可以右键「计算机」-「属性」,到「设备管理器」里查看相关设备上是否有黄色感叹号或问号,如果没有就说明驱动状态已经好了。否则可以下载一个手机助手类程序来安装驱动先。

  4. 通过 USB 线连接好电脑和设备后确认状态。
    adb devices
    如果能看到
    xxxxxx device
    说明连接成功。

3. 无线连接(Android11 及以上)
Android 11 及更高版本支持使用 Android 调试桥 (adb) 从工作站以无线方式部署和调试应用。例如,您可以将可调试应用部署到多台远程设备,而无需通过 USB 实际连接设备。这样就可以避免常见的 USB 连接问题,例如驱动程序安装方面的问题。

官方文档

操作步骤:

  1. 更新到最新版本的 SDK 平台工具(至少30.0.0)。

  2. 将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。

  3. 在开发者选项中启用无线调试。

  4. 在询问要允许在此网络上进行无线调试吗?的对话框中,点击允许。

  5. 选择使用配对码配对设备,使用弹窗中的 IP 地址和端口号。
    adb pair ipaddr:port

  6. 提示 Enter pairing code: 时输入弹窗中的配对码,成功后会显示 Successfully paired to …。

  7. 使用无线调试下的 IP 地址和端口。
    adb connect ipaddr:port

  8. 确认连接状态。
    adb devices
    如果能看到
    ipaddr:port device
    说明连接成功。

4. 无线连接(需要借助 USB 线)
除了可以通过 USB 连接设备与电脑来使用 adb,也可以通过无线连接——虽然连接过程中也有需要使用 USB 的步骤,但是连接成功之后你的设备就可以在一定范围内摆脱 USB 连接线的限制啦!

操作步骤:

  1. 将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。

  2. 将设备与电脑通过 USB 线连接。
    应确保连接成功(可运行 adb devices 看是否能列出该设备)。

  3. 让设备在 5555 端口监听 TCP/IP 连接:
    adb tcpip 5555

  4. 断开 USB 连接。

  5. 找到设备的 IP 地址。
    一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里 查看设备信息 - IP 地址 一节里的方法用 adb 命令来查看。

  6. 通过 IP 地址连接设备。
    adb connect <device-ip-address>
    这里的 就是上一步中找到的设备 IP 地址。

  7. 确认连接状态。
    adb devices
    如果能看到
    <device-ip-address>:5555 device
    说明连接成功。

如果连接不了,请确认 Android 设备与电脑是连接到了同一个 WiFi,然后再次执行 adb connect <device-ip-address> 那一步;

如果还是不行的话,通过 adb kill-server 重新启动 adb 然后从头再来一次试试。

断开无线连接

命令:
adb disconnect <device-ip-address>

常用 adb 命令

1. 查看所有应用
命令:

adb shell pm list packages

2. 查看系统应用
命令:

adb shell pm list packages -s

3. 查看第三方应用
命令:

adb shell pm list packages -3

4. 查看包名包含某字符串的应用
比如要查看包名包含字符串 mazhuang 的应用列表,命令:

adb shell pm list packages mazhuang

5. 安装 APK
命令:

adb install [-lrtsdg] <path_to_apk>

6. 卸载应用
命令:

adb uninstall [-k] <packagename>

7. 清除应用数据与缓存
命令:

adb shell pm clear <packagename>

8. 查看前台 Activity
命令:

adb shell dumpsys activity activities | grep mResumedActivity

9. 查看正在运行的 Services
命令:

adb shell dumpsys activity services [<packagename>]

10. 查看应用详细信息
命令:

adb shell dumpsys package <packagename>

11. 查看应用安装路径
命令:

adb shell pm path <PACKAGE>

12. 查看 log
命令:

adb logcat

13. 获取机器 MAC地址
命令:

adb shell  cat /sys/class/net/wlan0/address

14.获取 CPU 序列号
命令:

adb shell cat /proc/cpuinfo

15.获取设备名称
命令:

adb shell cat /system/build.prop

16.复制设备里的文件到电脑
命令:

adb pull <设备里的文件路径> [电脑上的目录]

17.复制电脑里的文件到设备
命令:

adb push <电脑上的文件路径> <设备里的目录>

18.列出目录下的文件和文件夹,等同于 dos 中的 dir 命令
命令:

adb shell ls

19.进入文件夹,等同于dos中的cd 命令
命令:

adb shell cd <folder>

20.重命名文件
命令:

adb shell rename path/oldfilename path/newfilename

21.删除system/avi.apk
命令:

adb shell rm /system/avi.apk

22.删除文件夹及其下面所有文件
命令:

adb shell rm -r <folder>

23.移动文件
命令:

adb shell mv path/file newpath/file

24.新建文件夹
命令:

adb shell mkdir path/foldelname

25.查看文件内容
命令:

adb shell cat <file>

参考

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
五一放假,出门在外,有时候没有WiFi,没法通过无线ssh到iOS中调程序,怎么办呢?好在大神Nikias Bassen(即@pimskeks5)写了一个可以把本地OSX/Windows端口转发到远程iOS端口的工具usbmuxd16,使我们能够通过USB连接线ssh到iOS中,大大增加了ssh连接的速度,也方便了那些没有WiFi的朋友。下面我们就简单介绍一下怎么使用神器usbmuxd。(注:以下操作在OSX中进行,Windows用户请自行安装python环境) 下载usbmuxd 从这里下载usbmuxd(http://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz),解压到本地。我们要用到的只有python-client目录下的tcprelay.py和usbmux.py两个文件,把它们放到同一个目录下,如笔者的 /Users/snakeninny/Code/USBSSH/ 使用usbmuxd usbmuxd的用法比较简单,在Terminal中输入 /Users/snakeninny/Code/USBSSH/tcprelay.py -t 远程iOS上的端口:本地OSX/Windows上的端口 即可把本地OSX/Windows上的端口转发到远程iOS上的端口,如 /Users/snakeninny/Code/USBSSH/tcprelay.py -t 22:2222 可把本地的2222端口转发到iOS上的22端口,那么直接 ssh root@localhost -p 2222 即可ssh到iOS中。 使用场景举例 完全脱离WiFi,使用USB连接到iOS,用lldb调试SpringBoard。 i) 把本地2222端口转发到iOS的22端口 /Users/snakeninny/Code/USBSSH/tcprelay.py -t 22:2222 ii) ssh过去并用debugserver attach到SpringBoard ssh root@localhost -p 2222 debugserver *:1234 -a "SpringBoard" iii) 把本地1234端口转发到iOS的1234端口 /Users/snakeninny/Code/USBSSH/tcprelay.py -t 1234:1234 iv) 用lldb开始调试 lldb process connect connect://localhost:1234

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值