![[自动化]AutoJS——Android自动化工具](http://pic.xiahunao.cn/yaotu/[自动化]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?pwdxjhs提取码: xjhs推荐版本AutoJS 4.1.1无主流限制稳定且完全免费获取方式官方 GitHub 仓库搜索 Auto.js 找到 4.1 版本各大软件下载站请留意文件完整性建议从可信来源下载安装注意事项安装完成后打开 App千万不要点击更新一旦更新到新版如 4.2 或 4.3将变成收费版且可能无法在某些应用上正常使用自动化功能。如果误触更新建议立即卸载重装旧版本并关闭应用商店的自动更新功能。2. adb环境安装下载地址将文件下载下来解压缩到自定义的安装目录。Windows版本https://dl.google.com/android/repository/platform-tools-latest-windows.zipMac版本https://dl.google.com/android/repository/platform-tools-latest-darwin.zipLinux版本https://dl.google.com/android/repository/platform-tools-latest-linux.zip配置环境变量window环境按键windowsr打开运行输入sysdm.cpl回车。高级》环境变量》系统变量》path。将adb的存放路径添加进path中Linux/Mac环境# 打开配置文件跟自己使用的终端有关# 查看当前所使用的终端类型echo $SHELLvim~/.zshrc# 新增内容将路径替换为实际解压路径exportPATH${PATH}:/你的解压路径/platform-tools# 刷新环境变量source~/.zshrc验证结果adb--version配置主要流程开启开发者模式USB调试→ 开启无障碍服务 → 连接电脑Wi-Fi 或 USB 转发→ 启动 AutoJS 服务1. 开启手机开发者模式不同手机开启开发者模式方式不同具体可根据自己手机型号版本进行Google。进入「设置」→「关于手机」连续点击「版本号」7 次直到提示“您已处于开发者模式”返回「设置」主界面即可看到「开发者选项」进入「开发者选项」可开启 USB 调试用于电脑 ADB 操作2. 开启无障碍服务AutoJS 的所有自动化操作都依赖 Android 的无障碍服务。在手机上打开 AutoJS App点击左侧抽屉菜单 →「无障碍服务」点击「开启无障碍服务」跳转到系统设置在已下载的服务列表中找到 AutoJS开启开关系统提示可能存在的风险点击「确定」验证返回 AutoJS 后左上角应显示“无障碍服务已启用”。3. 连接电脑通过局域网调试AutoJS 支持在电脑上编写脚本并实时运行在手机上大幅提升开发体验。电脑端准备安装 VS Code在 VS Code 扩展商店搜索并安装 Auto.js-VSCodeExt或 Auto.js-VSCodeExt-Fixed按下 CtrlShiftP输入 Auto.js选择「Auto.js: Start Server」启动服务。此时会显示服务运行的 IP 和端口例如 192.168.35.12:9317手机端连接根据需求选择以下任一方式方式一通过 Wi-Fi 连接无线无需数据线确保手机与电脑连接 同一个 Wi-Fi打开 AutoJS App点击左侧抽屉菜单 →「连接电脑」在弹出的对话框中输入电脑显示的 IP 地址不需要输入端口号例如 192.168.35.12点击「连接」看到“连接成功”提示即完成方式二通过 USB 转发连接有线连接更稳定无需 Wi-Fi用 USB 数据线将手机连接到电脑并确保已开启 USB 调试见「开启手机开发者模式」在电脑命令行中执行以下命令adb forward tcp:9317 tcp:9317在 VS Code 中按 Ctrl Shift P选择「Auto.js: Start Server」启动服务在手机端 AutoJS 的「连接电脑」对话框中输入 IP 地址 127.0.0.1点击「连接」看到“连接成功”提示即完成常见连接问题及解决问题现象可能原因解决方案连接超时/失败手机与电脑不在同一网络检查 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. 简单验证查找包含“搜索”描述的控件若找到则认为成功varsearchBoxdescContains(搜索).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实现支付宝的每日自动签到。目标拆解启动支付宝通过应用名或包名打开支付宝 App。导航至会员页面进入「我的」→「支付宝会员」或「蚂蚁会员」页面。执行签到查找并点击“签到”按钮完成签到领积分操作。结果反馈通过日志或弹窗提示签到结果。定时执行利用 AutoJS 定时任务功能设置为每天固定时间自动运行。详细步骤通过VSCode Autojs插件新建一个完整的AutoJS项目新建之后脚本文件默认为main.js以下脚本主要为了快速演示效果大部分采用坐标进行点击不具有通用性。main.js// 等待无障碍服务启动auto.waitFor();// 配置参数constPACKAGE_NAMEcom.eg.android.AlipayGphone;constTIMEOUT5000;// 超时时间 5秒try{// 1. 检查支付宝是否已在运行letcurrentPkgcurrentPackage();if(currentPkgPACKAGE_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. 点击【支付宝会员】letmemberEntrytext(支付宝会员).findOne(TIMEOUT);if(memberEntry){safeClick(memberEntry);toastLog(已点击【支付宝会员】 (UI));}else{toastLog(未找到【支付宝会员】UI元素使用坐标兜底);clickByBounds(180,531,420,595);}sleep(2000);// 5. 点击【每日签到】// 重要先检查元素是否存在letsignBtnclassName(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(脚本已终止);}}/** * 安全点击处理 clickablefalse 的情况 */functionsafeClick(element){if(!element)returnfalse;// 1. 尝试直接点击if(element.clickable()element.click()){returntrue;}// 2. 尝试点击父容器letparentelement.parent();if(parentparent.clickable()parent.click()){returntrue;}// 3. 尝试坐标点击letboundselement.bounds();if(bounds){returnclick(bounds.centerX(),bounds.centerY());}returnfalse;}/** * 通过 bounds 位置点击指定位置 */functionclickByBounds(left,top,right,bottom){varxMath.round((leftright)/2);varyMath.round((topbottom)/2);returnclick(x,y);}调试确保已启动Autojs Server确保手机已开启 AutoJS 的无障碍服务且已连接到电脑此处我通过同一wifi直连按F5运行脚本观察手机是否自动运行是否符合预期设置定时任务让脚本每天自动运行有以下两种方式。方式一推荐在 VS Code 中按 Ctrl Shift P选择 Auto.js: Save脚本会自动保存到手机的默认目录通常是 /sdcard/脚本/。方式二手动将 .js 文件通过微信/QQ发送到手机在 AutoJS App 中点击右下角「」→「导入」即可。脚本导入后a.在 AutoJS App 中找到该脚本。b.点击右侧按钮 - 选择「更多」→「定时任务」→ 设置每天固定时间如 08:00。c.确保 AutoJS 拥有“自启动”和“后台保持运行”权限。可选打包为应用apk如果需要将脚本进行分发可直接打包为apk。选择脚本进行打包脚本 - 脚本右侧按钮 - 更多 - 打包应用 - 填写打包信息PS如果打包过程中提示没有插件可下载下面apk进行安装。下载地址AutoJS4.1.1打包插件选中脚本 - 点击更多点击打包应用填写相关打包信息然后点击√即可打包。打包后可直接安装最终效果6. 接着就可以安装到自己手机快速触发脚本注意事项无障碍服务AutoJS 依赖无障碍服务部分系统如 MIUI、EMUI可能需要额外的权限设置如“后台弹出界面”“自启动”“省电无限制”等以确保脚本在后台可靠运行。版本更新切勿升级 AutoJS 4 系列到更高版本否则会失去免费功能。界面变化App 更新可能导致控件属性改变需定期维护脚本。合法性请勿使用 AutoJS 进行违规操作如刷单、恶意攻击等尊重平台规则。资源占用长时间运行脚本会增加电量和内存消耗建议合理控制循环间隔。参考资料AutoJS 相关文档http://autojs.cc/v8/、https://docs.autojs6.com/#/overviewAutoJS 社区讨论百度贴吧“autojs”吧、酷安评论区选择器 API 参考className、id、text、desc 等用法可查阅官方文档