You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Macrobenchmark测试中如何模拟TV遥控器的按键事件(点击与长按)?

在Macrobenchmark中模拟TV遥控器按键操作

核心逻辑说明

在Macrobenchmark的profileBlock中,通过BenchmarkScope提供的instrumentation实例发送按键事件,实现遥控器点击、长按的模拟。系统默认的sendKeyDownUpSync方法对应普通点击,长按则需要拆分按下、延迟、抬起三个步骤。


1. 模拟普通点击按键

直接使用sendKeyDownUpSync方法,该方法会自动发送按键按下和抬起的完整事件,适用于Dpad方向键、确认键等常规点击操作。

示例代码:

// 模拟Dpad DOWN点击
scope.instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN)

// 模拟确认键(OK键)点击
scope.instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_ENTER)

2. 模拟长按按键

长按需要手动拆分事件:先发送按键按下事件,等待一段符合系统长按阈值的时间(通常500ms以上),再发送按键抬起事件。

示例代码(长按Dpad UP):

// 发送Dpad UP按下事件
scope.instrumentation.sendKeySync(KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP))

// 模拟长按延迟(可根据应用响应调整,示例为600ms)
Thread.sleep(600)

// 发送Dpad UP抬起事件
scope.instrumentation.sendKeySync(KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_UP))

完整测试示例

结合启动应用、点击、长按操作的完整Macrobenchmark测试:

@Macrobenchmark
fun tvRemoteControlPerformanceTest() = benchmarkRule.measureRepeated(
    packageName = "com.your.tv.app.package",
    metrics = listOf(FrameTimingMetric(), StartupTimingMetric()),
    iterations = 5,
    startupMode = StartupMode.COLD
) { scope ->
    // 回到Home页,冷启动应用
    scope.pressHome()
    scope.startActivityAndWait()

    // 等待应用初始化完成
    Thread.sleep(1000)

    // 模拟Dpad RIGHT点击,切换焦点
    scope.instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_RIGHT)
    Thread.sleep(300)

    // 长按Dpad DOWN,触发批量操作(如列表快速滚动)
    scope.instrumentation.sendKeySync(KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN))
    Thread.sleep(800)
    scope.instrumentation.sendKeySync(KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_DOWN))
    Thread.sleep(500)

    // 点击确认键
    scope.instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_ENTER)
}

注意事项

  • 延迟时间(Thread.sleep)需根据应用实际响应速度调整,避免操作过快导致UI未完成响应。
  • 确保测试时应用处于前台,scope.startActivityAndWait()已确保应用启动并处于活跃状态。
  • 按键KeyCode需匹配TV遥控器的实际按键,常用KeyCode包括:KEYCODE_DPAD_UP/DOWN/LEFT/RIGHT、KEYCODE_ENTER、KEYCODE_BACK等。

内容的提问来源于stack exchange,提问作者Rahul Rawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 04:40:54