前言
大家好,我是鲫小鱼。是一名不写前端代码
的前端工程师,热衷于分享非前端的知识,带领切图仔逃离切图圈子,欢迎关注我,微信公众号:《鲫小鱼不正经》
。欢迎点赞、收藏、关注,一键三连!!
什么是 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 的不同功能点,提升测试效率。
- 数据采集:自动浏览网页、采集信息并保存。
常见问题与解决方案
- 权限不足,脚本无法运行?
- 解决方案:确保已授予 Auto.js 无障碍权限、悬浮窗权限。
- 控件找不到?
- 解决方案:尝试使用不同的查找方式(如 text、desc、id),或增加等待时间。
- 脚本运行卡顿?
- 解决方案:优化查找控件的逻辑,避免死循环。
- 兼容性问题?
- 解决方案:针对不同手机和系统版本,适配控件查找和操作方式。
性能优化建议
- 控件查找时尽量缩小查找范围,减少资源消耗。
- 合理使用 sleep 和 waitFor,避免无效等待。
- 多线程处理耗时操作,提升主流程响应速度。
- 定期清理无用变量和对象,降低内存占用。
在线资源
最后感谢阅读!欢迎关注我,微信公众号:
《鲫小鱼不正经》
。欢迎点赞、收藏、关注,一键三连!!!