butubb
73895f7233
feat(任务): 录制手势改成**纯录制回放**(真手指轨迹)+ 手机端 getevent 录制
用户反馈:录制出来的滑动又被套上滑动那套逻辑(方向/幅度/拟人重新生成),
"导致滑动还是不顺畅"。录制就该是录制——按录下的路径与时间原样重放。
- 新步骤 `gesture`「录制手势」:存完整轨迹点列 `[[x,y,t_ms],…]`,
回放时原样交给设备(`d.swipe_points(points, duration)`),不做任何加工。
与 `swipe` 是两套东西(滑动是参数化的,录制是点列)。
- core/gesture.py(新):
· 手机端录制 `PhoneRecorder`:`getevent` 读**真触屏**设备(自动挑 fts_ts 这类、
排除 uinput/vitural-sar 等合成节点),解析两套协议(BTN_TOUCH / ABS_MT_TRACKING_ID);
**合成的注入事件不会出现在真触屏节点上**(实测),所以录到的只有人手的动作;
· 点列清洗:按 ≥16ms 抽稀但**末点必留**(快划时不能把收尾丢了);
· 回放**一次调用**而不是逐点注入:实测这台设备单次触摸 RPC ≈190ms,
逐点回放 20 点要 3.8 秒——只能让设备自己插值,"时间"由点密度还原。
- 接口:POST /api/gesture/record/{start,stop}(需设备权限;重复开始返回 409)。
- 「录制手势」步骤卡片:录到就回填(手机上录 / 网页上录),显示点数/时长;
**滑动步骤上的「录制手势」按钮已移除**(按用户要求,录制不再走滑动逻辑)。
- 录制前自动唤醒设备:**息屏时 u2 抓 UI 树会从 3 秒退化到 65 秒**(实测),
截图也是黑的——这是本次排查最耗时的坑,已写进文档。
自测:假设备单测(点列/时长/抽稀/失败退回直线,10 项);
无头浏览器 + CDP 真模拟拖动 → 录到 14 点/605ms 并按实际轨迹回填;
手机录制接口起停/重复拦截;
真机回放:用录下的轨迹跑任务 → 步骤 `gesture ok`。
⚠️ 手机端"真手指轨迹"这一段需要人真的去划才能端到端验证(我没有手指)。
文档:TASK_DEV §3.2(两套东西对比 + 三个坑)、步骤表 21 种、API、README。
2026-09-20 15:04:21 +08:00
..
2026-09-10 21:43:08 +08:00
2026-09-10 21:43:08 +08:00
2026-08-30 10:57:07 +08:00
2026-09-15 13:55:14 +08:00
2026-08-20 10:51:54 +08:00
2026-09-13 10:38:13 +08:00
2026-09-15 13:55:14 +08:00
2026-09-11 11:03:38 +08:00
2026-09-16 08:58:43 +08:00
2026-09-20 15:04:21 +08:00
2026-09-16 12:39:47 +08:00
2026-09-16 08:58:43 +08:00
2026-09-16 08:58:43 +08:00
2026-09-16 13:02:40 +08:00
2026-09-16 13:02:40 +08:00
2026-09-04 14:33:28 +08:00
2026-09-16 13:02:40 +08:00
2026-08-15 15:22:55 +08:00
2026-09-20 14:32:35 +08:00
2026-09-16 08:58:43 +08:00
2026-09-16 08:58:43 +08:00
2026-08-11 09:06:59 +08:00
2026-09-13 23:08:59 +08:00
2026-09-16 13:02:40 +08:00
2026-09-16 13:02:40 +08:00
2026-09-14 08:14:11 +08:00