Android 注入Event

本文介绍了在Android自动化测试中如何注入事件,主要分为两种方式:1) 使用Instrumentation进行注入,通过InputManager实现;2) 直接操作系统目录`/dev/input/eventX`,对输入设备节点发送指令。尽管第二种方式可能因厂商差异而不一定生效,但第一种方式更为常见。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android在自动化测试的过程中经常会涉及到注入event的场景,通过参考网上资料大概分为两种:

1. 通过instrumentation注入。

查看instrumentation 的源码会发现,会有很多send开头的方法:
sendxxx 方法

随便选取其中的一个方法:

  public void sendPointerSync(MotionEvent event) {
        validateNotAppThread();
        if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) == 0) {
            event.setSource(InputDevice.SOURCE_TOUCHSCREEN);
        }
        InputManager.getInstance().injectInputEvent(event,
                InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);
    }

不难看出其中其实是调用了 InputManager 类来实现事件输入,这里不具体展开,补充一个简单的例子。

  Instrumentation inst = new Instrumentation();
  inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);

上面例子输入了一个 KEYCODE_BACK 返回键操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值