Auto.js 入门指南(一)什么是 Auto.js

前言

大家好,我是鲫小鱼。是一名不写前端代码的前端工程师,热衷于分享非前端的知识,带领切图仔逃离切图圈子,欢迎关注我,微信公众号:《鲫小鱼不正经》。欢迎点赞、收藏、关注,一键三连!!

什么是 Auto.js

理论讲解

Auto.js 是一款基于 JavaScript 语法的 Android 自动化开发工具。它允许开发者通过编写脚本,实现对手机界面、应用、控件的自动化操作。Auto.js 结合了无障碍服务(Accessibility Service)和强大的 UI 控件识别能力,可以模拟点击、滑动、输入等操作,极大地提升了移动端自动化的效率。

主要特点

  • 基于 JavaScript:上手门槛低,适合有 JS/TS 基础的开发者。
  • 强大的 UI 控件识别:支持多种控件查找方式,适配不同应用界面。
  • 丰富的 API:涵盖界面操作、文件读写、网络请求、定时任务等。
  • 支持多线程与异步操作:可实现复杂的自动化流程。
  • 可视化 UI 开发:支持自定义界面,便于交互和调试。

适用场景

  • 自动化测试
  • 自动签到、自动抢红包
  • 自动化数据采集
  • 辅助工具开发
  • 日常重复性操作自动化

调试与辅助工具

在 Auto.js 脚本开发过程中,合理利用调试和辅助工具可以大大提升开发效率和排查问题的能力。

常用调试工具

  • scrcpy 投屏工具
    • 通过 USB 或 WiFi 将手机屏幕实时投射到电脑,支持鼠标操作和录屏,极大方便了脚本调试和演示。
    • scrcpy 官方地址
  • 日志查看
    • 使用 log()console.log() 或 Auto.js 内置日志面板,实时输出调试信息。
    • 结合 Android 的 adb logcat 命令,可以查看系统级日志,辅助排查崩溃和权限问题。
  • 模拟器
    • 推荐使用夜神、雷电等安卓模拟器进行脚本开发和批量测试,便于多环境适配。
  • 开发者选项
    • 启用 Android 手机的开发者选项和 USB 调试,便于脚本部署和调试。
  • 辅助工具箱
    • 如 Auto.js 社区常用的"控件助手"、"布局分析器"等,可以辅助查找控件属性和界面结构。

调试建议

  • 多用日志输出,定位问题。
  • 投屏+鼠标操作,实时观察脚本执行效果。
  • 结合模拟器和真机,提升兼容性。
  • 遇到复杂界面,优先用控件助手分析结构。

代码示例

下面是一个简单的 Auto.js 脚本,自动打开微信并点击"发现"按钮:

javascript 复制代码
// 请求无障碍权限
auto.waitFor();
// 启动微信
app.launchApp("微信");
// 等待主界面加载
waitForActivity(".ui.LauncherUI");
// 查找并点击"发现"按钮
var btn = text("发现").findOne(5000);
if (btn) {
    btn.click();
    toast("已点击发现");
} else {
    toast("未找到发现按钮");
}

实际应用场景

  • 自动签到:每天定时打开某 App,自动完成签到流程。
  • 自动抢红包:在微信、QQ 等社交软件中,自动识别并抢红包。
  • 自动化测试:批量测试 App 的不同功能点,提升测试效率。
  • 数据采集:自动浏览网页、采集信息并保存。

常见问题与解决方案

  1. 权限不足,脚本无法运行?
    • 解决方案:确保已授予 Auto.js 无障碍权限、悬浮窗权限。
  2. 控件找不到?
    • 解决方案:尝试使用不同的查找方式(如 text、desc、id),或增加等待时间。
  3. 脚本运行卡顿?
    • 解决方案:优化查找控件的逻辑,避免死循环。
  4. 兼容性问题?
    • 解决方案:针对不同手机和系统版本,适配控件查找和操作方式。

性能优化建议

  • 控件查找时尽量缩小查找范围,减少资源消耗。
  • 合理使用 sleep 和 waitFor,避免无效等待。
  • 多线程处理耗时操作,提升主流程响应速度。
  • 定期清理无用变量和对象,降低内存占用。

在线资源

最后感谢阅读!欢迎关注我,微信公众号:《鲫小鱼不正经》。欢迎点赞、收藏、关注,一键三连!!!

相关推荐
我的xiaodoujiao12 分钟前
从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 9--基础知识 5--常用函数 3
前端·python·测试工具·ui
李鸿耀2 小时前
Flex 布局下文字省略不生效?原因其实很简单
前端
皮蛋瘦肉粥_1213 小时前
pink老师html5+css3day06
前端·css3·html5
华仔啊8 小时前
前端必看!12个JS神级简写技巧,代码效率直接飙升80%,告别加班!
前端·javascript
excel8 小时前
dep.ts 逐行解读
前端·javascript·vue.js
爱上妖精的尾巴8 小时前
5-20 WPS JS宏 every与some数组的[与或]迭代(数组的逻辑判断)
开发语言·前端·javascript·wps·js宏·jsa
excel8 小时前
Vue3 响应式核心源码全解析:Dep、Link 与 track/trigger 完整执行机制详解
前端
前端大卫8 小时前
一个关于时区的线上问题
前端·javascript·vue.js
whltaoin8 小时前
中秋赏月互动页面:用前端技术演绎传统节日之美
前端·javascript·html·css3·中秋主题前端
IT派同学9 小时前
TableWiz诞生记:一个被表格合并逼疯的程序员如何自救
前端·vue.js