当前位置: 首页 > news >正文

[自动化]AutoJS——Android自动化工具

[自动化]AutoJS——Android自动化工具

介绍

AutoJS 是一款运行在 Android 平台上的 JavaScript 自动化工具。它基于无障碍服务,可以模拟用户的各种操作(点击、滑动、输入等),读取屏幕上的文字和控件信息,实现自动化测试、批量操作、定时任务等功能。

AutoJS 支持在电脑上使用 VS Code 编写和调试脚本,通过局域网连接到手机直接运行,极大提升了开发效率。

  • 官方文档:http://autojs.cc/v8/
  • 教程文档:https://github.com/wiatingpub/autojs/tree/master/%E6%95%99%E7%A8%8B
  • 入门介绍 | Auto.js Pro文档

适用场景:

  • 自动刷视频、点赞、评论
  • 定时签到、打卡
  • 爬取 App 内的数据(如商品信息、文章列表)
  • 批量操作(如群发消息、清理好友)
  • 游戏辅助(简单重复操作)

注意:具体使用需要遵循相关法律法规,否则后果自负。

安装

1. Autojs apk安装

推荐下载Auto 4 版本,无主流限制。

注意:安装好后会有更新提示,千万不要更新,更新后就会变成收费版了,收费版无法在一些App上应用。

下载地址:

  • 链接: https://pan.baidu.com/s/1pfvQX5sjip6amRnWIUrmWw?pwd=xjhs
  • 提取码: xjhs
  • 推荐版本:AutoJS 4.1.1(无主流限制,稳定且完全免费)
  • 获取方式:
    • 官方 GitHub 仓库(搜索 Auto.js 找到 4.1 版本)
    • 各大软件下载站(请留意文件完整性,建议从可信来源下载)
  • 安装注意事项:安装完成后打开 App,千万不要点击更新!一旦更新到新版(如 4.2+ 或 4.3+),将变成收费版,且可能无法在某些应用上正常使用自动化功能。如果误触更新,建议立即卸载重装旧版本,并关闭应用商店的自动更新功能。

2. adb环境安装

  1. 下载地址:将文件下载下来,解压缩到自定义的安装目录。
  • Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
  • Mac版本:https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
  • Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip
  1. 配置环境变量
  • window环境:

按键windows+r打开运行,输入sysdm.cpl,回车。高级》环境变量》系统变量》path。将adb的存放路径添加进path中

  • Linux/Mac环境:
# 打开配置文件(跟自己使用的终端有关)# 查看当前所使用的终端类型:echo $SHELLvim~/.zshrc# 新增内容(将路径替换为实际解压路径)exportPATH=${PATH}:/你的解压路径/platform-tools# 刷新环境变量source~/.zshrc
  1. 验证结果:
adb--version

配置

主要流程:开启开发者模式(USB调试)→ 开启无障碍服务 → 连接电脑(Wi-Fi 或 USB 转发)→ 启动 AutoJS 服务

1. 开启手机开发者模式

不同手机开启开发者模式方式不同,具体可根据自己手机型号版本进行Google。

  1. 进入「设置」→「关于手机」
  2. 连续点击「版本号」7 次,直到提示“您已处于开发者模式”
  3. 返回「设置」主界面,即可看到「开发者选项」
  4. 进入「开发者选项」,可开启 USB 调试(用于电脑 ADB 操作)

2. 开启无障碍服务

AutoJS 的所有自动化操作都依赖 Android 的无障碍服务。

  1. 在手机上打开 AutoJS App
  2. 点击左侧抽屉菜单 →「无障碍服务」
  3. 点击「开启无障碍服务」,跳转到系统设置
  4. 在已下载的服务列表中找到 AutoJS,开启开关
  5. 系统提示可能存在的风险,点击「确定」

验证:返回 AutoJS 后,左上角应显示“无障碍服务已启用”。

3. 连接电脑(通过局域网调试)

AutoJS 支持在电脑上编写脚本并实时运行在手机上,大幅提升开发体验。

电脑端准备:

  • 安装 VS Code
  • 在 VS Code 扩展商店搜索并安装 Auto.js-VSCodeExt(或 Auto.js-VSCodeExt-Fixed)
  • 按下 Ctrl+Shift+P,输入 Auto.js,选择「Auto.js: Start Server」,启动服务。此时会显示服务运行的 IP 和端口(例如 192.168.35.12:9317)

