adb 常用命令介绍

adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用。
Tips: 在 android_sdk/platform-tools/ 中找到 adb 工具,然后根据其具体的路径配置好环境变量。然后启动cmd 输入‘adb’即可查看是否配置成功(这个在前面章节配置android-sdk中已介绍)

adb 的工作原理
启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程(adb-server)。如果没有,它将启动服务器进程。当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb 客户端发送的命令--------所有 adb 客户端均使用端口 5037 与 adb-server通信。
ps:PC 端的手机助手,诸如 360 手机助手、豌豆荚、应用宝等,其除了安装第三方应用方便,其他的功能,基本上都可以通过 adb 命令去完成,这里建议测试人员尽量不要在电脑上安装这类手机助手,因为其自带的 adb 程序可能会与 Android SDK 下的 adb 程序产生冲突,5037 端口被占用,导致使用 adb 命令时无法连接到设备

运行在 Android 设备上的 adb 后台进程

执行 adb shell ps | grep adbd ,可以找到该后台进程,windows 请使用 findstr 替代 grep

adb kill-server , adb start-server , 结束 adb 服务, 启动 adb 服务,通常两个命令一起用

一般在连接出现异常,使用 adb devices 未正常列出设备, 设备状态异常时使用 kill-server,然后运行 start-server 进行重启服务

启用 adb 调试
要在通过 USB 连接的设备上使用 adb,您必须在设备系统设置中启用 USB debugging(位于开发者选项中,上个章节有提到,在运行 Android 4.2 及更高版本的设备上)。
ps:当您连接运行 Android 4.2.2 或更高版本的设备时,系统将显示一个对话框,询问您是否接受允许在这台计算机上调试的 RSA 密钥。这种安全机制可以保护用户设备,因为它可以确保只有在您能够解锁设备并确认对话框的情况下才能执行 USB 调试和其他 ADB 命令。

adb常用命令

adb connect 127.0.0.1:62001
(夜神模拟器的端口是规律的,第一个模拟器端口是62001,第二个模拟器端口是62025,第三个是62025+1,依此类推)
如果在连接过程中出现如下提示:
adb server version (31) doesn't match this client (36); killing...
原因: adb版本不对 ,Androd SDK的版本和模拟器的adb版本不一致
解决方案:将Android SDK的 adb替换掉模拟器的adb即可。mac中模拟器adb路径 :/Library/{app名称}/MacOS/下

查看已连接的设备:adb devices
daideMacBook-Pro:~ dai$ adb devices
List of devices attached
127.0.0.1:62001 device

adb get-state , 获取设备的状态

[~]$ adb get-state

device

设备的状态有 3 钟,device , offline , unknown
device:设备正常连接
offline:连接出现异常,设备无响应
unknown:没有连接设备

adb shell

进入android shell交互界面

adb shell

进入指定设备shell

adb -s 127.0.0.1:62001 shell

退出adb shell

exit

进入adb shell后有两种状态显示:#代表有root权限,$代表没有root权限---在Unix、Linux及Android中,除非确实需要,一般情况下都不推荐使用root

通过adb命令 给设备/模拟器安装 apk应用

adb install | -r -r 覆盖原安装文件 -s 可以指定设备

默认安装

adb install /xxxxx/xxxxx/xxx.apk

覆盖安装

adb install -r /xxxxx/xxxxx/xxx.apk

指定设备安装

adb -s 127.0.0.1:62001 install /xxxxx/xxxxx/xxx.apk

如遇到报错:Failure [INSTALL_FAILED_INVALID_URI]
解决方案: cmd命令行下执行以下命令:
第一步、adb remount
第二步、adb shell
第三步、cd /data
第四步、chmod 777 local
重新安装apk,ok了。

通过adb 查找设备安装的应用
adb shell pm list package
-s:列出系统应用
-3:列出第三方应用
-f:列出应用包名及对应的apk名及存放位置
-i:列出应用包名及其安装来源,结果显示例子:
adb shell pm list package -i
package:com.zhihu.android installer=com.xiaomi.market

命令最后增加 FILTER:过滤关键字,可以很方便地查找自己想要的应用

参数组合使用,例如,查找三方应用中知乎的包名、apk存放位置、安装来源:
[:~]$ adb shell pm list package -f -3 -i zhihu
package:/data/app/com.zhihu.android-1.apk=com.zhihu.android installer=com.xiaomi.market

pm path 列出对应包名的 .apk 位置
[:~]$ adb shell pm path com.tencent.mobileqq
package:/data/app/com.tencent.mobileqq-1.apk

通过adb命令 卸载设备/模拟器中的应用
通过 adb shell pm list package xxx(应用名) 找到对应的应用包名

adb uninstall xxx(如:com.zhihu.android) 进行卸载应用

文件读 取写入
将文件从PC写入到设备
adb push

adb push /Users/dai/kyb.txt /sdcard

将文件从设备读取到PC
adb pull
adb pull /sdcard/server.log /Users/dai

屏幕截图
$ adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png /Users/dai
ps:保存的图片不能使jpg格式,貌似是兼容性问题,pull下来会打不开的

区分 adb 命令和 adb shell 命令
简单点讲,adb 命令是 adb 这个程序自带的一些命令,而 adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下

更全的请查看 https://mazhuang.org/awesome-adb/

Tags:none
上一篇
下一篇

添加新评论