SuperAPI AI 工具集

ohos-dev-distributed-mmi-uinput-virtual-device

测试与质量

查看项目

更新于 10-16 07:28

技能介绍

用途:在真机上测试 OpenHarmony 输入子系统,通过 /dev/uinput 创建虚拟 HID 设备并注入事件,验证鼠标移动、按键、触控板事件流,测试设备绑定(BindDeviceToDisplayGroupByDisplay)与状态隔离,模拟热拔插,无需物理外设。

主要能力:创建虚拟鼠标、键盘;注入相对移动与按键事件;通过 InputManager 异步发现设备;模拟设备移除;验证 per-group 状态隔离;配合 phase-marker 与 hidumper 抓取状态快照。

关键约束:bustype 必须用 BUS_USB(0x03),BUS_VIRTUAL 会被 MMI 过滤;vendor/product 需唯一,推荐 vendor=0x93a;鼠标必须同时注册 EV_KEY+EV_REL,否则不被识别为 pointer;键盘不注册 EV_REL;每个事件序列必须以 SYN_REPORT 结尾。

用法要点:open("/dev/uinput", O_WRONLY | O_NONBLOCK),用 ioctl 设置 UI_SET_EVBIT、UI_SET_KEYBIT、UI_SET_RELBIT,构造 uinput_user_dev 后 write 并 ioctl(fd, UI_DEV_CREATE)。创建后至少等 3 秒再调 FindDevice,给 libinput 和 MMI 枚举时间。测试退出前用 ioctl(fd, UI_DEV_DESTROY) 销毁设备。

状态隔离验证:创建 2 个虚拟设备绑定不同 group,先注入 2-3 个事件 warm-up 触发懒初始化,再分别注入不同值,dump 验证互不影响。

限制:资料未提供具体平台版本、权限要求与完整测试工程配置,需自行确认环境。