资讯动态

Auto.js安卓自动化脚本入门:从安装配置到实战

发布时间:2026/10/2 5:31:20 来源:尧图企业网站定制
1. 先弄明白 Auto.js 是个什么东西1.1 它到底能帮你干什么Auto.js 说白了就是一个跑在安卓手机上的 JavaScript 自动化脚本工具。你用 JavaScript 写一段逻辑它就能帮你自动操作手机自动点击、自动滑动、自动输入文字、自动读取通知栏消息、自动切换应用甚至定时定点执行任务。我最早接触它是因为工作需要每天重复打开 App → 点某个按钮 → 截图 → 退出这一套流程一天几十次整个人都会被搞麻。后来花了一晚上把 Auto.js 跑通第二天上班直接让手机自己干活我只需要偶尔瞄一眼有没有跑偏。那一瞬间的感觉就是这玩意儿早该学了。它能做的事远不止重复点击。结合无障碍服务和 JavaScript 的逻辑能力你可以做条件判断、循环重试、OCR 识别、HTTP 请求甚至把它当成一个小型的手机端爬虫来用。只要是你在手机上能手动完成的操作理论上都可以用脚本替代。1.2 技术原理为什么它能看见屏幕并自动操作Auto.js 的核心依赖是安卓系统的无障碍服务AccessibilityService。这个服务本来是给残障人士用的辅助工具它允许系统在界面发生变化时主动向服务端发送事件通知。Auto.js 就是利用这个能力监听当前屏幕上出现了什么控件、什么文字、什么按钮然后再通过服务模拟手势操作本质上就是模拟人在屏幕上的触摸动作。这个模拟是系统层面的不需要 root也不需要 PC 端配合所以门槛很低。你用普通的手指点击是触摸事件Auto.js 调用无障碍接口注入的点击也是同级别的事件绝大多数 App 是区分不出来的。这里有一个很重要的点需要理解无障碍服务拿到的控件信息类似浏览器里的 DOM 树。每个可交互的按钮、文本框都是一棵控件树里的节点有类名、有文本内容、有坐标。所以你可以用text(立即领取).click()这种语义化方式去点击不用关心按钮到底在屏幕哪个位置系统会帮你找到它。这种方式比固定坐标点击稳定得多。1.3 为什么不用录屏点击器或物理外设这类替代品市面上有很多号称自动点击器的 App通过悬浮窗模拟点击也能做到循环点某个位置。但它们的缺陷很明显没有逻辑能力没有条件判断没有界面感知一旦界面布局变化坐标就全废了。Auto.js 不一样它是完整的编程环境。你可以写if判断、while循环、switch分支可以把流程拆成函数可以捕获异常可以处理弹窗。这就像用遥控器控制电视和用编程控制机器人的区别——前者只能按固定按钮后者可以根据实际情况自主决策。另一个替代方案是使用 ADB 命令配合 PC 执行稳定性和权限层级更高但必须随时连着电脑没法做到手机独立运行。Auto.js 的优势在于全部在手机上完成写完了直接跑打包成 APK 甚至能脱离 Auto.js 环境独立安装运行分发起来也很方便。2. 安装前的准备设备与工具选型2.1 环境要求和版本选择Auto.js 的安装门槛不高但有几个硬性条件需要先确认否则装完也跑不起来。首先手机系统必须是 Android 7.0 及以上。这个要求主要是因为无障碍服务的稳定性和 WebView 调试接口的可用性。现在还在用 Android 7 以下机型的用户应该很少了绝大多数设备没问题。其次不同版本的 Auto.js 功能差异很大我的建议是优先选择 4.1.1 Alpha2 版本或者基于它二次开发的分支版本。原因有几个4.x 版本免费、开源、稳定社区资源丰富网上能找到大量现成的脚本和插件而更新的 Pro 版本加入了加密和打包增强功能但很多能力需要付费解锁对新手来说不是必须的。我遇到过一些朋友直接用最新版结果发现很多老脚本的 API 写法不兼容还得自己改代码白白浪费时间。Auto.js 4.x 的 API 文档最齐全遇到问题搜一下基本都有答案入门阶段不建议在版本选择上太纠结。版本开源免费稳定性适合人群Auto.js 4.1.1 Alpha2是是高新手入门、日常自动化Auto.js Pro 系列否部分付费高有加密与分发需求的进阶用户社区分支如 AutoX.js是是较高需要持续维护与更新的用户社区分支 AutoX.js 是后来接棒维护的项目修复了老版本在一些新机型上的兼容问题API 基本保持一致。如果你在 4.1.1 上遇到闪退或无障碍服务不稳定的情况可以换 AutoX.js 试试。2.2 下载渠道与安装注意事项下载 Auto.js 时有一个坑必须提醒搜索引擎排在前面的很多所谓官方版网站其实是第三方打包站里面塞了广告 SDK安装之后弹窗多到怀疑人生。稳妥的做法是去 GitHub 上搜 Auto.js 的 release 页面下载官方发布的 APK 文件。如果 GitHub 访问技能不熟练也可以在酷安等安卓应用社区搜索Auto.js找到评论区反馈正常的历史版本。我个人习惯是认准包名正版 Auto.js 的包名一般是org.autojs.autojs装完之后在系统设置里确认一下避免装到李鬼应用。下载完成后用文件管理器打开 APK 文件直接安装。如果系统提示禁止安装未知来源应用需要手动放行——这一步在每个品牌手机上路径不一样MIUI 是安全中心 → 应用管理 → 权限 → 未知来源鸿蒙系统在设置 → 应用和服务 → 权限管理里操作找到你正在用的文件管理器或浏览器允许安装未知应用就行。注意从 Android 8.0 开始不同应用安装 APK 的权限是单独控制的你让文件管理器能装应用不代表浏览器也能装。在哪个应用里点击的 APK就让哪个应用拥有允许安装未知应用的权限。2.3 需要提前理解的三大权限Auto.js 要正常工作至少涉及三个系统权限安装之前先有个概念后面配置的时候就不蒙了。第一个是无障碍服务权限这是核心中的核心。没有它Auto.js 拿不到屏幕上的控件信息也没法注入点击和滑动事件。这个权限需要在系统设置里找到无障碍或辅助功能然后找到 Auto.js 对应的条目手动打开开关。第二个是悬浮窗权限用于显示脚本运行的悬浮按钮、日志窗口、调试面板。如果你希望脚本在自动运行的同时能看到实时输出信息这个权限必须给。第三个是应用后台运行权限包括自启动、后台弹出界面、省电策略不限制等。原因是脚本执行可能持续较长时间如果手机系统把 Auto.js 的后台进程杀了脚本就中断了。这部分权限在国产 ROM 上尤其重要小米、vivo、OPPO 的杀后台策略都激进得很不设置好你会发现脚本跑着跑着自己就停了。3. 完整安装与权限配置实操3.1 主程序安装流程下载好 APK 之后安装动作本身没什么技术含量但有几个细节值做得比较讲究。第一步把手机切换到飞行模式或者断开 Wi-Fi 再安装。这一步是我个人的习惯因为有些安装包在安装过程中会联网请求权限断网安装可以避免一些流氓行为。当然如果你信任下载源这一步可以省略。第二步点击 APK 文件在弹出的安装界面选择允许本次安装。如果你的系统提示未知来源拦截就按照前面说的方法去给对应的应用开权限。第三步安装完成之后先别急着打开先去系统设置里把权限一股脑配置好再打开主界面。顺序反了也没关系但你会发现 Auto.js 自己也会弹出权限引导跟着它的引导走也行。实操提示安装完成后建议进入设置 → 应用 → Auto.js把自启动权限打开。这一步对小米 EMUI、MIUI、ColorOS 等国产系统的用户尤为重要否则息屏一段时间后进程容易被系统回收。3.2 无障碍服务授权每个人都会卡住的一步打开 Auto.js 主界面后点击左侧的无障碍服务入口系统会跳到无障碍设置页。找到已下载的服务分类下的 Auto.js 条目点击进入后打开服务开关。这一步有个常见的坑你明明点开了开关但退回 Auto.js 主界面依然显示无障碍服务未启用。出现这种情况大概率是因为选择了关闭旁边的空白区域而不是开关本身或者系统把这个开关当作安全敏感操作延迟生效了。解决办法是开启后等 1-2 秒再点一次开关确认状态然后退出设置页面回到 Auto.js 重新点击服务状态检查。如果开关确实打不开或者打开后秒关这通常是无障碍服务被系统限制常见于部分 Android 11 设备。可以先重启手机再试还不行就切到 AutoX.js 版本一般能解决。3.3 悬浮窗与其他配置项悬浮窗权限需要在系统设置里搜索悬浮窗或显示在其他应用上层找到 Auto.js 后打开。在 MIUI 上悬浮窗权限和后台弹出界面是两个独立设置前者负责显示后者决定能否在前台弹出确认弹窗最好同时打开。ColorOS 的路径是三级菜单设置 → 应用管理 → Auto.js → 显示悬浮窗。进入 Auto.js 主界面后还有一些设置项建议一并进行打开日志显示开关方便脚本运行调试打开音量键停止功能这样脚本卡死时可以快速按音量键终止运行省得每次都以退出的方式干关闭启动时检查更新选项避免时不时弹更新提示打断脚本执行。3.4 连接电脑与脚本管理附选做项如果你打算写比较复杂的脚本强烈建议在 PC 上编辑然后在手机上运行。Auto.js 支持两种连接方式。第一种是局域网连接手机和电脑在同一 Wi-Fi 下Auto.js 的连接电脑功能会显示一个地址PC 浏览器访问这个地址就能进行文件的编辑、运行、查看日志。这种方式适合快速验证。第二种是通过数据线连接需要用 Android Studio 等工具配合 ADB 转发端口adb forward tcp:5368 tcp:5368然后浏览器访问http://localhost:5368效果和局域网模式一样但依赖更少的网络条件PC 与手机直连时优先使用这种方式。注意连接电脑功能只在调试时使用日常运行脚本完全不需要连电脑。脚本文件持久化在手机本地即使卸载 Auto.js只要备份js文件就不怕丢。4. 测试运行从零写一个能跑的脚本4.1 环境自检与第一次执行打开 Auto.js 主界面确认左上角状态显示无障碍服务已开启悬浮窗按钮已出现。然后在主界面的脚本目录下新建一个文件命名随意后缀必须是.js。先写一个最简单的脚本测试环境是否正常toast(Hello Auto.js);点击编辑器右上角的运行按钮或者使用音量快捷键触发运行屏幕上应该会短暂弹出一条Hello Auto.js的系统消息。如果没有任何反应先检查右下角悬浮窗是否显示红色日志文字再回无障碍设置页确认服务状态。这两步能帮你快速定位是权限问题还是脚本代码问题。4.2 第一个实用脚本自动打开应用并执行点击toast 只是开胃菜接下来写一个真正干活的脚本。场景是打开微信等待进入首页然后自动点击右上角的按钮。// 唤醒屏幕并解锁如果没有设置锁屏密码的话 device.wakeUpIfNeeded(); // 打开微信 app.launch(com.tencent.mm); // 等待微信主界面出现最长等待10秒 waitForPackage(com.tencent.mm, 10000); // 再等2秒确保界面完全渲染完成 sleep(2000); // 根据文本找到按钮并点击 var plusButton text().findOnce(); if (plusButton) { plusButton.click(); } else { toast(没有找到号按钮); }这段代码涉及几个关键 API值得展开讲讲。device.wakeUpIfNeeded()是设备唤醒方法如果屏幕已经亮着就什么都不做如果息屏就会点亮屏幕。app.launch()负责启动指定包名的应用这里com.tencent.mm是微信的包名。waitForPackage(packageName, timeout)是一个阻塞方法它会一直等待直到前台应用切换为目标应用或者超过超时时间后返回 false。这个等待逻辑很有用可以避免在应用还没有加载完时就盲目点击。text().findOnce()是控件查找方法通过界面上的文本内容来定位节点。找到之后调用click()方法模拟点击。这里要重点说明控件查找的原理Auto.js 的无障碍服务会把当前屏幕所有控件整理成一棵类似浏览器 DOM 的树每个节点都有文本、类名、资源 ID、坐标等属性。text()就是在这棵树上查找所有文本内容包含的节点。因为微信主界面的号只有一个所以findOnce()能准确拿到目标节点。首次运行这个脚本时建议不要锁屏保证手机亮屏状态否则某些设备可能无法正确弹出界面导致waitForPackage一直超时。4.3 第二个进阶脚本自动填写表单并提交再写一个更贴近真实场景的脚本在任意 App 的搜索框中输入关键词并点击搜索按钮。// 点击一个通过资源ID定位的输入框 var input id(search_input).findOnce(); if (input) { input.click(); sleep(500); } // 输入文字 setText(自动化测试); // 隐藏键盘 hideKeyboard(); // 点击搜索按钮 var searchBtn text(搜索).findOnce(); if (searchBtn) { searchBtn.click(); }id(search_input)是根据控件的 resource-id 属性查找这是安卓布局中最稳定的定位方式之一比坐标靠谱得多。前提是你知道目标 App 页面上输入框的资源 ID这个可以通过 Auto.js 自带的布局分析工具布局范围获得。setText(...)是直接给当前聚焦的输入框设置文字。注意它不是模拟逐字输入而是直接把内容赋给输入框速度更快且不受输入法影响。这里有一个细节有些 App 会监听输入框的TextWatcher来实时搜索setText直接赋值也可能触发监听但不一定触发删除字→逐字输入的动画过程。如果你的脚本需要等待搜索结果实时刷新建议用input(...)方法逐字模拟输入input(自动化测试);hideKeyboard()保存键盘隐藏方法在有些 App 里不隐藏键盘直接点搜索按钮会触发输入法遮挡问题。但如果 App 本身适配了 adjustResize 模式这个问题自然就不存在了隐藏键盘的操作不是必须的。4.4 运行方式的三种选择脚本写好之后有三种运行方式适用场景完全不同。第一种是编辑器中直接运行。适合开发调试因为可以看到日志输出和错误堆栈方便定位问题。第二种是配置定时任务。在 Auto.js 的定时页面可以创建定时启动脚本任务按天、按周、按小时都可以。比如每天早上的 08:30 自动执行一个脚本打卡就是直接在这里设置。第三种是打包成独立 APK。在 Auto.js 的构建功能里把脚本打包成一个单独的安装包安装到手机后不需要开启 Auto.js 就能运行。适合把自动化能力分享给别人使用不需要对方了解任何脚本知识。实操心得日常开发我永远用第一种任务上线后用第二种只有需要给别人分发时才用第三种。定时任务启动时如果设备锁屏需要在脚本开头加上device.wakeUpIfNeeded()和解锁逻辑否则黑屏状态下脚本无法正常工作。5. 常见问题与排查技巧实录5.1 无障碍服务一开就关或自动失效这是我被问得最多的问题基本上每周都有朋友遇到。原因不外乎三个。第一个是系统杀后台进程导致无障碍服务被系统回收。解决方法是把 Auto.js 加入系统电池优化白名单在应用设置里打开后台运行和自启动部分小米设备还需要在最近任务窗口把 Auto.js 下拉锁定。第二个是系统版本更新后无障碍服务状态被重置。这种情况下重新打开服务开关即可没有一劳永逸的办法只能等系统更新修复。第三个是 Auto.js 版本与系统不兼容。如果以上两步都没用实测更换为 AutoX.js 版本通常可以解决因为社区版对 Android 12/13 的适配做得多得多。5.2 脚本运行时日志报找不到控件很多新手写脚本时遇到text(xx).findOnce()返回 null第一反应是代码写错了但实际上大概率是控件还没出现在屏幕上。页面加载是异步的控件渲染需要时间所以查找控件前需要加等待。推荐的方式是使用waitFor()方法它会主动轮询直到找到才返回var btn text(确定).waitFor(5000); if (btn) { btn.click(); }如果等待到了还是不出现那就要怀疑是不是选错了定位方式。有的按钮是 android 自带的 Button 控件有的则是自定义 View某些自定义 View 的文本可能不会被无障碍服务识别。这种情况可以改用desc(描述).findOnce()查找内容描述或者使用bounds()获取控件坐标进行点击。5.3 打包 APK 时的常见报错打包 APK 是很多人的最后一步但往往在这里卡住。我整理几个典型的打包失败原因。打包失败的报错信息里如果出现Could not find the android platform之类的内容是因为缺少对应的 Android SDK 平台版本。解决办法是下载并安装 Auto.js 提示缺失的平台版本安装路径一般是 SDK 目录下的platforms文件夹。如果报错信息出现Gradle相关的错误大概率是 Gradle 依赖下载失败。这在国内网络环境下特别常见解决方式是配置 Gralde 镜像仓库或者在网络通畅的时段重试。打包成功后如果安装到别的设备提示解析包错误检查一下打包时的 SDK 版本不要选太高的 targetSdk兼容性会更好。5.4 脚本运行无响应手机像死机了一样这种情况通常是脚本进入了死循环比如while (true) { ... }且没有退出条件。解决方式就是最开始提过的音量键停止在设置中打开这个功能脚本失控时同时按住音量上下键 2 秒Auto.js 会强制终止当前运行的脚本。如果音量键也没反应可以尝试从最近任务界面划掉 Auto.js或者直接重启手机。事后检查脚本逻辑在循环中加上延时sleep(1000)并设置合理的退出条件避免无意义的空转。独家避坑技巧开发阶段所有可能长期循环的逻辑都先加一个测试模式退出路径。比如在文件开头定义一个全局变量判定debug true时循环只跑几次就结束。上线前再把标记改为 false。这个方法帮我节省了大量调试时间推荐照做。5.5 不同品牌 ROM 的兼容性问题速查品牌常见问题推荐设置小米/Redmi无障碍服务易失效后台被杀电池策略无限制自启动开启锁屏后弹出权限全开启华为/荣耀悬浮窗权限需要单独开启HarmonyOS 下无障碍能力受限设置→应用和服务→权限管理→悬浮窗关闭省电优化OPPO/realme频繁弹出自动开启无障碍请求应用管理→允许修改系统设置关闭自动启动管理的监控vivo/iQOO后台运行被杀严重设置→电池→后台耗电管理→允许高耗电三星权限路径较深设置→智能管理器→应用程序管理→允许后台运行这套兼容性不是代码层面要处理的而是权限和系统设置的匹配问题。跨品牌做分发时在脚本启动时做一次权限检查是最稳妥的做法如果权限缺失就弹窗提示用户手动去设置。写在最后我的实际使用建议Auto.js 确实是一个学习曲线不陡峭但天花板很高的工具。我建议你先从小事开始比如一个每天自动签到、自动领积分的小脚本跑顺了再到稍微复杂一点的场景。不要一上来就想写全自动的操作系统失败率太高容易打击信心。我最受益的一个习惯是把常用的小功能拆成独立的脚本文件比如唤醒解锁.js、打开微信.js、点击控件.js然后用主脚本统一调用。这样单个脚本的职责清晰任何一个环节出错都能快速替换不会被整段逻辑拖住。遇到问题时多利用 Auto.js 自带的布局分析功能这一步是调试的基本功。很多看起来神秘的找不到控件、点击无效问题打开布局分析一看就明白了——要么控件是用图片实现的没有文本属性要么是系统弹窗覆盖了目标界面。看懂了控件树你就能写出稳定的定位逻辑。Auto.js 这个工具陪伴了我很长时间直到现在我仍然觉得它是安卓自动化领域最值得投入时间去学的开源项目之一。希望这篇内容能帮你把第一行脚本跑起来少走几个弯路。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