下载地址:m.pan38.com/download.ph… 提取码:6666
基于AutoJS实现的屏幕自动点击器完整代码,包含UI界面和核心功能实现。您可以根据实际需求修改参数或扩展功能。使用时请确保已正确安装AutoJS应用并授予必要权限。
AutoJS屏幕自动点击器开发指南
一、实现原理
屏幕自动点击器通过模拟用户触摸事件实现自动化操作,主要功能包括:
单点连续点击
多点循环点击
坐标记录与回放
随机间隔防检测
二、完整实现代码
// AutoJS屏幕自动点击器 v2.0
// 功能:支持单点/多点循环点击,随机间隔,坐标记录
"ui";
ui.layout(
<vertical padding="16">
<text text="AutoJS点击器" textSize="20sp" gravity="center"/>
<horizontal>
<button id="single" text="单点模式" w="120"/>
<button id="multi" text="多点模式" w="120"/>
</horizontal>
<horizontal>
<text text="点击间隔(ms):" textSize="16sp"/>
<input id="interval" inputType="number" text="500" w="100"/>
</horizontal>
<horizontal>
<text text="随机范围(ms):" textSize="16sp"/>
<input id="random" inputType="number" text="100" w="100"/>
</horizontal>
<horizontal>
<button id="record" text="记录坐标" w="120"/>
<button id="play" text="执行点击" w="120"/>
</horizontal>
<horizontal>
<button id="stop" text="停止" w="120"/>
<button id="clear" text="清空记录" w="120"/>
</horizontal>
<scroll>
<text id="log" text="日志输出区域..." textSize="14sp"/>
</scroll>
</vertical>
);
// 全局变量
let clickPoints = [];
let isRunning = false;
let currentMode = "single"; // single/multi
// 单点模式按钮
ui.single.click(()=>{
currentMode = "single";
log("切换到单点模式");
});
// 多点模式按钮
ui.multi.click(()=>{
currentMode = "multi";
log("切换到多点模式");
});
// 记录坐标按钮
ui.record.click(()=>{
threads.start(function(){
log("请在3秒内点击屏幕记录坐标...");
let point = capturePoint();
if(point){
clickPoints.push(point);
log("记录坐标: (" + point.x + "," + point.y + ")");
}
});
});
// 执行点击按钮
ui.play.click(()=>{
if(clickPoints.length == 0){
log("请先记录点击坐标");
return;
}
if(isRunning){
log("已经在运行中");
return;
}
isRunning = true;
threads.start(function(){
let baseInterval = parseInt(ui.interval.text());
let randomRange = parseInt(ui.random.text());
log("开始自动点击...");
while(isRunning){
if(currentMode == "single"){
// 单点模式只使用第一个坐标
let point = clickPoints[0];
randomClick(point.x, point.y, baseInterval, randomRange);
}else{
// 多点模式循环所有坐标
for(let i = 0; i < clickPoints.length && isRunning; i++){
let point = clickPoints[i];
randomClick(point.x, point.y, baseInterval, randomRange);
}
}
}
log("已停止");
});
});
// 停止按钮
ui.stop.click(()=>{
isRunning = false;
});
// 清空记录按钮
ui.clear.click(()=>{
clickPoints = [];
log("已清空所有记录坐标");
});
// 随机点击函数
function randomClick(x, y, baseInterval, randomRange){
let actualInterval = baseInterval + random(0, randomRange);
press(x, y, 50);
log("点击: (" + x + "," + y + ") 间隔:" + actualInterval + "ms");
sleep(actualInterval);
}
// 捕获点击坐标
function capturePoint(){
let point = null;
let timeout = 3000; // 3秒超时
let start = Date.now();
while(Date.now() - start < timeout){
let e = events.peek();
if(e && e.getAction() == MotionEvent.ACTION_DOWN){
point = {x: e.getX(), y: e.getY()};
break;
}
sleep(10);
}
return point;
}
// 日志输出
function log(msg){
ui.run(()=>{
ui.log.setText(ui.log.getText() + "\n" + msg);
});
}
// 随机数生成
function random(min, max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}
三、功能扩展建议
添加手势滑动支持
实现OCR文字识别点击
增加定时任务功能
添加脚本导入导出功能
开发图像匹配点击功能
四、使用注意事项
需要开启AutoJS的无障碍服务
部分应用可能检测模拟点击
长时间运行可能导致手机发热
建议合理设置点击间隔
五、性能优化技巧
使用多线程处理复杂任务
减少不必要的界面更新
合理设置点击持续时间
避免在循环中创建大量对象