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

如何让ADB快速模拟安卓手机的连续点击操作?

解决ADB重复点击速度过慢的问题

我之前也碰到过ADB单循环执行点击操作时速度慢到离谱的情况,那种看着操作龟速推进的感觉太煎熬了!你说的开多个终端并行跑循环确实能提速,但其实有更优雅高效的办法,不用手动开一堆窗口折腾。

为什么单循环速度这么慢?

核心原因是每次单独执行adb shell input tap都会建立一次ADB连接,从本地终端到设备的通信开销占了大部分时间,循环次数越多,累计的开销就越大,自然慢得不行。

高效解决方案

1. 把循环放到设备端执行(最推荐)

不要在本地终端做循环,而是把整个循环逻辑放到设备的shell里执行,这样只需要建立一次ADB连接,所有点击操作都在设备内部完成,能大幅提升速度:

adb shell 'for i in $(seq 1 100); do input tap 500 500; done'

这里的seq 1 100是循环次数,500 500是点击的坐标,你可以根据自己的需求修改。如果是Android 7.0以上,还可以用更高效的while循环:

adb shell 'count=0; while [ $count -lt 100 ]; do input tap 500 500; count=$((count+1)); done'

2. 用底层sendevent命令(极致速度)

如果input tap还是满足不了你的速度要求,可以试试更底层的sendevent命令,它直接向输入设备节点发送事件,跳过了input命令的封装开销。不过需要先获取你的设备的触控输入节点:
首先通过ADB执行:

adb shell getevent -l

找到类似/dev/input/eventX的触控节点(通常带有ABS_MT_POSITION_X/ABS_MT_POSITION_Y这类事件标识)。然后模拟一次点击需要发送按下、松开的事件,比如:

adb shell 'sendevent /dev/input/event2 3 53 500; sendevent /dev/input/event2 3 54 500; sendevent /dev/input/event2 1 330 1; sendevent /dev/input/event2 0 0 0; sendevent /dev/input/event2 1 330 0; sendevent /dev/input/event2 0 0 0'

把这段命令放到设备端的循环里,速度会比input tap快很多。

3. 后台并行执行(替代多终端)

如果还是想并行执行,不用手动开多个终端,直接在命令后面加&让任务在后台运行,同时启动多个:

adb shell 'for i in $(seq 1 50); do input tap 500 500; done' &
adb shell 'for i in $(seq 1 50); do input tap 600 600; done' &

这样两个任务会并行执行,效果和开两个终端一样,但操作更方便。

总结

开多个终端本质是利用了多连接并行,减少单连接的阻塞,但把循环放到设备端执行才是从根源上减少通信开销、提升速度的最优解。如果追求极致速度,sendevent是更好的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:45:20