news 2026/6/20 4:38:57

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[自动化]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 等用法可查阅官方文档
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/20 4:03:23

LoadRunner 12.6社区版:性能测试入门与轻量级压测实战指南

1. 项目概述:为什么LoadRunner 12.6社区版值得关注?如果你是一名软件测试工程师,或者正在向这个方向发展,那么“性能测试”这个词对你来说一定不陌生。在项目上线前,我们总得知道系统到底能扛住多少用户同时访问&#…

作者头像 李华
网站建设 2026/6/20 4:01:57

BetterNCM安装器:3分钟解决网易云音乐插件安装难题的终极指南

BetterNCM安装器:3分钟解决网易云音乐插件安装难题的终极指南 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 你是否曾经为网易云音乐插件安装的复杂流程感到头疼&#xff…

作者头像 李华
网站建设 2026/6/20 3:42:13

鼓励探索、追求卓越

简 介: 本文针对智能车竞赛中"飞越雷区"新组别引发的争议进行回应。作者指出该组别具有显著创新性,从零开始的无人机技术探索充满挑战,需要克服机械结构、飞控调试等困难。相比传统组别,新赛题更注重三维空间协同、视觉…

作者头像 李华
网站建设 2026/6/20 3:41:04

OWASP WrongSecrets实战:59个密钥泄露场景攻防解析与防御体系构建

1. 项目概述:为什么我们需要WrongSecrets?如果你是一名开发者、安全工程师,或者正在备考安全认证,那么“密钥泄露”这个词对你来说一定不陌生。它就像悬在应用安全头上的达摩克利斯之剑,一旦发生,轻则数据泄…

作者头像 李华