手机端连接:
根据需求选择以下任一方式:

  • 方式一:通过 Wi-Fi 连接(无线,无需数据线)

    1. 确保手机与电脑连接 同一个 Wi-Fi
    2. 打开 AutoJS App,点击左侧抽屉菜单 →「连接电脑」
    3. 在弹出的对话框中输入电脑显示的 IP 地址(不需要输入端口号,例如 192.168.35.12)
    4. 点击「连接」,看到“连接成功”提示即完成
  • 方式二:通过 USB 转发连接(有线,连接更稳定,无需 Wi-Fi)

    1. 用 USB 数据线将手机连接到电脑,并确保已开启 USB 调试(见「开启手机开发者模式」)
    2. 在电脑命令行中执行以下命令:
    adb forward tcp:9317 tcp:9317
    1. 在 VS Code 中按 Ctrl + Shift + P,选择「Auto.js: Start Server」启动服务
    2. 在手机端 AutoJS 的「连接电脑」对话框中,输入 IP 地址 127.0.0.1
    3. 点击「连接」,看到“连接成功”提示即完成

常见连接问题及解决:

问题现象可能原因解决方案
连接超时/失败手机与电脑不在同一网络检查 Wi-Fi 是否相同,或尝试用电脑开热点、手机连接热点
连接后无法运行脚本防火墙阻止了端口通信关闭电脑防火墙测试,或添加入站规则允许 9317 端口
手机 ping 不通电脑路由器开启了 AP 隔离登录路由器管理界面,关闭“AP 隔离”或类似选项
连接成功但执行无反应AutoJS 服务未完全启动重启 VS Code 服务,或重启手机 AutoJS 应用

4. 启动 AutoJS 服务

每次打开 AutoJS 后,无障碍服务会自动生效(部分手机可能会被系统限制)。如果之前已开启,可直接使用。
若想确保服务稳定,可在「无障碍服务」界面检查状态,必要时重新关闭再开启。

使用

1. 快速入门

下面将通过一个简单的案例,演示如何通过js启动小红书 App。
在 VS Code 中新建文件 main.js,粘贴代码:

// 1. 确保无障碍服务已开启auto.waitFor();// 2. 通过应用名称启动小红书(需与手机显示的名称完全一致)varappName="小红书";launchApp(appName);// app.launchPackage("com.xingin.xhs"); // 通过小红书包名启动// 3. 等待应用启动(3秒)sleep(3000);// 4. 简单验证:查找包含“搜索”描述的控件,若找到则认为成功varsearchBox=descContains("搜索").findOne(5000);if(searchBox){toastLog("小红书启动成功!");}else{toastLog("可能未进入主界面,请检查");}// 5. 脚本结束

运行:

  • 确保电脑与手机已连接(VS Code 左下角显示设备图标)
  • 在 VS Code 中打开该脚本,按 F5 或通过命令面板选择「Auto.js: Run」
  • 手机将自动打开小红书,并弹出成功提示


关键函数说明:

  • auto.waitFor():等待无障碍服务启用,若未开启则提示用户手动开启。
  • launchApp(appName):通过 App 名称启动应用(系统需识别此名称)。
  • descContains(“搜索”):根据控件的 content-desc 属性模糊查找元素。
  • findOne(timeout):在指定时间内查找控件,若找到返回控件对象,否则返回 null。

TIPS:打开应用之后,后续就可以通过其他API模拟用户操作实现自动化流程。

2. 运行与调试

  • 运行脚本:在 VS Code 中打开脚本文件,按 F5 即可运行。脚本会在连接的手机上实时执行。
  • 停止脚本:如需中途停止,可按 Shift + F5。
  • 查看日志输出:脚本中的 console.log() 信息会显示在 VS Code 的终端(Terminal)面板中,是排查逻辑错误最直接的方式。toastLog() 则会在手机屏幕上弹出消息框并同时输出日志,适合快速确认关键节点。
  • 利用布局分析工具:Auto.js 手机 App 自带“布局分析”功能。在 App 的侧边菜单中找到它,点击屏幕上任意元素,即可查看其 id、text、desc 等关键属性。这是编写和调试选择器最核心的工具。
  • 断点调试:虽然不如前端开发那么完善,但你可以通过在代码中插入 exit() 或 sleep() 配合日志输出来模拟断点效果,逐步排查问题。

3. 实战项目:每日自动签到

下面我们实现一个完整的项目,通过Autojs实现支付宝的每日自动签到。

目标拆解

  1. 启动支付宝:通过应用名或包名打开支付宝 App。
  2. 导航至会员页面:进入「我的」→「支付宝会员」(或「蚂蚁会员」)页面。
  3. 执行签到:查找并点击“签到”按钮,完成签到领积分操作。
  4. 结果反馈:通过日志或弹窗提示签到结果。
  5. 定时执行:利用 AutoJS 定时任务功能,设置为每天固定时间自动运行。

