当前位置:首页>java>安卓手机Shell编程实现自动点击器完全指南

安卓手机Shell编程实现自动点击器完全指南

  • 2026-09-08 22:11:12
安卓手机Shell编程实现自动点击器完全指南


安卓手机Shell编程实现自动点击器完全指南

引言

自动点击器在自动化测试、批量操作等场景中具有重要作用。本文将详细介绍如何通过Shell脚本在安卓设备上实现功能完善的自动点击器,无需Root权限即可实现基础的点击自动化。

一、核心实现原理

安卓自动点击的核心是通过 ADB(Android Debug Bridge) 的input命令模拟屏幕触摸事件。基本原理是发送以下指令:

adb shell input tap X Y

其中XY分别代表屏幕上的横纵坐标值。这种方式简单高效,适用于大多数安卓设备。

二、环境准备

1. 启用开发者选项

  • • 进入手机设置 → 关于手机
  • • 连续点击版本号7次开启开发者模式
  • • 返回设置 → 开发者选项
  • • 启用 USB调试 和 "仅充电"模式下允许ADB调试

2. 安装ADB工具

Windows/Mac电脑端:

# Mac通过Homebrew安装
brew install android-platform-tools

# 验证安装
adb version

手机端(免电脑方案):
在Termux中安装ADB:

pkg update
pkg install android-tools

3. 连接设备

# 查看连接状态
adb devices

# 无线连接(可选)
adb tcpip 5555
adb connect 手机IP地址:5555

三、基础Shell脚本实现

1. 单次点击脚本

创建click.sh文件:

#!/bin/bash
# 自动点击指定坐标

# 配置点击坐标
X=500
Y=1000

# 执行点击
adb shell input tap $X$Y

echo"已在坐标($X$Y)执行点击"

赋予执行权限并运行:

chmod +x click.sh
./click.sh

2. 循环点击脚本

实现多次连续点击功能:

#!/bin/bash
# 循环自动点击器

# 配置参数
X=300
Y=800
COUNT=10          # 点击次数
INTERVAL=1        # 间隔时间(秒)

echo"开始执行$COUNT次自动点击..."
for i in $(seq 1 $COUNT)
do
echo"第 $i 次点击"
    adb shell input tap $X$Y
sleep$INTERVAL
done

echo"任务完成!"

3. 带日志的增强版

添加时间戳和错误处理:

#!/bin/bash
# 增强型自动点击器

# 配置区域
TARGET_X=450
TARGET_Y=1200
TOTAL_TIMES=50
SLEEP_TIME=2

# 记录开始时间
start_time=$(date'+%Y-%m-%d %H:%M:%S')
echo"===== 自动点击任务开始于 $start_time ====="

# 主循环
for ((i=1; i<=TOTAL_TIMES; i++))
do
    current_time=$(date'+%H:%M:%S')
echo"[$current_time] 执行第 $i/$TOTAL_TIMES 次点击"

if adb shell input tap $TARGET_X$TARGET_Ythen
echo"  ✓ 点击成功"
else
echo"  ✗ 点击失败,请检查设备连接"
exit 1
fi

# 最后一次点击后不等待
if [ $i -lt $TOTAL_TIMES ]; then
sleep$SLEEP_TIME
fi
done

end_time=$(date'+%Y-%m-%d %H:%M:%S')
echo"===== 任务完成于 $end_time ====="
echo"总计完成 $TOTAL_TIMES 次点击"

四、坐标获取方法

方法一:使用开发者选项

  1. 1. 进入开发者选项
  2. 2. 开启指针位置显示触摸操作
  3. 3. 屏幕顶部会实时显示当前触摸坐标

方法二:UIAutomator工具

# 获取当前界面布局信息
adb shell uiautomator dump /sdcard/ui.xml
adb pull /sdcard/ui.xml

# 在生成的xml文件中查找控件坐标

方法三:ADB命令实时获取

# 监听触摸事件(需要root)
adb shell getevent -l

五、手机端独立运行方案

Termux实现方案

在手机上安装Termux后,可直接运行Shell脚本:

#!/data/data/com.termux/files/usr/bin/sh
# Termux专用自动点击器

# 权限检测
if [ ! -x "$(command -v input)" ]; then
echo"请在Termux中安装termux-api"
exit 1
fi

