文章字数:1116,阅读全文大约需要4分钟
Android Debug Bridge
安卓调试桥,是一款C/S
架构的命令行工具。
组成部分
Client
:运行在PC端,对Android
应用进行安装、卸载、调试。Service
:运行在PC端,管理客户端到设备的abd后台进程的连接adb进程
:运行在Android
设备5037
端口
adb命令
命令格式:
1 | adb [-e | -d | -s <设备序列号>] <子命令> |
adb devices
获取设备列表及设备状态adb get-state
获取设备的状态,device
正常连接、offline
连接异常无响应、unknown
没有连接设备adb kill-server | abd start-server
:结束或者启动adb服务,状态异常是kill-server再startadb logcat
:打印Android
的系统日志adb bugreport
:打印dumpsys
、dumpstate
、logcat
的输出,用于错误分析adb install
:安装应用,覆盖安装-r
adb uninstall
:卸载应用,后面跟应用包名。-k
选项保留数据和缓存目录adb pull
:将Android
设备上的文件或者文件夹复制到本地1
adb pull xxx/a.txt d:\xxx.txt
adb push
:推送本地文件到Android
设备1
2# 最后的'/'一定要有,否则报错
adb push d:\push.txt sdcard/test/adb root , adb remount
:部分手机支持,获取root权限,系统文件为可读状态adb reboot
:重启设备1
2
3
4
5# 重启,进入fastboot模式
adb reboot-bootloader
# 重启,进入recovery模式
adb recoveryadb foward
:将宿主机上的某个端口重定向到设备的某个端口1
2# 把主机1214端口的信息数据都转发到设备的8888端口,实现远程控制
adb forward tcp:1214 tcp :8888adb connect
:远程链接Android设备1
2
31. pc,设备处于同一网段
2. 手机root,安装adbWireless,运行
3.adb connect ipadb disconnect <ip>
断开连接
不断开连接别人的adb
就登录不上去
adb shell命令
1 | # 调用安卓设备上`system/bin`目录下的脚本程序 |
adb shell pm list package
:列出安装在设备上的应用1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 系统应用
adb shell pm list package -s
# 第三方应用
adb shell pm list package -3
# 应用包名及对应apk名及位置
adb shell pm list package -f
# 查看安装来源
# 例:package:com.zhihu.android installer=com.xiaomi.market
adb shell pm list package -i
# 查找关键字 -f | -FILTER
adb shell pm list package -f -3 -i 关键字adb shell pm path packageName
:列出包名对应的apl位置pm list instrumentation
:列出含有单元测试case的应用,可加-f参数pm dump package
:列出指定应用的dump
信息pm install
:安装应用pm uninstall packageName
:卸载应用pm clear
:清除应用数据pm set-install-location
、pm get-install-location
:设置/获取应用安装位置am start
:启动一个Activity1
2
3
4
5
6
7
8
9
10# 打开相机
adb shell am start -n com.android.camera/.Camera
# 先停止再启动
adb shell am start -S com.android.camera/.Camera
# 等待应用完成启动
adb shell am start -W com.android.camera/.Camera
# 用默认浏览器打开网页
adb shell am start -a android.intent.action.VIEW -d http://testerhome.com
# 启动拨号器拨打10086
adb shell am start -a android.intent.action.CALL -d tel:10086am instrument
:启动instrumentationam monitor
: 监控crash与ANRam force-stop
: 后跟包名,结束应用am startservice
:启动一个服务am broadcast
: 发送一个广播向设备发送按键事件
input text
:发送文本,非中文1
adb shell input text test123456
input keyevent
:发送按键事件1
2# 按下home键
adb shell input keyevent KEYCODE_HOMEinout tap
:发送触摸事件1
2# 点击坐标为500 500的位置
adb shell input tap 500 500input swipe
:滑动事件1
2
3
4# 从右边向左滑动
adb shell input swipe 900 500 100 500
# 模拟长按(小距离内较长时间滑动)
adb shell input swipe 500 500 501 501 2000screencap截图
screencap -p
: 截屏保存1
adb shell screencap -p /sdcard/screen.png
screenrecord
:录制1
2# 录制视频,ctrl + c 结束录制
adb shell screenrecord sdcard/record.mp4获取当前界面的控件信息
adb shell uiautomator dump
:获取控件信息1
2
3# 不加 [file] 选项时,默认存放在 sdcard 下
[xuxu:~]$ adb shell uiautomator dump
UI hierchary dumped to: /storage/emulated/legacy/window_dump.xml输入法ime
adb shell ime list -s
:列出输入法adb shell ime set com.baidu.input_mi/.ImeService
:选则输入法
分辨率wm
adb shell wm size
: 获取屏幕分辨率
测试
monkey
:随机发送输入事件,用于测试1
2
3
4# 保存信息到d盘 monkey.log
adb shell monkey -p com.android.settings 5000 > d:\monkey.log
# 保存信息到手机的目录(加引号)
adb shell "monkey -p com.android.settings 5000 > sdcard/monkey.log"
系统
settings
:设置系统参数dumpsys
:服务信息log
:在logcat中打印指定信息1
2# -p:优先级,-t:tag,标签,后面加上 message
adb shell log -p d -t xuxu "test adb shell log"getprop
:查看系统参数1
adb shell getprop ro.build.version.sdk
其它
还支持linux的命令