简介
adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用
配置
在 android_sdk/platform-tools/
中找到 adb 工具,然后根据其具体的路径配置好环境变量。然后启动cmd 输入adb
即可查看是否配置成功
工作原理
启动一个adb
客户端时:
此客户端首先检查是否有已运行的 adb 服务器进程(adb-server)。
-
如果没有,它将启动服务器进程。
当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb 客户端发送的命令--------所有 adb 客户端均使用端口 5037 与 adb-server通信。
常用命令
启停服务
adb kill-server
adb start-server
查看已连接的设备
adb devices
通过 IP 地址连接设备。
adb connect <device-ip-address>
获取设备的状态
adb get-state
设备的状态有 3 钟,device
, offline
, unknown
device:设备正常连接
offline:连接出现异常,设备无响应
unknown:没有连接设备
通过adb命令 给设备/模拟器安装 apk应用
adb install | -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
通过adb命令 卸载设备/模拟器中的应用
-
adb shell pm list package xxx(应用名)
找到对应的应用包名
adb uninstall xxx(如:com.zhihu.android) # 进行卸载应用
通过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
文件读 取写入
- 将文件从PC写入到设备
adb push
adb push /Users/dai/kyb.txt /sdcard
- 将文件从设备读取到PC
adb pull
adb pull /sdcard/server.log /Users/dai
屏幕截图
adb shell screencap 截图存放截图位置
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png /Users/dai
ps:保存的图片不能使jpg格式,是兼容性问题,pull下来会打不开的
android shell交互页面
-
adb shell
进入android shell交互页面 -
adb -s 127.0.0.1:62001 shell
进入指定设备shell -
exit
退出shell
进入adb shell后有两种状态显示:#代表有root权限,$代表没有root权限---在Unix、Linux及Android中,除非确实需要,一般情况下都不推荐使用root
-
adb shell getprop ro.build.version.release
获取设备platformVersion号 -
adb shell getprop ro.build.version.sdk
获取设备platformSdk