场景:当需要向app文本框输入大量内容,或者由于兼容性问题导致手机按键失灵时,可以通过adb命令方式进行测试。
发送字符串
adb shell input text 字符串
发送控制按键
adb shell input keyevent 控制按键输入的数值
命令字符 | 释义 | 数字代号 |
---|---|---|
KEYCODE_CALL | 进入拨号盘 | 5 |
KEYCODE_ENDCALL | 挂机键 | 6 |
KEYCODE_HOME | 按键Home | 3 |
KEYCODE_MENU | 菜单键 | 82 |
KEYCODE_BACK | 返回键 | 4 |
KEYCODE_SEARCH | 搜索键 | 84 |
KEYCODE_CAMERA | 拍照键 | 27 |
KEYCODE_FOCUS | 拍照对焦键 | 80 |
KEYCODE_POWER | 电源键 | 26 |
KEYCODE_NOTIFICATION | 通知键 | 83 |
KEYCODE_MUTE | 话筒静音键 | 91 |
KEYCODE_VOLUME_MUTE | 扬声器静音键 | 164 |
KEYCODE_VOLUME_UP | 音量增加键 | 24 |
KEYCODE_VOLUME_DOWN | 音量减小键 | 25 |
KEYCODE_ENTER | 回车键 | 66 |
KEYCODE_ESCAPE | ESC键 | 111 |
KEYCODE_DPAD_CENTER | 导航键 确定键 | 23 |
KEYCODE_DPAD_UP | 导航键 向上 | 19 |
KEYCODE_DPAD_DOWN | 导航键 向下 | 20 |
KEYCODE_DPAD_LEFT | 导航键 向左 | 21 |
KEYCODE_DPAD_RIGHT | 导航键 向右 | 22 |
KEYCODE_MOVE_HOME | 光标移动到开始键 | 122 |
KEYCODE_MOVE_END | 光标移动到末尾键 | 123 |
KEYCODE_PAGE_UP | 向上翻页键 | 92 |
KEYCODE_PAGE_DOWN | 向下翻页键 | 93 |
KEYCODE_DEL | 退格键 | 67 |
KEYCODE_FORWARD_DEL | 删除键 | 112 |
KEYCODE_INSERT | 插入键 | 124 |
KEYCODE_TAB | Tab键 | 61 |
KEYCODE_NUM_LOCK | 小键盘锁 | 143 |
KEYCODE_CAPS_LOCK | 大写锁定键 | 115 |
KEYCODE_BREAK | Break/Pause键 | 121 |
KEYCODE_SCROLL_LOCK | 滚动锁定键 | 116 |
KEYCODE_ZOOM_IN | 放大键 | 168 |
KEYCODE_ZOOM_OUT | 缩小键 | 169 |
利用命令“adb shell input keyevent <键值>”可以实现自动化。例如“adb shell input keyevent 3”就可以按下Home键。
执行返回:adb shell input keyevent 4
执行灭屏亮屏:adb shell input keyevent 26
执行解锁屏幕:adb shell input keyevent 82
实战
adb shell input text 123456
,输入字符串123456。
adb shell input keyevent KEYCODE_DEL
,每次删掉一个字符。
觉得太慢,写了个死循环:adb shell
进入手机的shell中,执行while true;do input keyevent KEYCODE_DEL;done
,逐个删干净,然后尝试按下CTRL_C
终止。再重新输入却出了问题,输入后立刻消失。原来CTRL_C后,这货跑后台去了……输入后,自动删除-_-!!!
查了一下,pidof sh
可以查看后台正在运行的进程的进程号,ps |grep 进程号
再确认一下具体进程内容。然后执行kill -9 xxxx
杀掉刚才写的死循环进程。
再次验证,输入字符串后就不会被删了。
后续
探究CTRL_C/D/Z区别联系
网友评论