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,避免无效等待。
  • 多线程处理耗时操作,提升主流程响应速度。
  • 定期清理无用变量和对象,降低内存占用。

在线资源

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

相关推荐
funnycoffee123几秒前
Huawei 6730 Switch software upgrade example版本升级
java·前端·华为
小鱼小鱼干2 分钟前
【Tauri】Tauri中Channel的使用
前端
拾光拾趣录4 分钟前
CSS全面指南:从基础布局到高级技巧与实践
前端·css
南屿im8 分钟前
基于 Promise 封装 Ajax 请求:从 XMLHttpRequest 到现代化异步处理
前端·javascript
青松学前端8 分钟前
vue-2.7源码解读之初始化流程和响应式实现
前端·vue.js·前端框架
杨进军8 分钟前
前端线上问题的那些事儿
前端·javascript·前端框架
每天开心10 分钟前
深入探索 React Hooks: useState 与 useEffect 的力量 🌟
前端·javascript·ai编程
流星稍逝13 分钟前
Vue3 + Uniapp 图片压缩公共方法封装
前端·vue.js
受之以蒙13 分钟前
Rust & WASM 之 wasm-bindgen 基础:让 Rust 与 JavaScript 无缝对话
前端·笔记·rust
中微子14 分钟前
React Props 传值规范详解
前端·react.js