回答
要让脚本运行更快,可以尝试以下几种优化方法:
-
减少不必要的等待时间
把sleep(3000)改成更短的时间,比如sleep(1000)或sleep(500),只要能保证界面加载完成即可。如果设备性能足够,甚至可以尝试sleep(300)。 -
用更精确的控件匹配代替
sleep
不要固定等待,而是等待特定控件出现,这样能在界面就绪后立刻继续执行,例如:// 文档地址 https://docs.hamibot.com/ var likeBtn = descEndsWith("次赞").findOne(5000); // 最多等5秒 if (likeBtn) { var bounds = likeBtn.bounds(); var x = bounds.centerX(); var y = bounds.centerY(); // 执行点赞操作... } -
优化点赞循环
循环内如果每次都用descEndsWith("次赞").findOne()会重新查找,可以循环外先找到按钮,循环内直接点击坐标,减少查找开销。但需要确认按钮位置不会变化。 -
使用
click代替坐标点击
如果按钮支持click(),直接调用likeBtn.click()比计算坐标再点击更高效。 -
减少界面切换次数
脚本中每次打开一个 QQ 号都会启动FriendProfileCardActivity,如果网络不好或设备慢,可以尝试批量处理,但通常无法避免。可考虑使用 Root 权限或无障碍服务直接操作,避免界面切换动画。 -
关闭动画效果
在开发者选项中把窗口动画、过渡动画、动画时长都设为 0.5x 或关闭,能让界面切换更快。 -
使用
threads或并发?
由于设备限制,一般不能同时打开多个 QQ 界面,所以并行点赞不太现实,但可以把点赞循环内的操作紧凑化。 -
检查代码兼容性
当前脚本中点赞循环部分有语法错误(for (let i = 0; i < 10; i++) {;后面缺少对应操作),修正后去除多余分号,确保逻辑正确。
综合建议:优先用 findOne(timeout) 替换固定 sleep,并缩短等待时间,同时确保点赞循环内部高效。如果设备已 root,可以用 RootAutomator 的触摸操作替代无障碍点击,速度更快。