ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。
ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真实的 Android 设备。
运行设备的 shell(命令行)
管理模拟器或设备的端口映射
计算机和设备之间上传/下载文件
可以对设备的应用进行卸载安装等
在 App 遇到 ANR/Crash 等 bug 时,可以通过 ADB 来抓取日志
简而言之,ADB 就是连接 Android 手机与 PC 端的桥梁,所以ADB又称为安卓调试桥(注意:是安卓,不是iOS),可以让用户在电脑上对手机进行全面的操作!
Android Studio,提供了adb最新的Windows 下载地址
下载完成后添加进环境变量即可
adb verison
查看adb版本信息adb help
列出adb相关的所有命令adb devices
查看当前连接设备adb shell
进入Android系统进行操作adb install <安装的apk路径>
安装指定apkadb uninstall <卸载的apk路径| 包名>
卸载指定的应用adb shell pm list package [-3]
列出已经安装的包 -3
列出第三方包adb shell pm clear [包名]
清除数据缓存adb pull [手机上的路径] [桌面上保存的路径]
保存手机上的文件到桌面上 下载adb push [桌面上的文件] [手机上保存的路径]
将桌面上的文件保存到手机上 上传adb shell top
实时获取cpu占用情况adb shell dumpsys activity | findstr "mFocuse"
获取当前屏幕显示的页面adb shell dumpsys battery
查看电池信息adb shell dumpsys meminfo
查看内存使用情况adb shell dumpsys cpuinfo
查看cpu使用情况adb shell monkey -p [被测包名 -v -v -v 1]
通过查看日志信息中查看当前页面的名字adb shell input text [输入内容]
模拟输入adb shell input tab [x,y]
模拟点击adb shell input swipe [x1,y1] [x2,y2]
模拟滑动 起点坐标和重点坐标adb shell input keyevent [Keyevent编码查看]
调用安装系统中的功能,Keyevent编码查看ADB KeyEvent表按键类型 | Keycode 常量 | 对应编号 | 中文功能说明 |
---|---|---|---|
电话键 | KEYCODE_CALL | 5 | 拨号键 |
KEYCODE_ENDCALL | 6 | 挂机键 | |
KEYCODE_HOME | 3 | Home键(返回主屏幕) | |
KEYCODE_BACK | 4 | 返回键 | |
KEYCODE_MENU | 82 | 菜单键(部分设备长按模拟) | |
KEYCODE_SEARCH | 84 | 搜索键 | |
KEYCODE_CAMERA | 27 | 拍照键 | |
KEYCODE_POWER | 26 | 电源键(锁屏/唤醒) | |
KEYCODE_VOLUME_UP | 24 | 音量增加键 | |
KEYCODE_VOLUME_DOWN | 25 | 音量减小键 | |
控制键 | KEYCODE_ENTER | 66 | 回车键(确认输入) |
KEYCODE_DPAD_CENTER | 23 | 导航键-确定键(方向键中心按压) | |
KEYCODE_DPAD_UP | 19 | 导航键-向上(方向键上) | |
KEYCODE_DPAD_DOWN | 20 | 导航键-向下(方向键下) | |
KEYCODE_DPAD_LEFT | 21 | 导航键-向左(方向键左) | |
KEYCODE_DPAD_RIGHT | 22 | 导航键-向右(方向键右) | |
KEYCODE_DEL | 67 | 退格键(删除前一个字符) | |
KEYCODE_FORWARD_DEL | 112 | 删除键(删除后一个字符) | |
KEYCODE_TAB | 61 | Tab键(切换焦点) | |
字母/数字键 | KEYCODE_0 ~ KEYCODE_9 | 7~16 | 数字键0~9 |
KEYCODE_A ~ KEYCODE_Z | 29~54 | 字母键A~Z(区分大小写需配合Shift) | |
符号键 | KEYCODE_STAR | 17 | 星号(*) |
KEYCODE_POUND | 18 | 井号(#) | |
KEYCODE_COMMA | 55 | 逗号(,) | |
KEYCODE_PERIOD | 56 | 句号(.) | |
KEYCODE_SLASH | 76 | 斜杠(/) | |
KEYCODE_EQUALS | 70 | 等号(=) | |
KEYCODE_AT | 77 | @符号 | |
多媒体键 | KEYCODE_MEDIA_PLAY | 126 | 多媒体播放键 |
KEYCODE_MEDIA_PAUSE | 127 | 多媒体暂停键 | |
KEYCODE_MEDIA_PLAY_PAUSE | 85 | 播放/暂停切换键 | |
KEYCODE_MEDIA_NEXT | 87 | 下一首曲目 | |
KEYCODE_MEDIA_PREVIOUS | 88 | 上一首曲目 | |
KEYCODE_MEDIA_STOP | 86 | 停止播放 | |
功能键 | KEYCODE_F1 ~ KEYCODE_F12 | 131~142 | 功能键F1~F12 |
组合键 | KEYCODE_ALT_LEFT | 57 | 左Alt键(组合功能) |
KEYCODE_ALT_RIGHT | 58 | 右Alt键(组合功能) | |
KEYCODE_SHIFT_LEFT | 59 | 左Shift键(大写/组合) | |
KEYCODE_SHIFT_RIGHT | 60 | 右Shift键(大写/组合) |
bash# 点亮屏幕
adb shell input keyevent 26
# 按下Home键
adb shell input keyevent 3
# 按下返回键
adb shell input keyevent 4
bash# 播放/暂停音乐
adb shell input keyevent 85
# 静音设备
adb shell input keyevent 164
bash# 输入英文(自动转小写)
adb shell input text "hello_world"
# 输入特殊字符需用KeyEvent组合
adb shell input keyevent 77 # 输入@
设备兼容性:
• 部分键值在非标准Android设备(如电视、车机)中可能无效。
• 华为EMUI、小米MIUI等定制系统可能修改默认键值映射。
Android版本差异:
• Android 10+ 移除了 KEYCODE_MENU
的全局响应,需通过应用内菜单触发。
组合键示例:
• 复制文本:Shift + 方向键选择 + Ctrl + C
bashadb shell input keyevent 59 && \
adb shell input keyevent 22 && \
adb shell input keyevent 29 # 示例简化逻辑,实际需更复杂脚本
搭配以下工具使用效率更高:
• Keycode Viewer:实时显示按键码的开源工具
• Scrcpy:通过电脑控制Android设备并映射物理键盘
本文作者:苏皓明
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!