01 点击功能
点击动作使用教程
概述
点击动作是脚本系统中最基础也是最重要的操作类型之一。它允许用户模拟手指在屏幕上的点击操作,通过蓝牙连接发送精确的触摸指令到目标设备。
支持的功能特性
- 百分比坐标系统: 使用0-100的百分比坐标,适配不同分辨率设备
- 随机偏移: 支持随机偏移量,增加操作的自然性
- 精确坐标转换: 自动处理屏幕参数和坐标转换
- 蓝牙传输: 通过蓝牙协议发送点击指令
核心概念
坐标系统
| 参数 | 类型 | 范围 | 说明 |
|---|---|---|---|
| X坐标 | 百分比 | 0-100 | 水平位置,0表示最左边,100表示最右边 |
| Y坐标 | 百分比 | 0-100 | 垂直位置,0表示最顶部,100表示最底部 |
| 随机偏移 | 像素值 | ≥0 | 在指定范围内随机偏移,单位为像素 |
工作原理
- 输入处理: 接收用户输入的百分比坐标和偏移参数
- 坐标转换: 将百分比坐标转换为设备实际像素坐标
- 偏移计算: 应用随机偏移量(如果设置)
- 范围检查: 确保最终坐标在屏幕有效范围内
- 指令发送: 通过蓝牙发送触摸指令到目标设备
配置界面
基本配置
在脚本编辑器中选择”点击”动作类型后,将显示以下配置选项:
1. X坐标(百分比)
输入说明: - 取值范围:0-100 - 数据类型:数字 - 必填项:是 - 示例值:50(表示屏幕水平中心位置)
含义解释: - 0: 屏幕最左边 - 50: 屏幕水平中心 - 100: 屏幕最右边
2. Y坐标(百分比)
输入说明: - 取值范围:0-100 - 数据类型:数字 - 必填项:是 - 示例值:30(表示屏幕上方30%的位置)
含义解释: - 0: 屏幕最顶部 - 50: 屏幕垂直中心 - 100: 屏幕最底部
3. 随机偏移量
输入说明: - 取值范围:≥0 - 数据类型:整数 - 必填项:否 - 默认值:0 - 单位:像素
功能说明: - 设置为0:精确点击指定坐标 - 设置为正值:在指定坐标周围随机偏移 - 偏移计算:在[-偏移量, +偏移量]范围内随机选择X和Y的偏移值
坐标转换机制详解
核心转换流程
点击动作的坐标转换是一个复杂但精确的过程,涉及多个屏幕参数的计算:
1. 屏幕参数获取
设备实际分辨率(bitmap): 获取当前设备的真实屏幕分辨率
实际显示宽度(actual): 考虑黑边等因素的实际可用宽度
左边距(leftPadding): 显示区域的左侧偏移量
目标屏幕(target): 目标设备的标准分辨率 (2160x1080)
2. X坐标转换过程
步骤1: 应用随机偏移
实际百分比 = 原始百分比 + 偏移百分比
步骤2: 转换为设备像素
设备X = (实际百分比 / 100) × 设备实际宽度
步骤3: 减去左边距
调整后X = 设备X - 左边距
步骤4: 按比例转换到目标屏幕
最终X = (调整后X / 实际显示宽度) × 目标屏幕宽度
3. Y坐标转换过程
步骤1: 应用随机偏移
实际百分比 = 原始百分比 + 偏移百分比
步骤2: 直接转换
最终Y = (实际百分比 / 100) × 目标屏幕高度
4. 安全范围处理
最终坐标 = (
X: min(max(最终X, 0), 目标屏幕宽度),
Y: min(max(最终Y, 0), 目标屏幕高度)
)
转换示例
场景: 点击屏幕中心,偏移量为50像素
输入参数:
- X坐标: 50%
- Y坐标: 50%
- 随机偏移: 50
假设设备参数: - 设备实际分辨率: 1920×1080 - 实际显示宽度: 1800 - 左边距: 60 - 目标屏幕: 2160×1080
计算过程:
X坐标转换:
1. 随机偏移: 假设生成偏移为+30像素
偏移百分比 = 30/2160*100 ≈ 1.39%
实际百分比 = 50% + 1.39% = 51.39%
2. 设备像素: (51.39/100) × 1920 ≈ 987
3. 减去左边距: 987 - 60 = 927
4. 转换到目标: (927/1800) × 2160 ≈ 1113
Y坐标转换:
1. 随机偏移: 假设生成偏移为-20像素
偏移百分比 = -20/1080*100 ≈ -1.85%
实际百分比 = 50% - 1.85% = 48.15%
2. 最终Y: (48.15/100) × 1080 ≈ 520
最终坐标: (1113, 520)
使用场景
1. 基础点击操作
场景描述: 点击应用中的按钮、图标等固定位置元素
配置示例: - X坐标: 50 - Y坐标: 80 - 随机偏移: 0
适用情况: - 界面布局相对固定 - 目标元素位置稳定 - 需要精确点击
2. 自然化点击
场景描述: 模拟人工操作,增加随机性避免被检测
配置示例: - X坐标: 50 - Y坐标: 30 - 随机偏移: 20
适用情况: - 需要模拟真实用户行为 - 避免机器化操作痕迹 - 目标区域较大,允许一定偏差
3. 区域性点击
场景描述: 点击较大的可点击区域,如列表项、卡片等
配置示例: - X坐标: 75 - Y坐标: 45 - 随机偏移: 30
适用情况: - 目标区域面积较大 - 精确位置不重要 - 增加操作的随机性
4. 多位置轮换
场景描述: 配合循环或条件判断,在多个位置之间切换点击
配置示例:
位置1: X=25, Y=50, 偏移=10
位置2: X=75, Y=50, 偏移=10
位置3: X=50, Y=25, 偏移=10
适用情况: - 需要点击多个相似元素 - 避免固定模式的操作 - 实现更复杂的交互逻辑
配置实例
实例1: 精确点击登录按钮
需求: 点击应用登录界面的登录按钮
分析: - 登录按钮通常位于屏幕下方中心位置 - 需要精确点击,不需要偏移
配置:
动作类型: 点击
X坐标: 50
Y坐标: 85
随机偏移: 0
备注: 点击登录按钮
执行效果: 精确点击屏幕下方85%位置的中心点
实例2: 自然化点击搜索框
需求: 点击搜索框准备输入内容
分析: - 搜索框通常位于屏幕上方 - 区域较大,可以适当偏移增加自然性
配置:
动作类型: 点击
X坐标: 50
Y坐标: 15
随机偏移: 25
备注: 点击搜索框
执行效果: 在搜索框区域内随机位置点击,模拟真实用户行为
实例3: 点击列表项目
需求: 点击列表中的某个项目
分析: - 列表项通常较宽 - 可以在项目范围内随意点击
配置:
动作类型: 点击
X坐标: 60
Y坐标: 40
随机偏移: 40
备注: 点击列表第3项
执行效果: 在列表项区域内随机点击,确保能够选中目标项
实例4: 游戏操作点击
需求: 在游戏中点击技能按钮
分析: - 游戏按钮位置相对固定 - 需要快速响应,偏移不宜过大
配置:
动作类型: 点击
X坐标: 85
Y坐标: 70
随机偏移: 15
备注: 释放技能1
执行效果: 在技能按钮周围小范围内点击,保证准确性的同时增加少量随机性
执行机制详解
执行流程
点击动作的完整执行流程如下:
1. 参数验证
验证阶段:
- 检查X、Y坐标是否在0-100范围内
- 验证随机偏移量是否为非负数
- 确保必填参数已正确填写
2. 日志记录
记录内容:
- 开始执行点击操作的时间戳
- 输入的原始坐标和偏移参数
- 当前屏幕参数信息
3. 屏幕参数获取
获取信息:
- 目标设备屏幕分辨率 (2160×1080)
- 当前设备实际分辨率
- 显示区域的左边距和实际宽度
4. 偏移计算
随机偏移计算:
- 如果设置了偏移量,生成随机偏移值
- X偏移: 随机(-偏移量, +偏移量)
- Y偏移: 随机(-偏移量, +偏移量)
- 将像素偏移转换为百分比偏移
5. 坐标转换
转换步骤:
- 应用随机偏移到原始百分比坐标
- 转换为设备实际像素坐标
- 处理屏幕边距和缩放比例
- 转换为目标设备坐标系
6. 安全检查
范围限制:
- 确保X坐标在[0, 屏幕宽度]范围内
- 确保Y坐标在[0, 屏幕高度]范围内
- 防止坐标越界导致的异常
7. 指令发送
蓝牙传输:
- 调用蓝牙视图模型发送触摸指令
- 传输最终计算的坐标信息
- 等待指令执行完成
8. 执行延迟
后续处理:
- 执行100毫秒延迟确保指令完成
- 记录执行完成日志
- 为下一个动作做准备
性能特性
执行速度: - 坐标计算: ~1ms - 蓝牙传输: ~10-50ms - 总执行时间: ~100-200ms
准确性: - 坐标精度: 像素级 - 转换误差: <1像素 - 成功率: >99%
稳定性: - 支持连续快速点击 - 自动处理坐标越界 - 蓝牙连接异常保护
调试和日志
日志信息
点击动作执行时会生成详细的日志信息,帮助调试和监控:
1. 基本执行日志
动作#1 执行点击操作: (50%, 30%) 偏移: 20px
开始执行点击操作 - 输入坐标: (50%, 30%), 偏移: 20px
屏幕参数 - 宽度: 2160px, 高度: 1080px, 左边距: 60px, 实际宽度: 1800px
2. 偏移计算日志
随机偏移计算 - X偏移: +1.23%, Y偏移: -0.87%
3. 坐标转换日志
X坐标计算 - 应用偏移后百分比: 51.23% -> 设备X: 984
X坐标转换 - (984 - 60) / 1800 * 2160 = 1111
Y坐标计算 - 应用偏移后百分比: 29.13% -> 设备Y: 315
最终坐标 - 安全范围处理: (1111, 315) -> (1111, 315)
4. 执行状态日志
发送蓝牙点击命令 - 坐标: (1111, 315)
点击命令已发送,等待执行完成
点击操作执行完成
5. 详细调试日志(Debug模式)
执行点击操作:
|----------------------------------------
|基础参数:
|输入坐标: x=50%, y=30%
|设备实际分辨率: 1920x1080
|实际宽度: 1800, 左边距: 60
|目标屏幕: 2160x1080
|----------------------------------------
|X轴计算过程:
|1. 原始百分比: 50%
|2. 偏移百分比: +1.23%
|3. 实际百分比: 51.23%
|4. 设备实际X: (51.23% * 1920) = 984
|5. 减去左边距: 984 - 60 = 924
|6. 转换比例: 924 / 1800 = 0.513
|7. 最终X: 0.513 * 2160 = 1111
|----------------------------------------
|Y轴计算过程:
|1. 原始百分比: 30%
|2. 偏移百分比: -0.87%
|3. 实际百分比: 29.13%
|4. 最终Y: 29.13% * 1080 = 315
|----------------------------------------
|最终结果:
|安全范围处理后坐标: (1111, 315)
|----------------------------------------
调试技巧
1. 坐标验证
- 先使用偏移量为0测试精确坐标
- 逐步增加偏移量观察效果
- 使用截图功能验证点击位置
2. 性能监控
- 观察执行时间是否正常
- 检查蓝牙连接状态
- 监控内存和CPU使用情况
3. 错误排查
- 检查坐标是否在有效范围内
- 验证设备屏幕参数设置
- 确认蓝牙连接稳定性
最佳实践
1. 坐标选择原则
精确性 vs 稳定性: - 对于小目标(如按钮),使用精确坐标,偏移量5-15 - 对于大目标(如列表项),使用中心坐标,偏移量20-40 - 对于不重要位置,可以使用更大的偏移量
屏幕适配: - 优先选择相对位置而非绝对位置 - 考虑不同屏幕比例的适配性 - 避免选择边角位置,留出安全边距
2. 偏移量设置策略
自然化考虑:
- 模拟人手点击:10-30像素偏移
- 快速操作:5-15像素偏移
- 休闲操作:20-50像素偏移
目标大小匹配: - 小按钮(40px以下): 偏移0-10 - 中等按钮(40-100px): 偏移10-25 - 大区域(100px以上): 偏移25-50
3. 性能优化
减少计算开销: - 批量点击时复用屏幕参数 - 避免频繁的坐标转换计算 - 合理设置执行间隔
提高成功率: - 为关键操作设置重试机制 - 结合文字识别/图像识别进行动态定位 - 使用条件判断确认点击效果
4. 维护和调试
配置文档化: - 为每个点击动作添加清晰的备注 - 记录坐标选择的原因和依据 - 维护坐标和界面元素的映射关系
版本兼容性: - 定期测试不同设备的兼容性 - 关注应用界面更新对坐标的影响 - 建立坐标配置的版本管理
故障排除
常见问题
1. 点击位置不准确
问题现象: 点击偏离预期位置
可能原因: - 屏幕参数配置错误 - 坐标百分比计算有误 - 设备分辨率与预期不符
解决方案:
检查步骤:
1. 验证设备屏幕分辨率设置
2. 检查显示区域参数配置
3. 使用调试日志查看坐标转换过程
4. 测试已知位置的点击效果
调整方案:
1. 重新校准屏幕参数
2. 调整百分比坐标值
3. 减少随机偏移量
4. 使用截图辅助定位
2. 蓝牙指令发送失败
问题现象: 点击动作无响应
可能原因: - 蓝牙连接中断 - 目标设备无响应 - 指令格式错误
解决方案:
检查步骤:
1. 确认蓝牙连接状态
2. 测试其他蓝牙指令是否正常
3. 检查设备配对状态
4. 查看错误日志信息
修复方案:
1. 重新建立蓝牙连接
2. 重启蓝牙服务
3. 检查设备兼容性
4. 更新蓝牙驱动
3. 坐标越界
问题现象: 坐标超出屏幕范围
可能原因: - 输入坐标超过100% - 随机偏移量过大 - 屏幕参数异常
解决方案:
预防措施:
1. 使用0-100范围检查
2. 合理设置偏移量上限
3. 添加坐标范围验证
4. 实现自动边界裁剪
修复方法:
1. 调整输入坐标值
2. 减少随机偏移量
3. 检查屏幕参数设置
4. 使用安全坐标范围
4. 执行延迟过长
问题现象: 点击响应速度慢
可能原因: - 蓝牙通信延迟 - 系统性能不足 - 目标设备处理慢
解决方案:
优化策略:
1. 检查蓝牙信号强度
2. 关闭不必要的后台程序
3. 调整执行间隔设置
4. 使用更高效的指令格式
性能调优:
1. 减少日志输出级别
2. 批量处理相似操作
3. 优化坐标计算算法
4. 使用异步执行模式
高级用法
1. 配合其他动作
与等待动作结合:
动作序列:
1. 点击(启动应用按钮)
2. 等待(3秒,等待应用启动)
3. 点击(登录按钮)
与文字识别检测结合:
智能点击流程:
1. 文字识别检测(查找"登录"文字)
2. 点击(文字识别检测成功后的跳转动作)
3. 等待(1秒)
4. 文字识别检测(确认登录成功)
与循环结合:
批量操作:
1. 循环开始(5次)
2. 点击(列表项位置)
3. 等待(0.5秒)
4. 点击(下一项按钮)
5. 循环结束
2. 动态坐标策略
基于时间的坐标变化: - 根据执行时间调整点击位置 - 模拟用户习惯的位置偏好变化 - 避免固定模式被检测
基于条件的坐标选择: - 根据文字识别检测结果选择不同坐标 - 基于图像识别匹配结果动态调整 - 实现智能的位置选择逻辑
3. 批量点击优化
坐标预计算:
// 预先计算多个点击位置
val clickPositions = listOf(
Pair(25, 30), Pair(75, 30),
Pair(25, 70), Pair(75, 70)
)
智能间隔控制:
间隔策略:
- 快速点击: 100-200ms
- 正常点击: 300-500ms
- 缓慢点击: 1000-2000ms
4. 错误恢复机制
自动重试:
重试配置:
- 最大重试次数: 3
- 重试间隔: 1秒
- 失败后动作: 跳转到错误处理分组
状态检查:
点击后验证:
1. 点击动作
2. 等待(0.5秒)
3. 文字识别检测(验证点击效果)
4. 条件判断(成功/失败处理)
总结
点击动作是脚本自动化的核心组件,通过精确的坐标系统和灵活的配置选项,可以实现各种复杂的交互需求。掌握点击动作的配置和使用技巧,是构建高效自动化脚本的基础。
关键要点
- 理解坐标系统: 掌握百分比坐标和像素转换的原理
- 合理使用偏移: 平衡精确性和自然性的需求
- 重视日志调试: 利用详细日志信息排查问题
- 优化性能表现: 关注执行效率和稳定性
- 结合其他动作: 构建完整的自动化流程
正确使用点击动作可以让您的自动化脚本更加精确、稳定和高效!