adb命令之input和getevent

在Android调试时,如果触屏不能正常使用时、调试没有屏幕的机器或调试样机上没有的按键功能时,可能会用到通过命令的方式发送按键消息给Android系统进行调试,或着当点击屏幕后手机没有反应,需要确认是手机屏幕出现问题,还是当前布局不合理,有控件的click事件被其它控件消耗了,导致没有出现预期结,同样也可以通过adb命令监听屏幕上的点击事件。

1、通过adb shell input 发送对应命令给手机

1.1、发送单击home键命令

adb shell input keyevent 3
常用按键消息列表:
KEYCODE_HOME           按键Home 3
KEYCODE_MENU           菜单键  82
KEYCODE_CALL             拨号键  5
KEYCODE_ENDCALL       挂机键  6
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,可以查看frameworks/base/core/java/android/view/KeyEvent.java中的定义

1.2、发送长按home键命令

adb shell input keyevent --longpress 3

1.3、向文本框中输入字符

adb shell input text 10086

1.4、点击屏幕某个点

adb shell input tap <x> <y> #x,y分别为手机屏幕横竖坐标

1.5、模拟滑动事件

adb shell input swipe <x1> <y1> <x2> <y2>#从(x1,y1)滑动到(x2,y2)

2、利用adb shell  getevent命令监听屏幕点击事件

当需要监听手机屏幕的任何事件时,只需要执行下面的命令即可

adb shell getevent
执行这个命令后,当手机有任何input事件,都会被打印出来,这个命令可以添加如下参数:

Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]

    -t: show time stamps

    -n: don't print newlines

    -s: print switch states for given bits

    -S: print all switch states

    -v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64)

    -d: show HID descriptor, if available

    -p: show possible events (errs, dev, name, pos. events)

    -i: show all device info and possible events

    -l: label event types and names in plain text

    -q: quiet (clear verbosity mask)

    -c: print given number of events then exit

    -r: print rate events are received

当需要确定手机屏幕无响应时,是当前软件还是对应input kernel出现问题时,就可以通过这个命令监测点击屏幕时,是否会打印对应的值来确定。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值