详细步骤:

  1. 通过VSCode Autojs插件新建一个完整的AutoJS项目
  2. 新建之后,脚本文件默认为main.js

以下脚本主要为了快速演示效果,大部分采用坐标进行点击,不具有通用性。

main.js:

// 等待无障碍服务启动auto.waitFor();// 配置参数constPACKAGE_NAME="com.eg.android.AlipayGphone";constTIMEOUT=5000;// 超时时间 5秒try{// 1. 检查支付宝是否已在运行letcurrentPkg=currentPackage();if(currentPkg===PACKAGE_NAME){toastLog("支付宝已在运行,跳过启动步骤");}else{toastLog("正在打开支付宝...");app.launch(PACKAGE_NAME);// 等待应用启动waitForPackage(PACKAGE_NAME,10000);}// 2. 等待主页加载稳定// 建议:检测首页特定元素出现,比固定 sleep 更可靠// 这里暂时使用 sleep,可根据设备性能调整sleep(3000);// 3. 点击【我的】Tab// 优先尝试 UI 选择器,如果失败则使用坐标兜底// let myTab = id("tab_description").text("我的").findOne(TIMEOUT);// if (myTab) {// safeClick(myTab);// toastLog("已点击【我的】Tab (UI)");// } else {// toastLog("未找到【我的】UI元素,使用坐标兜底");// clickByBounds(927, 2208, 1017, 2298);// }id("tab_description").className("android.widget.TextView").text("我的").findOne().parent().waitFor()sleep(2000);// 4. 点击【支付宝会员】letmemberEntry=text("支付宝会员").findOne(TIMEOUT);if(memberEntry){safeClick(memberEntry);toastLog("已点击【支付宝会员】 (UI)");}else{toastLog("未找到【支付宝会员】UI元素,使用坐标兜底");clickByBounds(180,531,420,595);}sleep(2000);// 5. 点击【每日签到】// 重要:先检查元素是否存在letsignBtn=className("android.widget.TextView").text("每日签到").findOne(TIMEOUT);if(signBtn){safeClick(signBtn);toastLog("已点击【签到】");}else{toastLog("未找到【每日签到】按钮,可能已签到或UI变更");}sleep(2000);// 任务完成后回到支付宝首页back();back();// 点击首页按钮id("tab_description").className("android.widget.TextView").text("首页").findOne().parent().waitFor()toastLog("任务执行完毕,准备退出...");}catch(e){// 捕获中间过程的错误toastLog("执行过程中发生错误: "+e.message);console.error(e);}finally{// 无论成功还是失败,都执行清理工作try{// 返回桌面home();// 短暂等待以确保 home 动作完成sleep(1000);// 停止脚本exit();}catch(exitError){// 忽略退出时的中断异常,这通常是正常的console.log("脚本已终止");}}/** * 安全点击:处理 clickable=false 的情况 */functionsafeClick(element){if(!element)returnfalse;// 1. 尝试直接点击if(element.clickable()&&element.click()){returntrue;}// 2. 尝试点击父容器letparent=element.parent();if(parent&&parent.clickable()&&parent.click()){returntrue;}// 3. 尝试坐标点击letbounds=element.bounds();if(bounds){returnclick(bounds.centerX(),bounds.centerY());}returnfalse;}/** * 通过 bounds 位置点击指定位置 */functionclickByBounds(left,top,right,bottom){varx=Math.round((left+right)/2);vary=Math.round((top+bottom)/2);returnclick(x,y);}
  1. 调试:
  • 确保已启动Autojs Server
  • 确保手机已开启 AutoJS 的无障碍服务且已连接到电脑(此处我通过同一wifi直连)
  • 按F5运行脚本,观察手机是否自动运行,是否符合预期
  1. 设置定时任务:让脚本每天自动运行,有以下两种方式。
  • 方式一(推荐):在 VS Code 中按 Ctrl + Shift + P,选择 Auto.js: Save,脚本会自动保存到手机的默认目录(通常是 /sdcard/脚本/)。
  • 方式二(手动):将 .js 文件通过微信/QQ发送到手机,在 AutoJS App 中点击右下角「+」→「导入」即可。

脚本导入后:
a.在 AutoJS App 中找到该脚本。
b.点击右侧按钮 - 选择「更多」→「定时任务」→ 设置每天固定时间(如 08:00)。

c.确保 AutoJS 拥有“自启动”和“后台保持运行”权限。

  1. 可选:打包为应用apk(如果需要将脚本进行分发,可直接打包为apk)。
    选择脚本进行打包:脚本 - 脚本右侧按钮 - 更多 - 打包应用 - 填写打包信息
    PS:如果打包过程中提示没有插件,可下载下面apk,进行安装。