# 使用termux-touch模拟点击
# 安装termux-api后可直接调用
termux-touch -x 500 -y 800

# 或者使用input命令(无需termux-api)
input tap 500 800

无Root点击方案

对于无Root设备,可通过Termux调用系统无障碍服务:

#!/bin/bash
# 结合无障碍服务的点击方案

# 需要先安装Auto.js或类似工具
# 然后发送Intent启动点击

am start -n com.stardust.scriptdroid/.external.open.RunIntentActivity \
  -d file:///sdcard/scripts/click.js

六、进阶功能实现

1. 条件判断点击

#!/bin/bash
# 根据屏幕内容判断点击

# 截图并识别颜色
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png

# 使用ImageMagick获取某点颜色值
COLOR=$(convert screen.png -crop 1x1+500+500 txt:- | grep -o '#......')

# 判断颜色并执行点击
if [ "$COLOR" = "
#FF0000" ]; then
echo"检测到目标颜色,执行点击"
    adb shell input tap 500 500
else
echo"条件不满足,跳过点击"
fi

2. 多点轮流点击

#!/bin/bash
# 抖音视频轮播点击示例

# 定义两个视频的坐标
VIDEO1_X=14
VIDEO1_Y=1402
VIDEO2_X=375
VIDEO2_Y=1402

whiletruedo
echo"点击视频1"
    adb shell input tap $VIDEO1_X$VIDEO1_Y
sleep 3

# 返回
    adb shell input keyevent KEYCODE_BACK
sleep 1

echo"点击视频2"
    adb shell input tap $VIDEO2_X$VIDEO2_Y
sleep 3

    adb shell input keyevent KEYCODE_BACK
sleep 1

echo"循环次数: $((++i))"
done

3. 配置文件管理

创建config.ini配置文件:

# 点击配置
COORDINATES=300,500;600,800
INTERVAL=2
COUNT=20

读取配置的脚本:

#!/bin/bash
# 配置文件版点击器

source config.ini

# 将分号分隔的坐标转换为数组
IFS=';'read -ra COORDS <<< "$COORDINATES"

for ((i=1; i<=COUNT; i++)); do
for coord in"${COORDS[@]}"do
        IFS=','read -r x y <<< "$coord"
echo"点击坐标($x$y)"
        adb shell input tap $x$y
sleep$INTERVAL
done
done

七、注意事项与优化建议

1. 性能优化

  • • 适当延迟:添加sleep避免点击过快导致应用无响应
  • • 异常处理:检测ADB连接状态,断线重连
  • • 日志记录:记录每次操作便于排查问题

2. 兼容性处理

# 自动获取屏幕分辨率
WIDTH=$(adb shell wm size | grep -o '[0-9]*x[0-9]*' | cut -d'x' -f1)
HEIGHT=$(adb shell wm size | grep -o '[0-9]*x[0-9]*' | cut -d'x' -f2)

# 根据分辨率计算相对坐标
X=$((WIDTH * 30 / 100))  # 屏幕宽度30%位置
Y=$((HEIGHT * 70 / 100)) # 屏幕高度70%位置

3. 法律与安全提醒

  • • 仅用于学习、自动化测试或个人效率提升
  • • 严禁用于游戏作弊、刷量等违规行为
  • • 注意保护个人隐私数据

八、总结

通过Shell脚本实现安卓自动点击器是一种轻量级、高效的自动化方案。核心优势包括:

  1. 1. 无需Root:基于ADB或无障碍服务实现
  2. 2. 跨平台:可在Windows、Mac、Linux甚至手机上运行
  3. 3. 易扩展:可结合Python、JavaScript等实现更复杂逻辑
  4. 4. 低资源消耗:Shell脚本运行开销极小

对于更复杂的场景,建议结合Python的adbutils库或开发专用无障碍服务应用来实现。

通过本教程,您已经掌握了从基础到进阶的Shell自动点击器实现方法。合理使用这些技术可以大幅提升重复性操作的效率。

Shell编程中数组详解:从入门到进阶

Shell编程中变量详解:从入门到精通

Shell编程中逻辑运算详解

Shell编程中数学运算详解

Shell编程中dialog生成图形化窗口详解

点分享

点收藏

点点赞

点在看

最新文章

随机文章