下载地址:AutoJS4.1.1打包插件

选中脚本 - 点击更多:

点击打包应用:

填写相关打包信息,然后点击√即可打包。打包后可直接安装:

最终效果:

6. 接着就可以安装到自己手机,快速触发脚本

注意事项

  1. 无障碍服务:AutoJS 依赖无障碍服务,部分系统(如 MIUI、EMUI)可能需要额外的权限设置,如“后台弹出界面”“自启动”“省电无限制”等,以确保脚本在后台可靠运行。
  2. 版本更新:切勿升级 AutoJS 4 系列到更高版本,否则会失去免费功能。
  3. 界面变化:App 更新可能导致控件属性改变,需定期维护脚本。
  4. 合法性:请勿使用 AutoJS 进行违规操作(如刷单、恶意攻击等),尊重平台规则。
  5. 资源占用:长时间运行脚本会增加电量和内存消耗,建议合理控制循环间隔。

参考资料

  • AutoJS 相关文档:http://autojs.cc/v8/、https://docs.autojs6.com/#/overview
  • AutoJS 社区讨论:百度贴吧“autojs”吧、酷安评论区
  • 选择器 API 参考:className、id、text、desc 等用法可查阅官方文档
http://www.jsqmd.com/news/1046418/

相关文章:

  • NXP KMZ80磁角度传感器:从磁阻效应到汽车级SENT协议应用
  • 2026衢州本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐:房屋渗漏水检测维修/卫生间/厨房/天花板/阳台/外墙渗漏水检测补漏维修-暗管漏水检测专业仪器精准定位漏水点 - 即刻修防水
  • 分布式游戏服务器架构设计:基于.NET 8.0的OpenMir2传奇服务器技术实现方案
  • Python计算机毕设之基于 Django 的体育赛事资讯发布及售票系统的设计与实现 面向互联网的球类赛事智能购票管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • (2026新)淮安正规防水补漏公司口碑榜TOP5权威推荐!卫生间/厨房/阳台/屋顶/天花板/地下室渗漏水检测维修攻略-靠谱漏水检测维修师傅推荐 - 安佳防水
  • (2026新)温州正规防水补漏公司口碑榜TOP5权威推荐!卫生间/厨房/阳台/屋顶/天花板/地下室渗漏水检测维修攻略-靠谱漏水检测维修师傅推荐 - 安佳防水
  • MC68HC908QY/QT时钟系统深度解析:从振荡器原理到实战配置
  • JSON最小化实际应用场景案例
  • 《2026 AI 数字人直播系统 TOP10 实测:监管收紧下,长效运营谁是合规标杆?》
  • 收藏!小白程序员必看:Agent性能优化五大维度,让你的大模型跑起来!
  • 2026衡阳本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐:房屋渗漏水检测维修/卫生间/厨房/天花板/阳台/外墙渗漏水检测补漏维修-暗管漏水检测专业仪器精准定位漏水点 - 即刻修防水
  • DCAFE双坐标注意力机制详解:提升YOLO小目标检测精度
  • MCU时钟系统深度解析:从FLL原理到MC9S08SH32实战配置
  • Mac本地AI智能体实战:MLX+OpenClaw+飞书全链路搭建
  • ZeroGPU 是 Hugging Face的免费GPU,免费用户每天最多五分钟
  • DeepMind震撼报告:四条通往超级人工智能之路
  • 2026衡水漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水
  • Spice Model 参数实战指南——以FET为例
  • (2026新)淮南正规防水补漏公司口碑榜TOP5权威推荐!卫生间/厨房/阳台/屋顶/天花板/地下室渗漏水检测维修攻略-靠谱漏水检测维修师傅推荐 - 安佳防水
  • 2026年6月PP鱼池采购指南:精选靠谱厂家助你决策,养鱼系统/渔港中转暂养池/移动式帆布鱼池,PP鱼池批发厂家哪家权威 - 品牌推荐师
  • 曲线、曲面积分学习笔记
  • VQA技术演进与工业落地实战指南
  • 内网纵深渗透:Cobalt Strike 正向与反向连接实战攻防解析
  • 骨传导到底是不是智商税?骨聆 W80 给你答案
  • Vue Router 4 新特性
  • Kinetis K63F电气特性深度解析:从数据手册到低功耗系统设计实战
  • MC9S12XE引脚复用与工作模式配置详解
  • 听风唱歌的日子
  • 信息学奥赛解题实战:从“苹果与虫子”问题看条件判断与边界处理
  • Odoo 19会计模块功能:会计资产负债表完整操作指南